gpt4 book ai didi

azure-ad-b2c - 如何防止重复使用 Oauth 授权代码?

转载 作者:行者123 更新时间:2023-12-03 02:03:31 31 4
gpt4 key购买 nike

我正在使用 OAuth 2.0 authorization code flow ,但我注意到我可以重复使用相同的授权代码,并且服务器会使用新的 id token 进行响应。

根据 OAuth 2.0 规范,客户端不得重复使用相同的授权代码 ( https://www.rfc-editor.org/rfc/rfc6749#section-4.1.2 )

我的政策中是否缺少任何设置?我在 AzureB2C 中找到的有关代码授权代码流的唯一文档如下:https://learn.microsoft.com/en-us/azure/active-directory-b2c/configure-tokens?pivots=b2c-custom-policy#authorization-code-lifetime

POSTMAN

编辑:

我使用以下端点生成了身份验证代码:

https://tenant.b2clogin.com/tenant/policy/oauth2/v2.0/authorize?client_id=clientid&response_type=code&redirect_uri=https://jwt.ms&scope=openid&response_mode=query&code_challenge=codechallenge&code_challenge_method=S256

我使用如下参数生成了访问 token :

enter image description here

但仍然能够使用相同的代码生成 token

enter image description here

这是我的新应用程序:

enter image description here

最佳答案

如果您未使用随机数声明,则此预期行为是由于 B2C 的已知限制所致。

根据RFC (6749) - The OAuth 2.0 Authorization Framework

验证码只能使用一次。

对于标准 Azure AD,2018 年发布了修复程序:

Azure Active Directory breaking changes reference | Microsoft Docs

这是因为 B2C 是无状态的,并且不遵循此处的 OTP RFC 标准。标准 Azure AD 早在 2018 年就制定了工程规定来跟踪和使 AuthZ 代码失效,但 Azure AD B2C 尚未完成这项工作。 B2C 必须成为一项有状态的服务,这是一项重大投资。因此,虽然这是一个已知问题,但这项工作目前尚未完成。

解决方法是使用 nonce claim .

另请参阅:B2C nonce

关于azure-ad-b2c - 如何防止重复使用 Oauth 授权代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75393814/

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