【发布时间】:2020-08-13 09:58:19
【问题描述】:
我们在我们的应用程序中使用 Azure AD B2C。 我们使用 API 授权用户
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?client_id=<client-id-uuid>
&nonce=defaultNonce&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Findex.html
&scope=openid%20offline_access%20https%3A%2F%2F{tenant}.onmicrosoft.com%2F<client-id-uuid>%2FUser.all
&response_type=code&prompt=login
使用上面我们获取授权码。
此身份验证代码用于通过应用程序对用户进行身份验证并获取 access_token 、 refresh_token 和 id_token 使用
POST /{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: {tenant}.b2clogin.com
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
grant_type=authorization_code&code={auth code received in previous step}
&scope=openid%20offline_access%20https%3A%2F%2F{tenant}.onmicrosoft.com%2F<client-id-uuid>%2FUser.all
&client_id={client id}&redirect_uri=localhost%253A4200%252Flogin.html%3A
身份验证后,代码用于访问各种端点和天蓝色功能。
在 hte 过程中,我们需要用户在唱歌时输入的用户属性,例如电子邮件、显示名称、国家/地区等信息。
除了默认属性外,我们还有一些自定义属性,例如 team_name,这是特定于我们的 Web 应用程序用例的。这些属性会随着时间而变化。
例如:一个人可以切换团队。因此我们使用 Graph API 在用户属性中修改它。
所以在这种情况下,如果属性 team_name = 'Team ABC' 现在更改为 team_name = 'Team XYZ'
但是属性更改后,属性并没有反映access_token/refresh_token或id_token中的新值。有没有一种方法可以在不重新授权用户的情况下获取令牌中的刷新值?
目前我们从 Graph API 获取用户属性,但如果我们在令牌中获得刷新值,它会更快更方便。
【问题讨论】:
-
您是否有机会查看此类似的 SO question 并告诉我们是否有帮助
-
@Raghavendra-MSFTIdentity 是的,这是完全相同的问题。如果不要求用户注销/登录,则不会刷新声明。我有自定义声明,这些声明在注册/登录后更新。我希望它们也能在我的访问令牌中更新
-
感谢您告知我们。让我检查一下并回复你
标签: azure active-directory azure-active-directory azure-ad-b2c azure-ad-graph-api