gpt4 book ai didi

schema - openam federation 的问题(使用 apaches 作为数据存储)

转载 作者:行者123 更新时间:2023-12-04 16:50:37 26 4
gpt4 key购买 nike

请帮我解决这个问题:我正在尝试在 openam 中设置一个 idp 和一个 sp 的联盟。使用的数据存储是 ApacheDS。我正在尝试按照以下教程进行操作。

http://fczaja.blogspot.com/2012/06/idp-initiated-sso-and-identity.html

我在测试联合连接期间(从控制台)在 openam 日志中收到以下错误**

libSAML2:10/30/2012 06:48:41:399 PM IST: Thread[http-8080-1,5,main]
AccountUtils.setAccountFederation: set fedinfo {sun-fm-saml2-nameid-info=[http://www.idp.com:8080/openam_10.0.0|http://www.sp.com:8090/openam_10.0.0|WC++1dcclPD//rTlgpYLD0EEISg2|http://www.idp.com:8080/openam_10.0.0|urn:oasis:names:tc:SAML:2.0:nameid-format:persistent|null|http://www.sp.com:8090/openam_10.0.0|IDPRole|false], sun-fm-saml2-nameid-infokey=[http://www.idp.com:8080/openam_10.0.0|http://www.sp.com:8090/openam_10.0.0|WC++1dcclPD//rTlgpYLD0EEISg2]} userID = id=appu,ou=user,dc=opensso,dc=java,dc=net
libPlugins:10/30/2012 06:48:41:543 PM IST: Thread[http-8080-1,5,main]
ERROR: IdRepoDataStoreProvider.setAttribute(): IdRepo exception
Message:Plug-in com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo encountered an ldap exception. LDAP Error 16: The specified attribute could not be found.
at com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo.handleLDAPException(LDAPv3Repo.java:6117)
at com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo.setAttributes(LDAPv3Repo.java:4141)
at com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo.setAttributes(LDAPv3Repo.java:3921)
at com.sun.identity.idm.server.IdServicesImpl.setAttributes(IdServicesImpl.java:1701)

这可能意味着 openam 正在尝试使用一些不存在的 LDAP 属性(因为我在 ApacheDS 中创建了最小属性集)。因此,我转到 IDP 和 SP 中的数据存储设置,并从 LDAP 用户属性中删除了不可用的属性。现在它给出以下错误:

WARNING: IdServicesImpl.setAttributes: Unable to modify identity in the following repository com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo :: Illegal arguments: One or more required arguments is null or empty
amIdm:10/31/2012 10:20:26:362 AM IST: Thread[http-8080-1,5,main]
IdServicesImpl.setAttributes: Unable to set attributes in the following repository com.sun.identity.idm.plugins.internal.SpecialRepo :: Plug-in com.sun.identity.idm.plugins.internal.SpecialRepo does not support operation edit for type {2}
amIdm:10/31/2012 10:20:26:362 AM IST: Thread[http-8080-1,5,main]
WARNING: IdServicesImpl.setAttributes: Unable to set attributes for identity user::appu in any configured data store
Message:Illegal arguments: One or more required arguments is null or empty
at com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo.setAttributes(LDAPv3Repo.java:4039)
at com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo.setAttributes(LDAPv3Repo.java:3921)

一些论坛说需要像 sun-fm-saml2-nameid-info 和 sun-fm-saml2-nameid-infokey 这样的属性。但我无法将它们添加到我的数据存储中,因为它们与模式不匹配。此外,我无法将 openam 安装中给出的 LDIF 导入 Apache DS。我有两个问题:1. 我正朝着正确的方向前进(向 Apache ds 数据存储添加属性会有所帮助)?如果是,我如何在 Apache ds 中也推送与 openam 相关的 schmea 项目?2. 我在这里完全遗漏了什么。

最佳答案

根据 SAML NameID 格式,OpenAM 将尝试将联合信息保存在用户数据存储中。默认情况下,这些属性是“sun-fm-saml2-nameid-info”和“sun-fm-saml2-nameid-infokey”,但您可以在 Configuration -> Global -> 中将属性名称更改为任何您喜欢的名称SAMLv2 服务配置页面。

如果您的 SP 使用临时 NameID 格式,则不会保存此信息。

如果您的 SP 使用未指定的 NameID 格式,则在声明内容页面上的远程 SP 配置上,您可以使用名为“如果未指定 NameID 格式则禁用联合持久性”的选项来禁用此数据存储更新。

在任何其他情况下,OpenAM 将尝试在数据存储中保存/使用帐户联合,这意味着它也会尝试更改/读取数据存储中的属性。如果您的数据存储无法识别这些属性,那么它将像您提到的那样抛出错误。此外,很可能当您使用 OpenDJ 时,OpenAM 模式已加载到那里,因此可以保存该属性。

在 OpenAM 10.1.0 中,如果正在使用忽略的用户配置文件模式,将有一个禁用此更新的选项:https://bugster.forgerock.org/jira/browse/OPENAM-1427 .

因此您当前的选择是:

  • 如前所述,将设置中的 NameID 格式更改为临时/未指定
  • 将配置中的属性名称更改为实际存在于您的 ApacheDS 模式中的属性

关于schema - openam federation 的问题(使用 apaches 作为数据存储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13152660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com