是否可以在不使用登录屏幕的情况下对 Keycloak 的身份提供商 (OpenAM) 进行身份验证?

Gan*_*ger 5 authentication openam openid-connect keycloak apiman

请注意,我对我提到的应用程序很陌生,因此我可能会错误地使用术语。我添加了一些图表来尽可能地解释自己。

我正在尝试在 APIMAN 中设置 Web 服务身份验证策略(内部使用 Keycloak)

到目前为止,我知道我在 Keycloak 中创建的身份提供程序 (OpenAM) 已正确配置,因为它正在登录页面上运行(参见下图 1) 图1

我还通过 Keycloak 的 OpenID API 成功使用 access_token 来访问 Web 服务;但前提是用户凭证位于 Keycloak 中(与 OpenAM 相反)(参见图 2) 图2

我想要实现的是通过 Keycloak 但使用身份提供者的凭据来验证此 Web 服务客户端,但我不知道如何执行此操作,也不知道是否可能。(见图3) 图3

请注意,我还尝试了使用 OpenAM 背后的 LDAP 进行用户联合,它工作正常,但我想知道是否有办法通过 OpenAM 实现这一点。

小智 2

你使用keycloak和openam的方式很不寻常,但是如果我正确理解你的问题,你希望keycloak将web服务请求重定向到openam,而不是ldap,

您可以:

  1. 使用 saml 将 openam 配置为身份提供者:

Openam 将是您的身份来源,而 keyclaok 将是他的客户端,您可以通过配置 keycloak 来做到这一点:身份提供者 -> saml IDP -> 在这里您将放置 openam 元数据。

  1. 将 openam 配置为 OIDC 提供商:

在 keycloak 中,您转到身份提供商 -> 创建 -> oidc v1 提供商 -> 然后您将放置您的 openam 信息。

正如我所说,它可以完成,但它不是它应该的方式,openam和keycloak都是访问管理软件,它们都做完全相同的事情,在你的配置中keycloak扮演一个API网关的角色,这是不完全是 keycloak 应该做的事情,您可以摆脱其中任何一个解决方案,两者都可以为您提供相同的功能(OIDC,OAuth2,SAML,LDAP,...)