【发布时间】:2018-09-09 14:40:17
【问题描述】:
我在 Keycloak 上有 两种 自定义身份验证方法。
其中之一是自定义实施的用户联合。我为 X 领域 配置了它。系统使用此实现使用用户名/密码方法登录。此实现调用我的联合服务并验证发送的用户。 它成功运行并验证联合用户。
第二个是身份代理(openid connect)。我为 Y 领域 配置了一个自定义 openid 提供程序。 它成功运行并验证提供商的用户。
我将它们都配置为相同的领域。当我尝试使用自定义身份提供程序登录时,身份验证流程正常工作。在流程结束时,配置的用户联合(自定义实现的用户联合)使用来自身份代理(自定义身份提供者)登录过程的用户名触发,并再次调用我的联合服务。
当我尝试使用身份提供者登录时,我不希望用户联合(自定义实现的用户联合)工作。只有当我尝试使用用户名/密码登录时它才能工作。
如何在这种情况下阻止用户联盟的工作?
请分享您的经验。 谢谢
【问题讨论】:
-
你找到答案了吗?
-
@Ehsan 对我迟到的回答感到抱歉。是的,我应用了一种解决方案。我创建了一个流程。 (放置在 Authentication/Flows 菜单下)。它仅包含一种身份验证类型。 (如果唯一则创建用户(创建唯一用户配置)=> 作为替代)。之后,我将此流程与我的自定义身份提供者相关联。 (您需要打开身份提供者菜单并选择您的身份提供者设置。并且您需要为“首次登录流程”下拉菜单选择创建的流程)。之后,我阻止了用户联盟在这种情况下的工作。我希望这个过程可以帮助你。
标签: authentication jboss single-sign-on keycloak jboss-tools