如何从Azure B2C OIDC步骤获取AccessToken用于Graph API调用?
解决方案步骤
1. 在声明架构中定义access token的声明类型
在自定义策略的<ClaimsSchema>节点下添加声明定义,用于存储微软账户返回的access token:<ClaimType Id="msAccessToken"> <DisplayName>Microsoft Account Access Token</DisplayName> <DataType>string</DataType> <AdminHelpText>存储从微软账户OIDC流程获取的原始access token</AdminHelpText> </ClaimType>2. 修改OIDC技术配置文件,输出access token
找到你已配置的OpenIdConnect类型技术配置文件,在<OutputClaims>节点中添加输出声明,通过Azure B2C内置表达式提取原始access token:<OutputClaim ClaimTypeReferenceId="msAccessToken" PartnerClaimType="{oauth2:access_token}" />这里
{oauth2:access_token}是框架内置的表达式,会自动提取OIDC授权流程中获取到的原始access token值。3. 确保声明在用户旅程中传递到REST步骤
检查用户旅程的编排步骤,确保包含OIDC登录的步骤执行后,后续调用Graph API的REST步骤能接收到msAccessToken声明。默认情况下,声明会在编排步骤间自动传递,无需额外配置,除非你在步骤中显式清除了声明。4. 在REST技术配置文件中引用该access token
配置调用Graph/me端点的REST技术配置文件时,在<Headers>节点中添加Authorization请求头,直接引用msAccessToken声明:<Header Name="Authorization" Value="Bearer {msAccessToken}" />这样REST请求就会携带有效的access token,完成Graph API的调用。
注意:你需要确保微软账户的OIDC应用已配置
User.Read等Graph API权限,否则获取的access token会因权限不足无法访问/me端点。
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

