我如何获得 azure b2c 承诺的不记名令牌声明?
How do I get the bearer token claims that azure b2c promises?
背景
我在 Azure 中注册了两个应用程序,一个是基于 Web 的客户端,另一个是基于 Web 的服务。该设置类似于此处的示例:https://github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi
用户通过azure b2c登录客户端,然后客户端查询通过azure b2c认证的服务,获取其数据。
问题
该服务没有收到不记名令牌中的预期声明。
细节
Azure B2C 说 您select 对给定策略的声明将包含在“令牌”中,我认为这将是不记名令牌。下面是我 select 编辑的一些声明的屏幕截图。
但是,在服务上,当我从不记名令牌中提取声明时,我得到了 none 的承诺声明。相反,我得到了如下所示的声明。
我使用的 UseOAuthBearerAuthentication
与 Microsoft 在 github 上提供的示例相同(上面已链接)。
我错过了什么吗?
我如何获得b2c承诺的声明?
申请声明包含在 id_token 中,而不是 access_token(aka 不记名令牌)。
这意味着 Select application claims
将允许您的客户端应用程序(本机应用程序或网络应用程序)访问这些自定义声明。
如果您想从后端服务访问自定义声明,您需要 call the Azure AD Graph 使用客户端凭据流程并调用用户端点,例如所以:
https://graph.windows.net/<yourtenant.onmicrosoft.com>/users/<userId>
并使用以下格式检索 属性:
extension_<b2c-extensions-app_appId>_<customAttributeName>
例如:
extension_e5bf5a2db0c9415cb62661a70d8f0a68_MyCustomAttribute
您也可以通过Graph获取B2C租户的b2c-extensions-app的id:
https://graph.windows.net/<yourtenant.onmicrosoft.com>/applications?$filter=displayName eq 'b2c-extensions-app'
有关详细信息,请参阅此 post:
背景
我在 Azure 中注册了两个应用程序,一个是基于 Web 的客户端,另一个是基于 Web 的服务。该设置类似于此处的示例:https://github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi
用户通过azure b2c登录客户端,然后客户端查询通过azure b2c认证的服务,获取其数据。
问题
该服务没有收到不记名令牌中的预期声明。
细节
Azure B2C 说 您select 对给定策略的声明将包含在“令牌”中,我认为这将是不记名令牌。下面是我 select 编辑的一些声明的屏幕截图。
但是,在服务上,当我从不记名令牌中提取声明时,我得到了 none 的承诺声明。相反,我得到了如下所示的声明。
我使用的 UseOAuthBearerAuthentication
与 Microsoft 在 github 上提供的示例相同(上面已链接)。
我错过了什么吗? 我如何获得b2c承诺的声明?
申请声明包含在 id_token 中,而不是 access_token(aka 不记名令牌)。
这意味着 Select application claims
将允许您的客户端应用程序(本机应用程序或网络应用程序)访问这些自定义声明。
如果您想从后端服务访问自定义声明,您需要 call the Azure AD Graph 使用客户端凭据流程并调用用户端点,例如所以:
https://graph.windows.net/<yourtenant.onmicrosoft.com>/users/<userId>
并使用以下格式检索 属性:
extension_<b2c-extensions-app_appId>_<customAttributeName>
例如:
extension_e5bf5a2db0c9415cb62661a70d8f0a68_MyCustomAttribute
您也可以通过Graph获取B2C租户的b2c-extensions-app的id:
https://graph.windows.net/<yourtenant.onmicrosoft.com>/applications?$filter=displayName eq 'b2c-extensions-app'
有关详细信息,请参阅此 post: