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は、 アイデンティティトークン をこれに追加します。これは、ユーザーが認証され、権限を与えられている場合に、 名前 や 電子メール などのユーザー情報を渡します。
OpenID Connectプロバイダーでクライアントを作成する¶
OpenID Connectを使用するには、まずプロバイダーにクライアントとして登録する必要があります。 これはOAuth 2.0クライアントです。 プロセスはプロバイダーによって異なります。
プロバイダーのWebサイトに移動し、クライアントを作成します。
作成プロセス中に、プロバイダーから送信されたトークンを処理できる 承認済みリダイレクトURL を提供する必要があります。 Liferay DXPのURLは次のとおりです。
https://[server.domain]/c/portal/login/openidconnect
プロバイダーはいくつかの情報を送信します。 検出エンドポイント、承認エンドポイント、発行者URLなど、これらのいくつかはクライアントに関係なく同じです。 リクエストに固有の2つの情報は、
client_id
とclient_secret
です。
プロバイダーから情報を収集します。 プロバイダー接続を作成する必要があります。
OpenID Connectプロバイダー接続の構成¶
Liferay は、プロバイダ接続のための新しいインターフェースに関するフィードバックを求めています。 このため、接続の作成方法には、標準的な方法と新しい方法の2つがあります。
OAuth 2.0に対応した新しいOpenID Connectプロバイダ接続**。¶
このインターフェースは、クライアント接続をきめ細かく制御したい人向けです。 すべての設定は、 OpenID Connect 設定仕様 で定義されている、プロバイダの Well-Known Configuration Endpoint を通して行われます。
グローバルメニュー → コントロールパネル → セキュリティ → OAuth クライアント管理 にアクセスします。
2つのタブがあります。 1つ目は、認可サーバーのクライアントを作成します。 2つ目は、Well Known URIを持たない認可サーバーの場合である。 最初のタブは常に使用します。2番目のタブは、よく知られたURIを持たないサーバーのために「擬似的な」よく知られたURIを作成する場合にのみ使用します。
よく知られたURIがない場合。
2つ目のタブで、 Add(
) をクリックします。
プロバイダーからの認証サーバーのメタデータを入力します。 JSON の
issuer
フィールドに値があることを確認してください。 これにより、「保存」をクリックすると、「ローカル」なよく知られたURIが生成されます。[Save] をクリックします。 OAuth Client Administrationページに戻り、生成されたURIを確認することができます。 このURIをクリップボードにコピーします。次のステップでこのURIを使用します。
よく知られたURIがある場合。
最初のタブで、 Add (
) をクリックします。
認証サーバーの Well Known URI を Well Known URI 欄に貼り付けます。 例えば、Googleの場合は、https://accounts.google.com/.well-known/openid-configuration。 上記のように生成した場合は、ここに貼り付けてください。
たいていの場合、これだけでいいのです。 Well Known URIをお持ちでない場合は、以下のフィールドを使用して接続を設定します。 完了したら、 [Save] をクリックします。
フォームの他のフィールドは、プロバイダと生成された特定の設定用です。
OAuthクライアント情報。 RFC-7591 JSON 形式に従ったクライアント設定情報を追加します。 Well Known URIを使用した場合は、ここに何も追加する必要がない場合があることに注意してください。
OAuthクライアントデフォルトの認証リクエストパラメータ。 認証リクエストパラメータ を自分で指定しないLiferayアプリケーションがある場合、ここでこのOAuthクライアントを使用するためのデフォルトパラメータをJSON形式で指定します。 カスタムパラメータ値は、文字列のJSON配列である必要があります。
OAuthクライアントデフォルトトークンリクエストパラメータ。 トークン要求パラメータ 自身を指定しない Liferay アプリケーションがある場合、ここでこの OAuth クライアントを使用するためのデフォルトパラメータを JSON 形式で指定します。 カスタムパラメータ値は、文字列のJSON配列である必要があります。
標準的なOpenID Connectプロバイダ接続¶
[Control Panel] → [Configuration] → [Instance Settings] → [セキュリティ] → [SSO] に移動して、 [System Scope] の下の [OpenID Connect Provider] を選択します。
次の手順を実行します:
[Add] ボタンをクリックしてプロバイダーを追加します。
プロバイダーから受け取った情報を使用して、フォームに記入します。
項目
Description
プロバイダー名
この名前は、ユーザーがOpenID Connectを使用してログインするときにサインインポートレットに表示されます。
OpenIDクライアントID
プロバイダーから受け取ったOAuth 2.0クライアントIDを提供します。
OpenID Connect クライアントシークレット
プロバイダーから受け取ったOAuth 2.0クライアントシークレットを提供します。
範囲
ユーザー名と電子メールを要求するデフォルトのままにします。 プロバイダーは、他の範囲のユーザー情報を提供する場合があります。
ディスカバリーエンドポイント
他のURLはこのURLから取得でき、プロバイダーによって異なります。
ディスカバリーエンドポイントキャッシュのキャッシュ時間(ミリ秒)
この期間に検出されたエンドポイント(URL)をキャッシュします。
認証エンドポイント
このURLは、ユーザーを承認する(つまり、ユーザーをサインインする)ためのプロバイダーのURLを指します。
発行者URL
ユーザー情報を発行しているプロバイダーに関する情報を指すプロバイダーのURL。
JWKS URI
プロバイダーのトークンを検証できる公開キーを含むプロバイダーのJSON Webキーセットを指すURL。
IDトークンの署名アルゴリズム
サポートされているIDトークンアルゴリズムを手動で設定します。 通常、これはディスカバリーエンドポイントで「検出」されます。 これらは必要な数だけ追加できます。
サブジェクトタイプ
サブジェクト識別子は、プロバイダーがユーザーを確立するために使用する一意の、再割り当てされることのない識別子であり、クライアント(つまり、Liferay DXP)によって消費されます。 public(すべてのクライアントに同じ値を提供する)とprivate(各クライアントに異なる値を提供する)の2つのタイプがあります。
トークン エンドポイント
トークンをリクエストできるプロバイダーのURL。
トークン接続のタイムアウト (ミリ秒)
検証のためにトークンをリクエストしたときに、タイムアウトするまでの待機時間。
0
の値は永久に待機することを意味するため、お勧めしません。ユーザー情報エンドポイント
ユーザー情報を取得できるOAuth 2.0で保護されたURL。
フォームに入力し、 [保存] をクリックすると、OpenID Connect認証を有効にする準備が整います。
エクスポートされた構成は、次のシステム設定の構成ファイルになります。
com.liferay.portal.security.sso.openid.connect.internal.configuration.OpenIdConnectProviderConfiguration-[name].config
ここで、[name]
には、provider1
などの一意の名前を入力します。
OpenID Connect認証の有効化¶
[Control Panel] → [Configuration] → [Instance Settings] → [セキュリティ] → [SSO] に移動して、 [Virtual Instance Scope] の下の [OpenId Connect] を選択します。
[Enabled] チェックボックスをクリックしてから、 [保存] をクリックします。
エクスポートされた構成は、次のシステム設定の構成ファイルになります。
com.liferay.portal.security.sso.openid.connect.configuration.OpenIdConnectConfiguration.config
これで、ユーザーはOpenID Connectでサインインできます。
OpenID Connectでサインインする¶
OpenID Connectでサインインするための新しいリンクがサインインポートレットに表示されます。
サインインポートレットの下部にあるOpenID Connectリンクをクリックします。
プロバイダーを選択して、 [Sign In] をクリックします。
プロバイダーのサインインページが表示されます。 認証情報を入力してログインします。
認証が成功すると、認証された状態でLiferay DXPにリダイレクトされます。