我们在应用程序中使用 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
and id_token
using
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
身份验证后,代码用于访问各种端点和天蓝色功能。
在这个过程中,我们需要用户属性,如电子邮件、显示名称、国家/地区等用户在注册时输入的信息。
除了默认属性之外,我们还有一些自定义属性,例如team_name
这是特定于我们的 Web 应用程序用例的。这些属性随着时间的推移而变化。
例如:人可以切换团队。因此我们使用 Graph API 在用户属性中修改它。
所以在这种情况下如果属性team_name
=“ABC 队”现在更改为team_name
=“XYZ 团队”
但是属性改变后,属性并没有反映新的值access_token
/ refresh_token
or id_token
。有没有一种方法可以在不重新授权用户的情况下获取令牌中刷新的值?
目前我们从 Graph API 获取用户属性,但如果我们在令牌中获取刷新的值,它会更快、更方便。
自定义策略没有公开记录的机制来在刷新令牌流中获取新的访问令牌声明。所以你所观察到的是预期的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)