【问题标题】:Keycloak OpenID Connect and OAuth 2.0 custom authenticator to support multiple Username & PasswordsKeycloak OpenID Connect 和 OAuth 2.0 自定义身份验证器支持多个用户名和密码
【发布时间】:2022-01-19 01:08:49
【问题描述】:

我正在开发一个数字保险库应用程序,它有一个名为 Group Login 的概念,其中多个成员可以创建一个组来安全地存储共享资产。

为了登录该群组的保管库,至少有 2 名群组成员应在登录屏幕上输入他们的用户名/密码。请注意,这是业务需求。例如:

On the Login Screen:
--------------------
Member 01: Username
Member 01: Password

Member 02: Username
Member 02: Password

   LOGIN BUTTON

这个应用程序只是系统中的一个产品,还有其他产品,如网络应用程序。考虑到这一点,我决定使用 Keycloak 来使用 OpenID Connect 和 OAuth 2 在一个地方管理用户身份验证。

我了解到,Keycloak 中的 OpenID Connect 和 OAuth2 不支持上述群组登录行为。考虑到这一点,我决定为 Keycloak 编写一个自定义身份验证器来处理这个要求。但我不确定这是否是理想的解决方案,或者它是否会违反 OpenID Connect 和 OAuth2 协议。

我的简单问题是:自定义 OpenID Connect 和 OAuth2 以支持这样的场景是否可以接受。如果不是,那么处理这个问题的理想方法是什么?

【问题讨论】:

  • 这是一个有趣的场景,我很想知道,在您验证这两个用户之后,是否会在您的进一步流程中使用他们的访问令牌和刷新令牌?您是否验证他们的角色信息,哪些 keycloak 附加在访问令牌中?还是主要只是验证这些用户的凭据?

标签: oauth-2.0 keycloak openid-connect


【解决方案1】:

如果您将该组视为Resource owner(OAuth2 角色),那么您只是在自定义身份验证机制,这不是 OAuth2 或 OIDC 规范的一部分。该规范也不涵盖资源所有者来源,因此您可以动态创建组(作为一对用户)。所以你的概念不违反协议。

但您还应确保the userinfo endpoint 提供有关组的正确信息,并且生成ID tokens 时包含有关组的正确信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2021-06-30
    • 2019-03-14
    • 2020-10-10
    • 2011-12-04
    • 2012-05-30
    • 2015-09-02
    相关资源
    最近更新 更多