3

これを手伝ってください: openam で 1 つの idp と 1 つの 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 にインポートできません。2 つの質問があります。はいの場合、openam 関連の schmea アイテムを Apache ds にもプッシュするにはどうすればよいですか? 2.ここで完全に欠けているものはありますか?

4

1 に答える 1

2

SAML NameID-Format に応じて、OpenAM はフェデレーション情報をユーザー データ ストアに保存しようとします。デフォルトでは、これらの属性は「sun-fm-saml2-nameid-info」および「sun-fm-saml2-nameid-infokey」ですが、[設定] -> [グローバル] -> で属性名を任意の名前に変更できます。 SAMLv2 サービス構成ページ。

SP が一時的な NameID 形式を使用している場合、この情報は保存されません。

SP が指定されていない NameID 形式を使用している場合、[アサーション コンテンツ] ページのリモート SP 構成で、「NameID 形式が指定されていない場合はフェデレーションの永続性を無効にする」というオプションを使用して、このデータ ストアの更新を無効にすることができます。

それ以外の場合、OpenAM はデータ ストアとの間でアカウント フェデレーションを保存/使用しようとします。つまり、データ ストア内の属性も変更/読み取りを試みます。データ ストアがこれらの属性を認識できない場合、前述のようにエラーがスローされます。また、OpenDJ を使用する場合、OpenAM スキーマがそこにロードされる可能性が高いため、属性を保存できます。

OpenAM 10.1.0 では、無視されたユーザー プロファイル モードが使用されている場合、この更新を無効にするオプションがあります: https://bugster.forgerock.org/jira/browse/OPENAM-1427

したがって、現在のオプションは次のとおりです。

  • 前に説明したように、セットアップの NameID-Format を一時的/未指定に変更します
  • 構成内の attributenames を、ApacheDS スキーマに実際に存在する属性に変更します
于 2012-11-01T07:42:11.343 に答える