Keycloak KeyClope流只允许授权的IDP帐户

Keycloak KeyClope流只允许授权的IDP帐户,keycloak,idp,Keycloak,Idp,我想设置谷歌联盟使用Key斗篷,但只为授权用户在我的公司 设置Google federation允许任何Google帐户登录 我已经查看了KeyClope上的身份验证流,但是我找不到一种方法来设置它。我可以想出几个简单的场景,我希望keydepeat能够开箱即用 当有人尝试登录时,不需要自动创建帐户,而是要求已经存在具有完全相同电子邮件/用户名的帐户,并在该特定用户尝试登录时根据电子邮件链接这些帐户 当用户第一次使用Google登录时自动创建一个帐户,链接他们,但是需要管理员手动激活该帐户才能使

我想设置谷歌联盟使用Key斗篷,但只为授权用户在我的公司

设置Google federation允许任何Google帐户登录

我已经查看了KeyClope上的身份验证流,但是我找不到一种方法来设置它。我可以想出几个简单的场景,我希望keydepeat能够开箱即用

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

  • 当用户第一次使用Google登录时自动创建一个帐户,链接他们,但是需要管理员手动激活该帐户才能使用

  • 前两种方法的组合。启用注册,允许用户注册帐户,并要求管理员激活该帐户,此时用户可以链接这些帐户

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


    我错过什么了吗?除了手动创建一个帐户并为每个用户链接它(或者编写我自己的身份验证程序,我正试图避免这种情况)之外,没有其他选项了吗?

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

    如果您不想编写代码,可以使用“脚本”表单操作,该操作已经可用。你可以这样做:

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


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

    如果您对来自单个域(例如
    @yourco.com
    )的人没有意见,您可以使用设置页面上的
    托管域
    参数。特别是对于谷歌而言,至少在keydape 11.x中,谷歌和keydape都将确保用户的电子邮件地址与输入的域匹配。我不知道是否可以进入多个域

    我们要做的是使用托管域选项,并授予这些新用户一个简单的角色,允许他们登录到管理面板,并对几个简单的区域具有读取权限。这使得在KeyClope中设置新帐户变得很容易,我们只需告诉用户登录,他们就可以使用基本访问权限进行设置。如果有人需要更高级的访问权限来读取私人数据,甚至写入一些数据,他们必须联系我们的ops团队,他们可能会选择授予他们在KeyClope中更多的角色


    成功了吗?我在“添加执行”中没有看到“Scipt”选项。我使用的是KeyClope v7.0.0。我在哪里可以找到它?有关如何启用脚本身份验证程序,请参见以下内容: