OpenID Connectを使用してAuth0でLiferay認証を設定する
このチュートリアルでは、OpenID Connectを使用して、IDプロバイダー(IdP)であるAuth0をLiferay環境に統合する手順を説明します。
前提条件
- Auth0 アカウント
- Liferay DXP環境
- Auth0のダッシュボードへの管理者権限を持つユーザー
- Liferayのコントロールパネルへの管理者権限を持つユーザー
- Auth0プロフィールに氏名(姓と名)が入力されているAuth0ユーザー
Auth0 設定
-
Auth0 にログインしてください。
-
Auth0のダッシュボードを開く
-
サイドメニューから アプリケーション を選択し、新しいアプリケーションを作成します。

-
任意の名前を設定し、アプリケーションの種類として 通常の Web アプリケーション を選択します。

-
をクリックして を作成し、アプリケーションを準備してください。
-
クライアントIDとクライアントシークレットは、「設定」タブで確認できます。 後で必要になりますよ。

-
アプリケーションURIセクションまでスクロールダウンして、許可されたコールバックURLフィールドを設定し、
https://[your_liferay_environment]/c/portal/login/openidconnectと入力します。
-
追加設定を編集するには、ページ下部の「詳細設定」にアクセスしてください。
-
アプリケーションの設定を保存するには、 変更を保存 をクリックしてください。
-
Auth0の設定が完了したので、Auth0アプリケーションをLiferay DXPに設定できます。
テスト中でユーザーがいない場合は、Auth0 ダッシュボードで ユーザー管理 → ユーザー に移動してユーザーを作成してください。 各ユーザーは、Auth0 プロファイルに名と姓を設定する必要があります。Auth0 は、これらの名と姓を given_name および family_name クレーム (サインイン時に Auth0 が Liferay に送信するユーザー情報の一部) として返します。Liferay は、ユーザー アカウントを作成するためにこれらのクレームを必要とします。
OpenID Connectプロバイダー接続の設定
Auth0の設定が完了したら、Liferayのインターフェースを使用してプロバイダー接続を設定します。 すべての設定は、プロバイダの周知設定エンドポイントを通じて行われます。
Auth0 の Well-Known URI は https://[your-default-tenant].us.auth0.com/.well-known/openid-configuration です。 デフォルトのテナントを見つけるには、プロファイルに移動して Default Tenantを探すか、URL の /profile の前の項目を探してください。
-
DXP インスタンスで、 グローバル メニュー → コントロール パネル → インスタンス設定 → セキュリティ → SSO に移動します。
-
OpenID Connect プロバイダー接続 タブに移動し、新しい接続エントリを追加します。
-
下記の表に示されているとおり、各項目に要求されたデータを入力してください。 スコープ以外のすべてのフィールドについては、上記に記載されている周知のURLの値を使用してください。 スコープの値は、表示されているとおりに正確に入力してください。
注Scopes の値 (
openid email profile) は固定文字列であり、Well-Known URL には含まれていません。項目 データ プロバイダー名 Auth0 OIDC 範囲 openid email profile認可エンドポイント 認証エンドポイントURL発行者URL 発行者URLJWKS URI jwks_uriURLIDトークンの署名アルゴリズム id_token_signing_alg_values_supportedurlサブジェクトタイプ サポートされている主題タイプURLトークンエンドポイント トークンエンドポイントURLユーザー情報エンドポイント userinfo_endpointurlOpenID Connect クライアントID Auth0 のアプリケーションの 設定 タブで OpenID Connect クライアントシークレット Auth0 のアプリケーションの 設定 タブで
プロファイル スコープが必要です。 Liferay は、Auth0 からの given_name および family_name クレームをユーザーの名と姓にマッピングします。 新規ユーザーアカウント作成時にトークンにこれらのクレームが含まれていない場合、マッピングエラーが発生し認証が失敗します。 Auth0 は、 プロファイル スコープが要求され、ユーザーの Auth0 プロファイルにこれらのフィールドが入力されている場合にのみそれらを返します。詳細については、 名または姓がありません を参照してください。
変更内容が保存されるように、必ず をクリックして保存 をクリックしてください。
それが完了したら、OpenID Connectを有効にしてください。 OpenID Connectを有効にするには:
-
DXP インスタンスで、 グローバル メニュー → コントロール パネル → 設定 → インスタンス設定 に移動します。
-
セキュリティセクションの SSO をクリックしてください。
-
OpenID Connect タブに移動し、 有効 チェックボックスをクリックして、 保存 をクリックします。

入力値の検証
-
Liferay DXPインスタンスを起動します
-
サインイン ボタンをクリックし、 OpenID Connect を選択します。

-
リストから Auth0 OIDC を選択し、Auth0 アカウントでサインインしてください。

-
「サインイン」をクリックすると、Auth0のログインページにリダイレクトされます。

-
ユーザーのメールアドレスとパスワードを入力してください。 ログインに成功しました。
-
Liferay管理者アカウントで再度ログインしてください。 コントロール パネル → ユーザーと組織に移動し、アカウントが Liferay に登録されていることを確認します。
さいごに
ユーザーはAuth0を使用して、お客様の環境への認証を行うことができるようになりました。
ヒントとトラブルシューティング
コールバックURLの不一致
下記のようなエラーが発生した場合は、Auth0で許可されたコールバックURLが適切なパスとハイパーテキスト転送プロトコル(HTTPまたはHTTPS)で正しく設定されていることを確認してください。 Auth0アカウント内でこれらを確認するには、作成したアプリケーション →[設定] タブ → [アプリケーションURI] セクションへと移動してください。

名または姓が欠落しています
認証が失敗し、名または姓が欠落しているというメッセージが表示された場合、Auth0 はトークン内の given_name または family_name クレームを返しません。 原因は大きく分けて2つあります。
-
プロファイルスコープは含まれていません。 OpenID Connect プロバイダー接続の Scopes フィールドがopenid email profileに設定されていることを確認してください。 - ユーザーのAuth0プロファイルが不完全です。
プロファイルスコープは、Auth0 でこれらのフィールドに入力されている場合のみ、given_nameとfamily_nameを返します。 これらを設定するには、Auth0 ダッシュボードで ユーザー管理 → ユーザー に移動し、ユーザーを開いて、 名 と 姓 フィールドを更新します。 プログラムによる更新(API認証情報と開発者アクセスが必要)については、 Auth0管理API を参照してください。
いずれかの修正を適用した後、サインイン手順を再度お試しください。 アカウントが作成されたことを確認するには、Liferay DXP の コントロール パネル → ユーザーと組織 に移動します。