在 keycloak id_token 中获取 Azure 组信息

Posted

技术标签:

【中文标题】在 keycloak id_token 中获取 Azure 组信息【英文标题】:Get Azure groups information in keycloak id_token 【发布时间】:2021-01-27 17:47:44 【问题描述】:

我已将 Azure Active Directory 注册为 Keycloack 服务器中的身份提供程序。 我在 azure 的 id_token 中获取了组数组,它​​看起来像:


     aud: "https://contoso.onmicrosoft.com/scratchservice",
     iss: "https://sts.windows.net/b9411234-09af-49c2-b0c3-653adc1f376e/",
     iat: 1416968588,
     nbf: 1416968588,
     exp: 1416972488,
     ver: "1.0",
     tid: "b9411234-09af-49c2-b0c3-653adc1f376e",
     amr: [
      "pwd"
     ],
     roles: [
      "Admin"
     ],
     oid: "6526e123-0ff9-4fec-ae64-a8d5a77cf287",
     upn: "[hidden email]",
     unique_name: "[hidden email]",
     sub: "yf8C5e_VRkR1egGxJSDt5_olDFay6L5ilBA81hZhQEI",
     family_name: "User",
     given_name: "Sample",
     groups: [
      "0e129f6b-6b0a-4944-982d-f776000632af",
      "323b13b3-1851-4b94-947f-9a4dacb595f4",
      "6e32c250-9b0a-4491-b429-6c60d2ca9a42",
      "f3a161a7-9a58-4e8f-9d47-b70022a07424",
      "8d4c81b2-b1ad-476d-9574-544d155aa6ff",
      "1bf80164-ff24-4866-b19c-6212e5b9a847",
      "76f80127-f2cd-46f4-8c52-8edd8bc749b1",
      "0ba27160-44d0-42b5-b90c-47b3fcc48e35"
     ],
     appid: "b075ddef-0efa-123b-997b-de1337c29185",
     appidacr: "1",
     scp: "user_impersonation",
     acr: "1"
 

在 Keycloak 服务器生成的 id_token 中,没有分组。 如何在 keycloack id_token 中获取 azure AD 组。

【问题讨论】:

有类似问题:keycloak.discourse.group/t/… 【参考方案1】:

我通过创建映射器解决了这个问题。

步骤:

    在身份提供者中创建属性导入器类型映射器 在客户端创建用户属性类型映射器

【讨论】:

以上是关于在 keycloak id_token 中获取 Azure 组信息的主要内容,如果未能解决你的问题,请参考以下文章

是否可以仅使用 Keycloak 进行身份验证?

http://jwt.io 如何检索 keycloak 签名密钥?

如何使用 id_token 从 Azure Function 应用程序获取 Azure access_token?

是否可以从 Google 获取 id_token 中的个人资料信息?

OpenID Connect id_token 和 access_token 如果是web server获取的,需要验证吗?

如何使用 Spring 从 id_token 创建用户?