30日間の無料評価版をお試しいただけます。


トラブルシューティングでは、onelogin.saml.propertiesonelogin.sample2.idp.single_sign_on_service.urlから提供されるSSO URLを、理想的にはAD FSサーバ上で実行するのが好ましいです。

こちらの項目では、以下のように基礎的な問題への解決策を紹介します。


よりシンプルな統合のために、Yellowfin 9.6にはSAML インターフェースが同梱されています。こちらの項目で説明をするSAML Bridge アプリケーションをまだ使用していない場合は、新しいインターフェースで必要なすべてのツールが揃うかもしれません。ただ、サービスプロバイダーが開始するフローを実装する予定の場合は、こちらの項目で説明をするSAML Bridge アプリケーションを使用しなくてはいけません。


署名の検証に失敗

以下のエラーが発生した場合:

ERROR c.onelogin.saml2.authn.SamlResponse - Signature validation failed. SAML Response rejected

onelogin.saml.propertiesで参照した、以下のような公開鍵が無効であることを意味します。

onelogin.saml2.idp.x509cert =MIIC2DCCAcCgAwIBAgIQfdRAAWmWko1IsimA004o3TANBgkqhki…


解決策

  • AD FSから有効な証明書を取得
  • onelogin.saml.properties(onelogin.saml2.idp.x509cert)の編集
  • Yellowfinの再起動
  • AD FSのYellowfin SMAL Bridgeのreplying party(信頼できる利用者)メタデータを更新



不正な鍵長

Yellowfinログに、以下のような例外が見つかる場合があります。

org.apache.xml.security.encryption.XMLEncryptionException: 不正な鍵長

元の例外は、java.security.InvalidKeyException:不正な鍵長



解決策

以下のSAML応答ペイロードを検証する際、データはAES-256で暗号化されます。

EncryptionMethodアルゴリズムは、こちらを参照してください。:http://www.w3.org/2001/04/xmlenc#aes256-cbc


デフォルトでは、アメリカのエクスポート規制、数カ国のインポート規制に従い、Javaの鍵長は128bitに制限されています。

こちらを変更する方法は、以下の通りです。

無効な名前ID

SAMLは、アイデンティティプロバイダー応答の一部として、名前IDを要求します。AD FSの不正な名前IDを提供した場合、ブラウザに以下の例外が表示されます。


SAML bridgeが想定する形式(onelogin.saml.propertiesのonelogin.saml2.sp.nameidformat)に一致する適切な名前IDを渡します。

可能な形式の一覧は、以下の通りです。

NAMEID_EMAIL_ADDRESS = 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress';

NAMEID_X509_SUBJECT_NAME = 'urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName';

NAMEID_WINDOWS_DOMAIN_QUALIFIED_NAME = 'urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName';

NAMEID_UNSPECIFIED = 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified';

NAMEID_KERBEROS   = 'urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos';

NAMEID_ENTITY     = 'urn:oasis:names:tc:SAML:2.0:nameid-format:entity';

NAMEID_TRANSIENT  = 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient';

NAMEID_PERSISTENT = 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent';

NAMEID_ENCRYPTED = 'urn:oasis:names:tc:SAML:2.0:nameid-format:encrypted';


以下は、SAML応答に関する正確なYellowfinログの一覧の例を示しています。

DEBUG c.onelogin.saml2.authn.SamlResponse - SAMLResponse validated --> …

DEBUG c.onelogin.saml2.authn.SamlResponse - SAMLResponse has NameID --> john.smith@yellowfin.bi

DEBUG c.onelogin.saml2.authn.SamlResponse - SAMLResponse has attributes: {http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress=[john.smith@yellowfin.bi]}

DEBUG com.onelogin.saml2.SamlAuth - processResponse success --> <very long line representing signing certificate>




COULD_NOT_FIND_PERSON

Yellowfinログに以下のエラーが表示される場合:

INFO (AdministrationService:remoteAdministrationCall) - WebserviceException caught: 8(COULD_NOT_FIND_PERSON)

これは、ユーザープロビジョニング機能が無効であり、渡されたIDはYellowfinユーザーのものではないことを示しています。





後項:




  • No labels