为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 passport-azure-ad (/w vue-msal) 保护 Web API

如何使用 passport-azure-ad (/w vue-msal) 保护 Web API

小怪兽爱吃肉 2022-12-18 15:40:23
我想使用 passport-azure-ad 保护 Web API 并使用 bearerStrategy。我按照模块提供的示例并传递元数据和 clientId,我总是得到 401 未授权。这是我的 passport-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 生成的访问令牌。我还检查了访问令牌的签名也无效。此外,我改用了 ID 令牌,但仍然 401 未经授权。在 portal /AAD /App registration 中,我启用了隐式授权流程、accessTokenAcceptedVersion: 2、在 API 权限中为我的订阅授予管理员同意我还错过了什么?
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

在您的情况下,您可以按照此使用passport.authenticate来保护资源或 API,同时确保在使用 vue-msal 获取令牌时使用正确的范围。

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



查看完整回答
反对 回复 2022-12-18
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信