【发布时间】:2020-08-14 09:36:16
【问题描述】:
我创建了一个 Azure AD 移动和桌面应用程序。现在我正在使用以下 API 获取我的 access_token,
POST https://login.microsoftonline.com/{Directory(租户)ID }/oauth2/令牌 密码:通过 client_id:id 资源:https://graph.microsoft.com 授予类型:密码 客户秘密:秘密 用户名:用户名 范围:openid
响应看起来像, "access_token": "accessToken", "refresh_token": "refereshToken", “id_token”:“id_token”。
现在我将 access_token 传递给配置有相同 Azure AD 客户端的第三方应用程序。当该第三方应用程序尝试验证签名时,操作将失败。 然后才知道它是因为 nonce 仅适用于 microsoft graph API。现在如何删除相同或使我的 access_token 签名验证符合要求?
【问题讨论】:
-
您不应该验证不适合您的访问令牌。图形 API 令牌也很特殊。您需要使用与您正在调用的 API 匹配的
resource(API 的客户端 ID 或应用 ID URI)。 -
感谢您的回复,如前所述,我将 access_token 传递给第三方软件。相同的 access_token 将由第三方软件验证。那么如何让access_token独立于GRAPH API呢?
-
如果您不需要调用Microsoft Graph API,那么您在请求token时不需要请求“graph.microsoft.com”作为资源参数。
-
@CarlZhao 我应该传递什么来代替“资源”参数?我应该创建一个新范围吗?
-
@ShreyasHollaP 正如 juunas 所说,您需要使用与您正在调用的 API 匹配的
resource。
标签: azure web-applications azure-active-directory azure-web-app-service webapi