gpt4 book ai didi

azure-ad-b2c - 如何使用从内置和自定义策略生成的 token ?

转载 作者:行者123 更新时间:2023-12-05 07:21:58 28 4
gpt4 key购买 nike

我使用 ADB2C 内置策略。由此,我对我的最终用户进行身份验证并生成 JWT token 以通​​过配置有 OpenId Connect 的 APIM 调用 API。多亏了初学者工具包,我现在正在设置自定义策略 (IEF),但它似乎不能同时正常工作。

有了内置策略,一切就OK了。但是,当我尝试使用由 IEF 生成的 token 时,即使所有声明都相同,我也总是收到错误 401“此请求的授权已被拒绝。”

快速查看生成的 token 后,我发现用于签署 token 的 key 与用于内置生成的 token 的 key 不同。

这肯定是错误的来源。事实上,在设置自定义策略时,我们需要创建“策略 key ”来对 token 进行签名和加密。默认情况下,它是生成的,与内置的不同。但我不知道如何解决这个问题!

请注意,我确实需要为内置策略和自定义策略使用相同的签名和加密 key ,因为在 APIM 中,我只能将 1 个元数据 URI 用于 OpenId Connect 配置,并在 API 操作验证策略的部分中使用 1 个配置 URL。

另请注意,我没有找到一种方法来检索刷新 token 的当前加密 key (由内置策略使用)。问题是一样的...

感谢您的帮助!

这是一个包含签名 key 的有效 token header :

{
"typ": "JWT",
"alg": "RS256",
"kid": "X5eXk4xyojNFum1kl2Ytv8dlNP4-c57dO6QGTVBwaNk"
}

目前,我的策略 key 生成的 child 是“6jQvK3Cr-pdfMP9ozewO3dnmizxxx_toYfjEnxVpJFs”

当我尝试上传通过查看元数据 URI 可以找到的相同 key 时 https://mydomain/tenantId/discovery/v2.0/keys?p=a_ief_policy_name , 已正确上传

{
keys: [
{
kid: "X5eXk4xyojNFum1kl2Ytv8dlNP4-c57dO6QGTVBwaNk",
nbf: 1493763266,
use: "sig",
kty: "RSA",
e: "AQAB",
n: "tVKUtcx_n9rt[...]VTVSR0hiXudFlfQ2rOhPlpObmku68lXw-7V-P7jwrQRFfQVXw"
}
]
}

但是当收到登录请求的响应时,我得到了错误:AADB2C90085:服务遇到内部错误。请重新验证并重试。

最佳答案

OIDC 授权端点包括用户流或自定义策略名称。因此,如果您尝试使用相同的 URL 对两者进行授权,则可能是您遇到问题的原因。

看这里: https://learn.microsoft.com/en-us/azure/active-directory-b2c/openid-connect

授权端点基于以下格式:

https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize

由于策略名称包含在 URL 中,这意味着用户流与自定义策略不同。

关于azure-ad-b2c - 如何使用从内置和自定义策略生成的 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56694190/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com