如何使用 Azure Entra ID 作为 IDP 来验证 Keycloak 中的多租户颁发者值

问题描述 投票:0回答:1

我们正在将 Entra ID(多租户)引入到我们的 Keycloak SSO 实例中。我们已使用 Keyclok 的 Open ID Connect 身份提供商设置对其进行了配置。

从截图中可以看出,我们已经按照微软的建议进行了配置。

Keycloak IDP entra ID openid connect config

仍然存在一个问题:我们认为从安全角度来看,发行人字段不应该为空,但不知道如何在 Keycloak 上实现这一点。

可以从微软提供的公钥中找到颁发者密钥:

https://login.microsoftonline.com/organizations/discovery/v2.0/keys

..其中包含值:

"issuer":"https://login.microsoftonline.com/{tenantid}/v2.0"

(也在他们的文档中)。

简而言之,当我们将发行者字段保留为空时,一切都会正常工作,但从安全角度来看,它很可能应该被填充?

似乎不可能将模板值放入发行者字段,我们已经尝试过例如:

- https://login.microsoftonline.com/{tenantid}/v2.0
- https://login.microsoftonline.com/${tenantid}/v2.0
- https://login.microsoftonline.com/organizations/v2.0

但是每次失败时都会显示以下消息:

Wrong issuer from token. Got: https://login.microsoftonline.com/<customer-tenant-id>/v2.0 expected: <our issuer uri we provided in keycloak's configuration>

还有其他人尝试过类似的方法吗?关于如何继续解决此问题有什么建议吗?我们如何动态发送颁发者验证以更正颁发者 URI?

需要澄清的是,我们的 SSO 中存在数量未知的 Entra ID 租户。

keycloak openid-connect multi-tenant microsoft-entra-id
1个回答
0
投票

以逗号分隔的方式将颁发者添加到 IDP 配置中。并且验证将会通过。

https://login.microsoftonline.com/<customer-tenant-id-1>/v2.0, https://login.microsoftonline.com/<customer-tenant-id-2>/v2.0
© www.soinside.com 2019 - 2024. All rights reserved.