首先,我只想提一下,我对这个主题的了解非常少。但我的问题是我有一个在 openshift 中运行的 grafana 实例,它使用 oauth-proxy 进行身份验证。
在我的公司,我们使用 Kerberos 解决方案自动对访问公司域的用户进行身份验证。问题是我们希望管理哪些组可以访问 grafana 实例,并且如果可能的话,可以在后台进行身份验证,而无需用户输入任何用户名/密码。
据我了解,当前的 kerberos 解决方案的工作原理如下:
用户 -> company.com -> SSO 服务器 -> [从 LDAP 获取用户] -> 如果经过身份验证,则重定向到 company.com
是否可以做类似的事情:
- 用户导航至 grafana.company.com
- grafana.company.com 重定向到 sso 服务器
- 发生神奇的 kerberos 身份验证
- 重定向回 grafana.company.com
- 以某种方式直接从 grafana 或 oauth-proxy 对用户进行身份验证
最佳答案
这是可能的;任何要求您提供用户名/密码的基于 Web 的 SSO 系统都可以同时要求您提供 Kerberos 票证。 (后者是使用 HTTP 级“协商”身份验证(也称为“SPNEGO”)完成的。)一旦 SSO 系统建立了您的身份,它就会很高兴地颁发相同的 OIDC 或 SAML token ,无论使用哪种身份验证.
例如,Keycloak OIDC IdP has built-in support用于 HTTP 协商;在文档中搜索“SPNEGO”。 Shibboleth IdP(用于 SAML)也有 SPNEGO 支持。
此外,任何支持从 Web 服务器获取“REMOTE_USER”断言(而不是使用其自己的凭据提示)的 SSO 系统都可以与 Kerberos 一起使用,例如使用 Kerberos。 Apache mod_auth_gssapi 或 Nginx spnego-http-auth 模块。
关于oauth-2.0 - 身份验证问题,可以将 kerberos 桥接到 oauth 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70199256/