我为 SP连接( IdP配置)配置了多个(HTTP表单适配器)IdP适配器。用户属性从数据存储区( LDAP )获取。在LDAP中配置了两个DIT。因此,每个IdP适配器都配置了DIT。我只想使用多个适配器,因为我不能为多个组织使用相同的属性名称.Eg:Adapter1配置为搜索库为dc = example1,dc = com,Adapter2配置为搜索库为dc = example2,dc = com。
当点击IdP SSO网址时,它会显示适配器选择页面。当用户输入用户名/密码时,应根据输入自动启用适配器选择,而不是手动选择/附加特定的适配器ID作为查询参数。
我发现可以使用适配器选择器启用自动适配器选择。但是现有的适配器(如CIDR和saml authn上下文适配器)不适用于我的要求。因为它要么基于SP设置的请求IP地址/上下文。我已经完成了复合适配器。但是我找不到有关将复合适配器与SP连接集成的详细文档。
如果我的方法是对的,有谁可以告诉我?如果是这样,请指导我进行整合。如果错了,建议我采取一种方法。
谢谢, Aswini J
答案 0 :(得分:1)
我认为你可以通过两种方式做到这一点。您可以使用带有2个PCV或2个适配器(每个带有1个PCV)的1个适配器,然后组合成单个复合适配器,然后在SP连接中使用,如果,您的目标是移除Idp适配器选择决定。
您将遇到的问题是,如果用户使用等效的“uid = joe”登录到HTMLForm适配器,并且“uid = joe”存在于两个LDAP后缀中。你怎么知道哪个“乔”是正确的?您可能需要确保登录标识符是唯一的(电子邮件?)。但是,这仅仅是您可以设置用户身份验证的方式。它不会真正帮助您完成属性合同履行,您需要搜索单个数据源的两个LDAP后缀以检索用户的属性(例如,telephoneNumber)。
您需要在断言映射屏幕上指定“使用一个映射从多个数据存储中检索其他属性”,然后针对“telephoneNumber”对单个数据源的两个后缀进行查找。假设您正在搜索的用户身份属性在两个后缀(电子邮件?)中是唯一的,您将获得针对一个或其他后缀搜索的空值(因为用户将存在于一个或另一个中)。
当您进入“属性合同履行”屏幕时,您需要将断言的属性“phone no”映射到检查来自2个数据源查找的结果的表达式,丢弃telephoneNumber的“null”结果并插入有效的搜索结果。
答案 1 :(得分:1)
您可以简单地使用多个数据源。将其他数据源的过滤器配置为第一个数据源的唯一值。 例如:uid = $ {userId}。