OpenID Connectは、OAuth 2.0認可プロトコルの上に構築された軽量の認証レイヤーです。ユーザーが他のシステムにあるアカウントを使用して認証できるようにすることで、ローカルアカウントの保持を補完します。新しいアカウントにサインアップするのを避けたユーザーは、すでに持っているアカウントを使って、Webサイトにログインできます。OpenID Connectを使用することで、他のプロバイダーにユーザー認証を委任し、既存のアカウントを持つユーザーが自分のシステムに対して簡単に認証できるようになります。
OpenID ConnectはOAuth 2.0上に構築されているため、トークンフローが似ています。OAuth 2.0は認可プロトコルにすぎないため、特定のAPIへのアクセスを許可するアクセストークンを送信します。OpenID Connectは、ユーザーが認証され許可を与えられている場合に、名前やEメールなどのユーザー情報を渡すIDトークンをこれに追加します。
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プロバイダー接続の設定
[コントロールパネル] → [設定] → [システム設定] → [セキュリティ] → [SSO]へ行き、[システムスコープ]の内にある*[OpenID Connectプロバイダー]***を選択して、以下の手順に従います。
-
*[追加]*ボタンをクリックして、プロバイダーを追加します。
-
プロバイダーから受け取った情報を使って、フォームに入力します。
**プロバイダー名:**ユーザーがOpenID Connectを使用してログインすると、この名前がサインインポートレットに表示されます。
**OpenIDクライアントID:**プロバイダーから受け取ったOAuth 2.0クライアントIDを入力してください。
**OpenID Connectクライアントシークレット:**プロバイダーから受け取ったOAuth 2.0クライアントシークレットを入力してください。
**スコープ:**デフォルトのままにして、ユーザー名とEmailを要求します。ご利用のプロバイダーが他のスコープのユーザー情報を提供する可能性があります。
**ディスカバリエンドポイント:**このURLから他のURLが取得される可能性がありますが、プロバイダーによって異なります。
**認可エンドポイント:**このURLは、ユーザーを認可する(つまり、ユーザーをサインインする)ためのプロバイダーのURLを指します。
**発行者URL:**ユーザー情報を発行しているプロバイダーに関する情報を指すプロバイダーのURL。
**JWKS URI:**プロバイダーのトークンを検証できる公開鍵を含む、プロバイダーのJSON Webキーセットを指すURL。
**サブジェクトタイプ:**サブジェクト識別子は、ユーザーが誰であるかを証明するためにプロバイダーが使用し、クライアントによって使用される、一意の決して再割り当てされていない識別子です(例:Liferay DXP)。パブリック(すべてのクライアントに同じ値を提供する)とプライベート(各クライアントに異なる値を提供する)の2種類があります。
**トークンエンドポイント:**トークンを要求できるプロバイダーのURL。
**ユーザー情報エンドポイント:**ユーザー情報を取得できるOAuth 2.0保護URL。
フォームに入力して、*[保存]*をクリックすると、OpenID Connect認証を有効にする準備ができます。
OpenID Connect認証を有効にする
-
[コントロールパネル] → [設定] → [システム設定] → [セキュリティ] → [SSO]へ行き、[仮想インスタンススコープ]にある*[OpenID Connect]***を選択します。
-
*[有効]のチェックボックスをクリックし、[保存]*をクリックします。
注:[コントロールパネル] → [設定] → [インスタンス設定] → *[OpenID Connect]*タブで、指定した仮想インスタンスのOpenID Connect認証を有効にすることもできます。
これでユーザーがOpenID Connectでログインできるようになります。
OpenID Connectでログインする
サインインポートレットに、OpenID Connectでログインするための新しいリンクがあります。
-
サインインポートレットから、下部にあるOpenID Connectリンクをクリックします。
-
プロバイダーを選択して、*[ログイン]*をクリックします。
-
これにより、プロバイダーのログインページに移動します。資格情報を入力して、ログインします。
-
認証が成功すると、認証済みの状態でLiferay DXPにリダイレクトされます。
OpenIDは、他のシステムからユーザーを認証するための標準ベースの安全な方法です。