Azure B2C是否支持Pushed Authorization Request[RFC 9126]及启用方法咨询
支持情况
- Azure B2C仅通过自定义策略支持PAR,内置用户流(User Flows)目前不提供PAR功能。
启用步骤
1. 更新自定义策略的TrustFrameworkExtensions.xml
在策略的<ClaimsProviders>节点下添加PAR相关配置,示例代码如下:
<ClaimsProvider> <DisplayName>OAuth2</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="JwtIssuer"> <Metadata> <Item Key="EnablePAR">true</Item> <Item Key="PAREndpoint">https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/v2.0/par</Item> </Metadata> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
替换其中的{your-tenant-name}为你的Azure B2C租户名称,{policy-name}为目标自定义策略名称。
2. 发起PAR请求获取request_uri
向配置好的PAR端点发送POST请求,携带必要的OAuth2参数:
POST /{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/v2.0/par HTTP/1.1 Host: {your-tenant-name}.b2clogin.com Content-Type: application/x-www-form-urlencoded client_id={your-client-id}&client_secret={your-client-secret}&grant_type=authorization_code&redirect_uri={your-redirect-uri}&scope=openid offline_access&response_type=code
请求成功后,响应会包含request_uri参数,该参数有效期为5分钟。
3. 使用request_uri发起授权请求
将原授权请求中的参数替换为request_uri,发起GET请求:
GET /{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/v2.0/authorize?request_uri={returned-request-uri}&client_id={your-client-id} HTTP/1.1 Host: {your-tenant-name}.b2clogin.com
后续流程与标准授权码流程一致,即可完成授权。
4. 验证功能
- 确认PAR请求返回有效的
request_uri - 验证使用
request_uri能正常跳转到登录页面并获取授权码 - 查看Azure B2C日志,确保流程无错误日志
内容的提问来源于stack exchange,提问作者Rohan
相关产品推荐
相关产品推荐

