Keycloak 流程仅允许授权的 IDP 帐户

Ale*_*rio 5 keycloak idp

我想使用 Keycloak 设置 Google 联盟,但仅限我公司的授权用户。

设置 Google 联盟允许任何 Google 帐户登录。

我查看了 Keycloak 上的身份验证流程,但无法找到设置它的方法。我可以想到一些我希望 Keycloak 开箱即用的简单场景

  1. 当有人尝试登录时,不要自动创建帐户,而是要求已经存在具有完全相同的电子邮件/用户名的帐户,并在特定用户尝试登录时根据电子邮件链接它们。

  2. 用户第一次使用 Google 登录时自动创建帐户,但需要管理员手动激活帐户才能使用

  3. 前 2. 启用注册的组合,允许用户注册帐户并要求管理员激活帐户,此时用户可以链接它们。

尽管我尽力了,但我似乎无法配置它。似乎没有办法让 Keycloak 创建一个需要激活的帐户,如果我尝试创建一个不包含“唯一帐户创建”验证器的流程,它会立即将用户抛出“无效的用户名/密码”屏幕。

我错过了什么?除了手动创建帐户并将其链接到每个用户(或者编写我自己的身份验证器(我试图避免))之外,是否没有其他选择?

Chr*_*erS 1

您可以实施自定义表单操作。这比您想象的要容易。

如果您不想编写代码,您可以使用已经可用的“脚本”表单操作。您可以通过以下方式进行操作:

身份验证 -> 在下拉列表中选择“首次经纪商登录” -> 复制它(复制它可以让您编辑它)。现在单击“添加执行”并选择“脚本”。将其向上移动到顶部,因此它是流程中的第一个表单操作。将单选按钮置于“必需”并转到“操作”->“配置”。现在,在脚本中,您可以检查用户名或电子邮件是否匹配模式(可能是您公司的域名),如果模式匹配失败,您可以调用 context.failure(..) 方法,该方法在默认脚本。

确保您在身份提供商配置中选择此(新)第一个代理登录。