spring-boot - 如何使用 Spring Boot Starter oAuth2 客户端在从 Azure Active Directory (AAD) 返回的 OAuth2User 中包含更多属性

标签 spring-boot azure azure-active-directory

我正在使用 spring-boot-starter-oauth2-client、spring-cloud-azure-starter-active-directory (spring-cloud-azure-dependency 4.0.0) 将针对 Azure Active Directory 的 oauth2 身份验证添加到一个简单的 Spring 启动应用程序。一切正常。

我注意到我从 Spring Security 身份验证获得的 OAuth2User 主体不包含例如该身份在 AAD 中可见的所有属性。有没有办法请求更多信息(例如,名字和姓氏的单独属性)包含在响应中(无需单独调用)?

https://learn.microsoft.com/en-us/azure/developer/java/spring-framework/spring-boot-starter-for-azure-active-directory-developer-guide 看起来很有希望,但对我没有帮助。

最佳答案

您可以尝试通过在 token 配置中选择可选声明,您可以在其中选择要在 token 中反射(reflect)的所需 token 。

  • 根据documentation可选声明给定名称和 family_name 在您的 token 请求中需要个人资料范围

enter image description here

您可以在manifest.json 文件中更新可选声明given_name(名字)和family_name(姓氏):

"accessTokenAcceptedVersion": 2,
"optionalClaims": {
    "idToken": [
        {
            "name": "given_name",
            "source": "user",
            "essential": false,
            "additionalProperties": []
        },
        {
            "name": "family_name",
            "source": "user",
            "essential": false,
            "additionalProperties": []
        }
    ],
    "accessToken": [],
    "saml2Token": []
}

如果是Microsoft graph api,您可以为accesstoken勾选相同的标记。

还可以尝试添加电子邮件和 openid 范围并为其授予 api 权限。

引用:c# - How to add 'Optional Claims' dynamically for AzureAD registered application? - Stack Overflow

关于spring-boot - 如何使用 Spring Boot Starter oAuth2 客户端在从 Azure Active Directory (AAD) 返回的 OAuth2User 中包含更多属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72137173/

相关文章:

spring-boot - Spring Boot Docker容器立即退出并显示代码1

spring-boot - 在 Spring 启动中使用gradle的mapstruct

java - 由于我的 SpringBoot 应用程序,Swagger UI 未显示,每个端点需要 2 个查询参数

spring - Liquibase变更集未在bootRepackage gradle任务中运行

azure - 无法获取移动服务的位置信息 - 错误 400

azure - 如何确定运行特定 Azure PowerShell 命令需要哪些 API 权限?

azure - 如何向 Azure 服务应用程序上运行的 docker 添加其他选项

azure - 我们可以从管道 azure synapse 在无服务器池中执行 sql 查询吗?

azure - B2B 用户无法使用 v2.0 端点和 MSAL 身份验证流程登录租户

azure - 如何从“访问控制”选项卡获取存储帐户容器的角色分配