Azure AD B2C自定义策略中OAuth语法及可用引用技术问询
Azure AD B2C自定义策略中
{oauth2:xxx}类语法详解 一、语法说明
这种{前缀:字段名}的格式是Azure AD B2C自定义策略里的声明解析器占位符,用来从身份提供者(IDP)的响应或当前策略的声明集合中提取特定值,属于官方定义的「声明解析器表达式」范畴。
二、除access_token/refresh_token外可引用的内容
根据IDP遵循的协议类型,可提取的内容分为两类:
1. OAuth2协议响应(对应oauth2前缀)
除了你提到的两个令牌,还能提取OAuth2令牌响应里的标准字段:
id_token:OpenID Connect兼容IDP返回的身份令牌token_type:令牌类型,通常为Bearerexpires_in:access_token的过期时长(单位:秒)scope:授权请求中获取到的权限范围- 部分IDP自定义响应字段:比如部分社交IDP会返回额外的用户元数据字段
2. OpenID Connect ID Token声明(对应oidc前缀)
如果是OIDC兼容的IDP,还可通过{oidc:xxx}提取ID Token(JWT) payload里的声明,包括:
- 标准OIDC声明:
sub(用户唯一标识)、name、email、given_name、family_name、picture、locale - IDP自定义声明:比如Google返回的
hd(用户所属域名)、Facebook返回的age_range
三、oauth2的对象结构
oauth2前缀对应的是OAuth2 IDP返回的令牌响应JSON结构,典型格式如下:
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "def50200...", "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ij..." }
{oauth2:字段名}就是直接从这个JSON对象中提取对应键的值。
四、其他可用的前缀类型
不止oauth2,还有以下常用前缀:
{oidc:xxx}:用于解析OpenID Connect ID Token的JWT payload中的声明{saml:xxx}:用于从SAML IDP的断言(Assertion)中提取属性字段,比如{saml:emailaddress}{claims:xxx}:用于引用当前策略流程中已生成或存在的声明值,比如{claims:displayName}
内容的提问来源于stack exchange,提问作者Anton Putau
相关产品推荐
相关产品推荐

