2016-05-03 12 views
0

Ich benutze Auth0, um eine große Gruppe von Benutzern über mehrere verschiedene Anwendungen zu verwalten, wobei einige webbasiert sind und andere Desktops und mobile. Unter den Metadaten für jeden Benutzer habe ich eine Reihe von Anwendungen, auf die jeder Benutzer zugreifen kann. Ich habe mich gefragt, wie ich dies bei der Authentifizierung überprüfen könnte, damit der Zugriff verweigert wird, wenn er nicht in dieser Liste enthalten ist.Auth0 Zugriffskontrolle

Ich kann dies sehr leicht auf den Anwendungen, aber es wäre toll, es auf Auth0 zu tun.

Antwort

0

eine Regel verwenden wie folgt definiert hat mich mit der Funktionalität versehen ich suchte:

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); 
}