Configuring Single Sign-On
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

OpenID Connectの使用

OpenID Connectは、ユーザーが他のシステムにあるアカウントを使用して認証できるようにする軽量の認証レイヤーです。 これは OAuth 2.0 認証プロトコル上に構築されています。 OpenID Connectを使用することで、ユーザー認証を他のプロバイダーに委任し、既存のアカウントを持つユーザがLiferayのインストールで簡単に認証できるようにします。

インストールに複数のプロバイダーを追加できますが、Liferay DXPをOpenID Connectプロバイダーにすることはできません。

OpenID ConnectのトークンフローはOAuth 2.0の機能の上に構築されているため、OAuth 2.0に似ています。 OAuth 2.0は認証プロトコルにすぎないため、特定のAPIへのアクセスを許可するアクセストークンを送信します。 OpenID Connectは、アイデンティティトークンをこれに追加します。これは、ユーザーが認証され、権限を与えられている場合に、名前電子メールなどのユーザー情報を渡します。

技術基準と仕様

Liferay は、 OpenID Foundationによって管理されている 公開仕様 に従って OpenID Connect を実装しています。 OpenID Connect は OAuth 2.0 の上に認証レイヤーを追加するため、Liferay は外部 ID プロバイダーを使用するときに Relying Party (RP) として機能できます。

Liferay は、ベンダー固有の機能ではなく、標準化された動作を優先します。 このアプローチにより、同じ仕様に従うプロバイダー間の相互運用性が保証されます。 ベンダー拡張機能は引き続き機能しますが、オプションとして扱われ、Liferay のコア実装の一部ではありません。

以下の表では、キーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、「OPTIONAL」は、 RFC 2119で説明されているとおりに解釈されます。

  • でマークされた部分は、Liferay が仕様の必須要件に準拠していることを示す必要があります
  • でマークされた部分は、 すべきであり、 てもよい (および関連する用語) であり、Liferay の裁量により、 すでに実装されているか、リクエストに応じて実装されている可能性があります。
仕様説明Liferay DXPに実装リンク
OpenID コネクト コア 1.0認証、ID トークン、クレーム、および依存パーティの標準フローを定義します。すべての RP 要件が実装され、サポートされている必要があります。スペック

OAuth 2.0 関連のその他の仕様 (OAuth 2.0 認可フレームワーク、PKCE、JWT ベアラー グラント、アクセス トークンの JWT プロファイルなど) については、 OAuth 2.0 - 技術標準と仕様を参照してください。

OpenID Connectプロバイダーでクライアントを作成する

OpenID Connectを使用するには、まずプロバイダーにクライアントとして登録する必要があります。 これはOAuth 2.0クライアントです。 プロセスはプロバイダーによって異なります。

  1. プロバイダーのWebサイトに移動し、クライアントを作成します。

  2. 作成プロセス中に、プロバイダーから送信されたトークンを処理できる承認済みリダイレクトURLを提供する必要があります。 Liferay DXPのURLは次のとおりです。

    https://[server.domain]/c/portal/login/openidconnect

  3. プロバイダーはいくつかの情報を送信します。 検出エンドポイント、承認エンドポイント、発行者URLなど、これらのいくつかはクライアントに関係なく同じです。 リクエストに固有の2つの情報は、client_idclient_secretです。

プロバイダーから情報を収集します。 プロバイダー接続を作成するにはこれが必要です。

OpenID Connectプロバイダー接続の構成

Liferayでは、プロバイダー接続のための新しいインターフェースに関するフィードバックを求めています。 このため、接続の作成方法には、標準的な方法と新しい方法の2つがあります。

重要

新しいプロバイダーが開発された際にスムーズに移行できるよう、Liferayは2つのインターフェース間でOpenID Connectの設定を変換し、同期させます。

OAuth 2.0に対応した新しいOpenID Connectプロバイダー接続**

このインターフェースは、クライアント接続をきめ細かく制御したいユーザー向けです。 すべての構成は、 OpenID Connect 構成仕様で定義されているプロバイダーの既知の構成エンドポイントを通じて行われます。

  1. グローバル メニュー (Global Menu) → コントロール パネルセキュリティOAuth クライアント管理を開きます。

  2. 2つのタブがあります。 1つ目は、認証サーバーのクライアントを作成します。 2つ目は、Well Known URIを持たない認証サーバー用です。 常に最初のタブを使用します。2 番目のタブは、既知の URI が存在しないサーバーの「疑似」既知の URI を作成する場合にのみ使用します。

well-known URIがない場合、

  1. 2 番目のタブに移動して、 新規をクリックします。

  2. プロバイダーからの認証サーバーのメタデータを入力します。 JSONのissuerフィールドに値があることを確認してください。 これにより、[保存]をクリックすると、「ローカル」なwell-known URIが生成されます。

  3. [保存]をクリックします。 OAuth クライアント管理ページに戻り、生成されたURIを確認することができます。 この URI をクリップボードにコピーし、次の手順でこの URI を使用します。

well-known URIがある場合、

  1. 最初のタブで、 新規をクリックします。

  2. 認証サーバーのWell Known URIをWell Known URIフィールドに貼り付けます。 たとえば、Google の場合は https://accounts.google.com/.well-known/openid-configurationです。 上記のように生成した場合は、ここに貼り付けます。

  3. ほとんどの場合、これを行うだけで十分です。 Well Known URIをお持ちでない場合は、以下のフィールドを使用して接続を設定します。 完了したら、 「保存」をクリックします。

フォームの他のフィールドは、プロバイダーと生成された特定の設定用です。

メタデータ キャッシュ時間: 既知の URI からの情報がキャッシュされる間隔 (秒単位) を指定します。 0 と入力すると、デフォルトの値は 600 秒になります (Ehcache によって使用されます)。

OAuth クライアント情報: RFC-7591 JSON 形式に従ってクライアント構成情報を追加します。 Well Known URI を使用した場合は、空白のままにすることができます。

OAuth クライアントのデフォルトの認可リクエストパラメータ: Liferay アプリケーション自体が 認可リクエストパラメータ を指定していない場合は、この OAuth クライアントを使用するためのデフォルトのパラメータを JSON 形式でここで指定します。 カスタムパラメーター値は、文字列のJSON配列である必要があります。

OAuth クライアントのデフォルトのトークン要求パラメータ: Liferay アプリケーション自体が トークン要求パラメータ を指定していない場合は、この OAuth クライアントを使用するためのデフォルトのパラメータを JSON 形式でここで指定します。 カスタムパラメーター値は、文字列のJSON配列である必要があります。

OpenId Connect ユーザー情報マッパー JSON: 下記 を参照

OpenId Connect ユーザー情報マッパーの JSON

Liferay DXP 7.4 U47+/GA47+

このセクションを使用して、Liferay ユーザーと OIDC プロバイダーのユーザーの間でフィールドをマッピングできます。 emailAddressfirstNamelastName、および screenName の値は必須です。 スクリーン名のマッピングがない場合、またはクレームが空の場合、Liferay はそのユーザーのスクリーン名を生成します。

マッピングは 5 つのセクションで構成されます。

  • 住所
  • 電話番号
  • 連絡先
  • ユーザーロール
  • ユーザー

Liferay ユーザーと OIDC プロバイダー ユーザーの間でフィールドをマッピングできます。

マッピングの左側では Liferay のユーザー属性名を指定し、マッピングの右側では OIDC プロバイダーのユーザー属性名を指定します。 たとえば、 firstName は、 userの下の given_name にマッピングされます。 これは、OIDC プロバイダーが、ユーザーの名を含む given_name という属性を送信することを意味します。 これは、Liferay ユーザー属性 firstNameにマッピングされます。

→ はネストされた属性に使用されます。 たとえば、Liferay ユーザーの住所属性 郵便番号 は、 住所 ->郵便番号にマッピングされます。 これは、OIDC プロバイダーが "address": { "postal_code": "[SOME_POSTAL_CODE]" }という属性を送信し、それが Liferay ユーザーの住所属性 zipにマッピングされることを意味します。

OIDC プロバイダーは、JSON に記載されているすべての情報を送信しない可能性があります。 マッピングが正しく行われるように、プロバイダーで正しい属性名を確認してください。 場合によっては、特定の属性を取得するためにカスタム マッピングを作成する必要もあります。

自動役割割り当て

ユーザーが OIDC プロバイダーのロールを持っている場合、次の条件が満たされていれば、そのロールは Liferay ユーザーにマッピングされます。

  • ロールは Liferay に存在します。
  • レギュラー役です。

OIDC プロバイダーが Liferay に存在しないロール情報を送信した場合、またはそれが通常のロールではない場合は、マッピングは行われません。

標準OpenID Connectプロバイダー接続

  1. グローバル メニュー (Global Menu) を開き、 コントロール パネルインスタンス設定セキュリティSSOに移動します。

  2. 仮想インスタンススコープの下で、 OpenID Connect プロバイダー を選択します。

    [System Settings]メニューでOpenID構成を検索する。

  3. 追加をクリックしてプロバイダーを追加します。

  4. プロバイダーから受け取った情報を使用して、フォームに記入します。

    項目説明
    プロバイダー名この名前は、ユーザーが OpenID Connect を使用してログインするときにサインイン ポートレットに表示されます。
    範囲ユーザー名と電子メールを要求するデフォルトのままにします。 プロバイダーは、他の範囲のユーザー情報を提供する場合があります。
    ディスカバリーエンドポイント他のURLはこのURLから取得でき、プロバイダーによって異なります。
    ディスカバリーエンドポイントキャッシュのキャッシュ時間(ミリ秒)この期間に検出されたエンドポイント(URL)をキャッシュします。
    認証エンドポイントこのURLは、ユーザーを承認する(つまり、ユーザーをサインインする)ためのプロバイダーのURLを指します。
    発行者URLユーザー情報を発行しているプロバイダーに関する情報を指すプロバイダーのURL。
    JWKS URIプロバイダーのトークンを検証できる公開キーを含むプロバイダーのJSON Webキーセットを指すURL。
    IDトークンの署名アルゴリズムサポートされているIDトークンアルゴリズムを手動で設定します。 通常、これはディスカバリーエンドポイントで「検出」されます。 これらは必要な数だけ追加できます。
    サブジェクトタイプサブジェクト識別子は、プロバイダーがユーザーを確立するために使用する一意の、再割り当てされることのない識別子であり、クライアント(つまり、Liferay DXP)によって消費されます。 パブリック(すべてのクライアントに同じ値を提供)とペアワイズ(各クライアントに異なる値を提供)の 2 つのタイプがあります。
    トークン エンドポイントトークンをリクエストできるプロバイダーのURL。
    トークン接続のタイムアウト (ミリ秒)検証のためにトークンをリクエストしたときに、タイムアウトするまでの待機時間。 0の値は永久に待機することを意味するため、お勧めしません。
    ユーザー情報エンドポイントユーザー情報を取得できるOAuth 2.0で保護されたURL。
    OpenID Connect クライアントIDプロバイダーから受け取ったOAuth 2.0クライアントIDを提供します。
    OpenID Connect クライアントシークレットプロバイダーから受け取ったOAuth 2.0クライアントシークレットを提供します。
    カスタムクレームプロバイダーによって返される追加のクレームを指定します。 これらのクレームは、既存の Liferay ユーザーカスタム フィールドにマッピングされます。 詳細については、「 OpenID Connect 属性をカスタム フィールドにマッピングする 」を参照してください。
    (Liferay DXP 2025.Q4+) マッチャーフィールドシステムで保存された OIDC サブ 値が見つからない場合に、Liferay がユーザー (電子メールまたはスクリーン名) を識別する方法を定義します。 これは、ユーザーの最初の OIDC ログイン時、またはプロバイダーがまだ サブを提供していない場合にのみ適用されます。 フォールバック フィールドを使用した最初のログインが成功すると、Liferay はユーザーの サブ 値を保存し、今後のすべてのログインに使用します。

    現在、Matcher フィールドはリリース機能フラグ (Secure OpenID Connect User Matching - LPD-20879) の背後にあります。 詳細については、 リリース機能フラグ をお読みください。

    重要

    Liferay は、OpenID Connect の暗号化 ID トークン (JWE) をサポートしていません。これは、 OpenID 仕様に従ってオプションであるためです。 ただし、必須の署名付き ID トークン (JWS) はサポートされています。

  5. [保存]をクリックします。 これで、OpenID Connect 認証を有効にする準備が整いました。

この構成は、接続の アクション (Actions) ボタンをクリックし、 エクスポートをクリックすることでエクスポートできます。 エクスポートされた構成により、一意の [name] フィールドを持つシステム設定構成ファイルが生成されます。

com.liferay.portal.security.sso.openid.connect.internal.configuration.OpenIdConnectProviderConfiguration-[name].config

OpenID Connect 属性のカスタムフィールドへのマッピング

Liferay DXP 2025年第4四半期以降

重要

現在、この機能はリリース機能フラグ (OpenID Connect 属性のカスタム フィールドへのマッピング - LPD-57332) の背後にあります。 詳細については、 リリース機能フラグ をお読みください。

OpenID クレームを Liferay のユーザーカスタム フィールドにマップできます。

  1. ユーザーカスタムフィールドを作成します。 構成(1)の グローバルメニューコントロールパネルカスタムフィールド に移動します。

    あるいは、 ユーザーを作成または編集 しながらカスタムフィールドを追加します (2)。

    適切なマッピングと保存を確実に行うために、カスタム フィールドのデータ型が OpenID クレームの型 (文字列、数値、ブール値など) と一致していることを確認してください。

    カスタム クレームにマップするカスタム フィールドを作成します。

  2. OpenID Connect プロバイダー接続を作成または編集します

  3. プロバイダー接続ページの下部で、ユーザー カスタム フィールドを選択し、対応する OpenID クレームに関連付けます。

    ユーザーのカスタム フィールドを対応する OpenID クレームにマップします。

  4. カスタム フィールド マッピングを追加または削除するには、(Plus icon) または (Minus icon) を使用します。

  5. 変更を適用するには、 「保存」 をクリックします。

OpenID Connect認証の有効化

  1. グローバル メニュー (Global Menu) を開き、 コントロール パネルインスタンス設定セキュリティSSOに移動します。

  2. 仮想インスタンススコープで OpenID Connect を選択します。

    インスタンス設定でOpenID Connect認証を有効にする。

  3. 有効 チェックボックスをクリックし、 保存をクリックします。

ユーザーは OpenID Connect を使用してサインインできるようになりました。

OpenID Connectでサインインする

OpenID Connect でサインインするための新しいリンクがサインイン ポートレットに表示されます。

  1. サインイン ポートレットから、下部にある OpenID Connect をクリックします。

  2. プロバイダーを選択して、[Sign In]をクリックします。

  3. プロバイダーのサインインページが表示されます。 認証情報を入力してログインします。

  4. 認証が成功すると、認証された状態でLiferay DXPにリダイレクトされます。

今後は、ユーザーが認証すると、ユーザー グループとグループ メンバーシップが同期されます。 Liferay は、グループとグループ メンバーシップの元のソースを保存するため、グループのソースが複数ある場合 (OpenIDConnect と LDAP など) でも競合が発生しません。

LiferayはOpenID Connectを使用する場合、クライアントとしてPKCE(Proof Key for Code Exchange)をサポートしています。 詳細については、 PKCE 仕様を参照してください。 値を確認し、適切にリクエストを承認または拒否することは、プロバイダーの責任です。

バージョン別の機能の可用性

機能Liferay DXPバージョンポータルバージョンメモ
OpenID Connect ユーザー用のマッチャー フィールド2025年第4四半期以降当初はベータ機能としてリリースされました (LPD-20879)。 Liferay DXP 2026.Q1 でのリリースに移行しました。
OpenIDクレームをカスタムユーザーフィールドにマッピングする2025年第4四半期以降最初はリリース機能フラグ (LPD-57332) としてリリースされました。