我如何获得azure b2c承诺的不记名代币声明? 背景

我如何获得azure b2c承诺的不记名代币声明? 背景,azure,asp.net-web-api,azure-ad-b2c,Azure,Asp.net Web Api,Azure Ad B2c,我在azure中注册了两个应用程序,一个是基于web的客户端,另一个是基于web的服务。设置与此处的示例类似: 用户通过azure b2c登录到客户机,然后客户机通过azure b2c验证该服务以获取其数据 问题 服务未接收承载令牌中的预期声明 细节 Azure B2C表示,您为给定策略选择的声明将包含在“令牌”中,我假设该令牌是承载令牌。下面是我选择的一些声明的截图。 然而,在服务中,当我从持票人令牌中提取索赔时,我没有得到任何承诺的索赔。相反,我得到的声明如下所示。 我使用的是UseAu

我在azure中注册了两个应用程序,一个是基于web的客户端,另一个是基于web的服务。设置与此处的示例类似:

用户通过azure b2c登录到客户机,然后客户机通过azure b2c验证该服务以获取其数据

问题 服务未接收承载令牌中的预期声明

细节 Azure B2C表示,您为给定策略选择的声明将包含在“令牌”中,我假设该令牌是承载令牌。下面是我选择的一些声明的截图。

然而,在服务中,当我从持票人令牌中提取索赔时,我没有得到任何承诺的索赔。相反,我得到的声明如下所示。

我使用的是
UseAuthBeareAuthentication
与microsoft在github上提供的示例相同(如上链接)

我错过什么了吗?
如何获得b2c承诺的声明?

应用程序声明包含在id\u令牌中,而不是访问令牌(也称为承载令牌)

这意味着
选择应用程序声明
将允许您的客户端应用程序(本机应用程序或web应用程序)访问这些自定义声明

如果要从后端服务访问自定义声明,则需要使用客户端凭据流调用用户端点,如下所示:

https://graph.windows.net/<yourtenant.onmicrosoft.com>/users/<userId>
您也可以通过图表获取B2C租户的B2C扩展应用程序的id:

https://graph.windows.net/<yourtenant.onmicrosoft.com>/applications?$filter=displayName eq 'b2c-extensions-app'
https://graph.windows.net//applications?$filter=displayName eq“b2c扩展应用程序”
有关更多信息,请参阅本文:

好的@Saca,我看到将
id\u令牌
传递给客户端,但我猜当前的库不支持将该令牌传递给后端服务,我没有时间为其提供自己的支持。对于图形,您建议使用Microsoft.Azure.ActiveDirectory.GraphClient.ActiveDirectoryClient,还是使用其他工具?我在ActiveDirectoryClient返回的用户对象中找不到extensionProperties,因此我的直觉是,不,您必须直接进行HTTP调用。
extension_e5bf5a2db0c9415cb62661a70d8f0a68_MyCustomAttribute
https://graph.windows.net/<yourtenant.onmicrosoft.com>/applications?$filter=displayName eq 'b2c-extensions-app'