当前位置: 首页 > 知识库问答 >
问题:

使用idToken或AccessToken进行Azure AD身份验证失败。我该用哪一个?

邹阳
2023-03-14

在azure active directory文档中,它指出:

我使用passport和passport-azure-ad以及BearerStrategy来验证作为中间件的accessToken。如果传递带有授权承载标头的标记.AccessToken,则会收到一个身份验证失败,原因是:无效签名错误。如果我传递令牌.idToken.RAWIDToken,则如果我在承载策略配置中设置了ValidateIssure:true,则会收到身份验证失败,原因是:jwt颁发者无效

首先,我想知道哪一个令牌是要使用的?两者都是有效的jwt令牌(https://jwt.ms/),但它们包含不同的字段。我想现在idToken听起来更有前途,但我不确定这是否是一种方法,因为我需要将前端的clientId指定为后端的受众字段,否则它会抛出身份验证失败,原因是:jwt受众无效。所以这不是多个客户的方式,对吧?

共有1个答案

郎祯
2023-03-14

您可以使用AAD颁发的访问令牌来保护您自己的自定义web API。请注意,您必须首先创建一个自定义作用域,然后让用户同意该作用域。一旦您完成了这一操作,您的应用程序将被发给该作用域的令牌(访问令牌是针对每个资源发出的,这意味着您不能使用针对MS Graph的令牌来保护您的自定义Web API)。

更多信息请看我的评论。

 类似资料:
  • 我试图用注册时使用的凭证登录。Firebase已经有注册用户的条目。每次我试图登录它显示“登录不成功”,我没有看到任何代码问题。请帮帮忙。

  • 我已经使用以下命令启动了,并创建了一个用户来执行此操作(正在工作,因为如果我手动执行工作),直到我添加了这个,它才开始工作,所以也许这就是我需要的。 我错过了什么?

  • 当使用Firebase Auth进行身份验证时,我想自动输入通过SMS接收的代码。我能够接收短信并手动完成身份验证过程,但当我使用SmsRetriever时,应用程序崩溃,然后显示底部工作表对话框。这是Logcat中显示的所有内容: [SmsRetrieverHelper]SMS校验码请求失败:未知状态代码:17010 null 用户输入其电话号码的代码片段: 这是片段中的代码,用户必须在其中输入

  • 我有一个API在Apache堆栈上运行,使用Java。我继承了一个遗留代码库,需要找到这个错误来自哪里显然是上一个开发人员构建了一个不能工作的特性,这就是错误所在,但没有更多信息。它使用Drupal webservice模块,发送调用的代码如下所示 我可以从哪里开始寻找这个错误,或者它可能意味着什么,你有什么想法吗? 完整的堆栈跟踪如下所示::: 用户失败:null。java.lang.Unsup

  • 我正在尝试使用urllib3连接到网页。代码如下所示。 如果我们假设url是需要使用用户名和密码进行身份验证的某个网页,那么我是否使用正确的代码进行身份验证? 我使用urllib2做这件事很舒服,但使用urllib3做不到同样的事情。 非常感谢

  • jwt不应该仅仅用于认证用户吗?我读到过可以在里面存储非敏感的东西,比如用户ID。将权限级别之类的东西存储在令牌中可以吗?这样我可以避免数据库调用。