legacy-knowledge-base
公開されました Jul. 2, 2025

SAML with Azure ADでURL形式の属性名を使用すると、認証に失敗し、メール検証エラーが発生する。

written-by

Eric Yan

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • Liferay SAMLとAzure ADの統合が、特に属性マッピングに関して適切に設定されていない可能性があります。 この結果、ユーザーが初めてログインしようとしたときに、Email Validationエラーがログに記録されてしまうという問題がありました。
  • エラーメッセージの例
    2021-03-19 22:23:26.841 ERROR [http-nio-8081-exec-3][WebSsoProfileImpl:219] Email name address must validate with com.liferay.portal.kernel.security.auth.DefaultEmailAddressValidator

環境

  • サービスプロバイダーとしてのLiferay DXP
  • アイデンティティプロバイダーとしてのAzure AD

解決

  • Azure AD を Identity Provider として使用する場合、Attribute Statement の名前には、次のような URL 形式の名前を使用するのが一般的です。
    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
  • Liferay SAMLのAttribute Mappingでは、以下のような特殊文字が含まれる場合、特別な処理が必要となります。 # ! : =. これらの文字はバックスラッシュでエスケープする必要があります。
  • Azure ADの場合、Attribute Statementの名前の中に : が含まれているのが一般的です。
  • これを解決するには、単純に上述の特殊文字をエスケープします。

    例 - エスケープされた文字を使った属性マッピング。
    http\://schemas.xmlsoap.org/ws/2005/05/identity/claims/name=emailAddress

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base