Как защитить веб-API с помощью паспорта- azure -ad (/ w vue -msal) - PullRequest
1 голос
/ 03 августа 2020

Я хочу защитить веб-API с помощью паспорта- azure -ad и использовать bearerStrategy. Я следую примеру, предоставленному модулем, и передаю метаданные и clientId, я всегда получал 401. unauthorized.

Вот мои конфигурации паспорта- azure -ad

{

  identityMetadata: 'https://login.microsoftonline.com/<your_tenant_guid>/v2.0/.well-known/openid-configuration'
  
  // Required
  clientID: '<client ID>',

  // Required.
  // If you are using the common endpoint, you should either set `validateIssuer` to false, or provide a value for `issuer`.
  validateIssuer: false,

  // Required. 
  // Set to true if you use `function(req, token, done)` as the verify callback.
  // Set to false if you use `function(req, token)` as the verify callback.
  passReqToCallback: false,

  // Optional. Default value is false.
  // Set to true if you accept access_token whose `aud` claim contains multiple values.
  allowMultiAudiencesInToken: false,

  loggingLevel:'error',
};
}

Я предоставил авторизацию заголовок запроса с токеном доступа, сгенерированным vue -msal. Я также проверил, что подпись токена доступа также недействительна. Кроме того, вместо этого я использовал идентификационный токен, но все еще неавторизованный 401.

При регистрации на портале / AAD / App я включил оба неявных потока предоставления 、 accessTokenAcceptedVersion: 2 、 предоставил согласие администратора на мою подписку в разрешениях API

Что еще я пропустил?

1 Ответ

0 голосов
/ 05 августа 2020

В вашем случае вы можете следовать этому Используйте passport.authenticate для защиты ресурсов или API , также убедитесь, что вы используете правильную область при использовании vue -msal для получения токена.

server.get('/api/tasks', passport.authenticate('oauth-bearer', { session: false }), listTasks);
...