Nic*_*las 5 oauth single-sign-on oauth-2.0 openid-connect keycloak
我将 KeyCloak 与 OpenID Connect 一起使用。
我在 KeyCloak 的同一个域上有一个应用程序。此应用程序有一个端点,它将授权代码作为参数,并在响应中设置 'KEYCLOAK_IDENTITY' cookie 以启用 SSO。
它有效,但这样做安全吗?
编辑:我的问题是关于 cookie。我解释“为什么”只是为了提供一些上下文。
编辑 2:对于想要使用此解决方案的人,我真的很关心 keycloak 社区......即使有 100 的赏金,我的问题也没有答案。
我为什么要这样做:
我需要在外部网站(使用它自己的身份验证提供商,我们称之为“站点 A”)和由 Keycloak 处理的应用程序世界(我们称之为“站点 K”)之间设置 SSO。
作为站点 A 的经过身份验证的用户,如果我想在不登录的情况下导航到站点 K(即使用 SSO),我需要在 KeyCloak 上登录(授权代码流将完成它的工作)。
但是,为了登录 KeyCloak,我需要:
1. OIDC 很棘手,但这是可能的。
2. 使用 OIDC 是不可能的:KeyCloak 中没有端点可以获取授权码并设置 cookie,而无需在正文中返回令牌。
所以,我的解决方案是添加一个网关,在与 KeyCloak 相同的域上,它将从 KeyCloak 获取令牌并将其添加到 KEYCLOAK_IDENTITY cookie ......这很棘手,但它确实有效。我的问题是:它安全吗?
如果不清楚:请随时提问!
如果它有自己的身份数据库,您应该考虑通过用户存储提供程序实现(USP)将此数据库集成到站点 K 的 keycloak 。这样,您的两个站点都将使用单个 Keycloak 服务器进行身份验证。
如果站点 A 的身份数据库具有在站点 B 的 Keycloak 中重复的用户帐户,则可能会出现问题,如果是这样,您应该考虑合并(或者例如更喜欢来自 Keycloak 的现有用户 - 这是当来自 Keycloak 身份数据库的用户与用户从用户存储提供程序实现中提取)。您还可以为 USP 创建单独的领域,并为您的应用程序使用多租户。
归档时间: |
|
查看次数: |
2856 次 |
最近记录: |