如何在Azure AD B2C oauth2登录中获取用户的对象ID

时间:2019-04-09 14:47:23

标签: asp.net azure oauth-2.0 azure-ad-b2c

在Azure AD B2C中找到用户时,我正在使用以下自定义api获取access_token:

https://patient360app.b2clogin.com/patient360app.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_ROPC_Auth

它向我返回以下响应:

enter image description here

如何通过上述响应获取用户的对象ID?

2 个答案:

答案 0 :(得分:0)

身份验证响应的id_token属性设置为已编码的JSON Web令牌(JWT)。

您应该使用https://jwt.io/中列出的JWT库之一来验证此ID令牌,然后才能从已验证的令牌中读取oid(对象标识符)声明。

答案 1 :(得分:0)

解决这个问题的方法是在我的api控制器中执行以下操作:

User.Claims.First(e => e.Type == "http://schemas.microsoft.com/identity/claims/objectidentifier").Value;

这为我提供了api调用提供的令牌中的用户ID。