2017-01-30 5 views
0

Я создал azure web api, используя контекст аутентификации adal-node, и приложение angularjs, токен jwt (токен доступа) прошел через приложение angularjs, чтобы вызвать веб-API. Мне нужно проверить пользователя из токена jwt, прежде чем позволить пользователю получить доступ к веб-API. Как я могу выполнить эту проверку jwt с использованием контекста аутентификации adal-node.Как проверить токен доступа с использованием контекста аутентификации adal-node?

пример кода для создания токена доступа

function getToken(TENANT) { 
    var promise = new Promise(function (resolve, reject) { 
     try { 
      //const authContext = new adal.AuthenticationContext(`https://login.microsoftonline.com/${TENANT}`); 
      const authContext = new adal.AuthenticationContext('https://login.microsoftonline.com/'+TENANT); 
      authContext.acquireTokenWithClientCredentials(GRAPH_URL,CLIENT_ID,CLIENT_SECRET,function(err,tokenRes) 
      { 
       if (err) 
       { 
        reject(err); 
       } 
       var accesstoken = tokenRes.accessToken; 
       resolve(accesstoken); 
      }) 
     } 
     catch (ex) { 
      reject(ex); 
     }; 
    }); 
    return promise; 
} 

ответ

1

На самом деле, в соответствии с документом adal-node:

ADAL для Node.js библиотеки делает его легким для Node.js приложений для аутентификации в AAD для доступа к защищенным веб-ресурсам AAD. Он поддерживает 3 режима аутентификации, указанные в коде быстрого запуска ниже.

Таким образом, одним словом, adal-node не имеет функций, позволяющих проверить JWT как IDP-сервер.

Однако, если вы хотите, чтобы люди не обращались к вашему веб-сайту, у которого нет разрешения. Вы можете легко использовать функцию аутентификации и авторизации службы Azure App Service. Вы можете использовать AAD для защиты вашего веб-API, и все запросы против этого веб-API должны установить токен доступа из AAD в заголовок Authorization.

Для получения дополнительной информации вы можете обратиться к Authentication and authorization for API Apps in Azure App Service.

Между тем, если вы хотите проверить JWT самостоятельно, вы можете использовать какой-либо сторонний модуль, например. https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback

+0

Большое спасибо за ценный ответ. Это очень помогло. –

Смежные вопросы