問題
- 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