是否有适用于 Azure AD B2C 策略的任何用户信息uri 终结点?从Spring安全DefaultOAuth2UserService
的实现来看,它需要用户信息URI进行标准Oauth2Login
过程。
如果不是,我们如何从 AD B2C 策略获取用户信息?
弹簧安全参考代码:
@Override
public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
Assert.notNull(userRequest, "userRequest cannot be null");
if (!StringUtils.hasText(userRequest.getClientRegistration().getProviderDetails().getUserInfoEndpoint().getUri())) {
OAuth2Error oauth2Error = new OAuth2Error(
MISSING_USER_INFO_URI_ERROR_CODE,
"Missing required UserInfo Uri in UserInfoEndpoint for Client Registration: " +
userRequest.getClientRegistration().getRegistrationId(),
null
);
throw new OAuth2AuthenticationException(oauth2Error, oauth2Error.toString());
}
...
截至目前,Azure AD B2C 仅通过自定义策略支持用户信息终结点。
如果使用内置的用户流策略,则必须自行设置并硬编码库以查看自定义终结点。终结点只需读取 id 令牌,对其进行验证,然后以 JSON 格式返回其中的声明。
在Azure AD 用户语音上有一个功能请求。