2016-05-03 1 views
0

J'utilise Auth0 pour gérer un grand nombre d'utilisateurs dans plusieurs applications différentes, certaines étant basées sur le Web et d'autres sur les ordinateurs de bureau et les mobiles. Sous les métadonnées pour chaque utilisateur j'ai un tableau d'applications auxquelles chaque utilisateur peut accéder, je me demandais comment je pourrais vérifier cela lors de l'authentification afin que l'accès soit refusé si ce n'est dans cette liste.Contrôle d'accès Auth0

Je peux le faire très facilement sur les applications, mais ce serait super de le faire sur Auth0.

Répondre

0

En utilisant une règle définie comme suit m'a fourni la fonctionnalité que je cherchais:

function (user, context, callback) { 
    // ACL object 
    var acl = { 
     "someAppName": [ '[email protected]', '[email protected]' ], 
     "otherApp": ['[email protected]'] 
    } 

    // if App is not in the ACL, skip 
    if(!acl.hasOwnProperty(context.clientName)){ 
     return callback(null, user, context); 
    } 

    // check if user has access to app 
    var userHasAccess = acl[context.clientName].some(
     function (email) { 
      return email === user.email; 
     } 
    ); 

    if (!userHasAccess) { 
     return callback(new UnauthorizedError('Access denied.')); 
    } 
    callback(null, user, context); 
}