OpenID Connect

OpenID Connect は、OAuth 2.0 プロトコルに基づいて構築された、単純な ID プロトコルおよびオープン・スタンダードです。これにより、クライアント・アプリケーションは、OpenID Connect プロバイダーによって実行された認証を利用してユーザーの ID を検証できます。

OpenID Connect は認証および許可に OAuth 2.0 を使用し、ユーザーを一意的に識別する ID を作成します。クライアント・アプリケーションは、OpenID Connect プロバイダーから相互運用可能な REST のような方法で、ユーザーに関する基本プロファイル情報を取得することもできます。

WebSphere® Application Server Liberty は OpenID Connect 1.0 をサポートし、Web シングル・サインオンにおいて、クライアント、リライング・パーティー、およびプロバイダーの役割を果たします。以下の OpenID Connect 仕様がサポートされます。

OpenID Connect Core 1.0: OpenID Connect リライング・パーティーとして構成されている Liberty サーバーでは、許可コード・フローを使用した認証がサポートされます。OpenID Connect プロバイダーとして構成されている Liberty サーバーでは、許可コード・フローおよび暗黙的フローを使用した認証がサポートされます。

Web ベースのリライング・パーティーとして Liberty サーバーを使用している場合、「OpenID Connect Basic Client Implementer's Guide 1.0」を参照してください。この資料は、OpenID Connect Core 仕様のサブセットであり、読みやすくなっています。この資料では、許可コード・フローを使用した Web ベースのリライング・パーティーの詳細が説明されています。

アクセス・トークン
保護リソースにアクセスするために使用される資格情報。アクセス・トークンは、クライアントに発行された許可を表すストリングです。
許可エンドポイント
ユーザーの認証および許可を実行するためにクライアントからの許可要求を受け入れる、OpenID プロバイダー上のリソース。許可エンドポイントは、許可コード・フローでクライアントに許可付与 (許可コード) を返します。暗黙的フローでは、許可エンドポイントは、ID トークンおよびアクセス・トークンをクライアントに返します。
許可付与
リソースにアクセスするためのユーザーの許可を表し、アクセス・トークンを取得するためにクライアントによって使用される資格情報。
クレーム
エンティティーに関して表明された情報。クレームの例としては、電話番号、名、姓などがあります。
ID トークン
認証済みユーザーに関するクレームが含まれている JSON Web トークン (JWT)。
イントロスペクション・エンドポイント
アクセス・トークンを保有しているクライアントが、アクセス・トークンを作成するために使用された情報 (ユーザー名、許可されたスコープ、クライアント ID などの情報) を取得できるようにする、OpenIDプロバイダー上のリソース。
OpenID Connect プロバイダー (OP)
クライアントまたはリライング・パーティー (RP) にクレームを提供できる OAuth 2.0 許可サーバー。
リフレッシュ・トークン
OP によってクライアントに対して発行され、現在のアクセス・トークンの有効期限が切れたときに新規アクセス・トークンを取得するため、また追加のアクセス・トークンを取得するために使用されます。
リライング・パーティー (RP)
OpenID Connect クライアントとして構成されている Liberty サーバー、または OpenID プロバイダー (OP) にクレームを要求するクライアント・アプリケーションのいずれか。
有効範囲
サード・パーティーのリソースへのアクセスが許可された特権または許可。
トークン・エンドポイント
アクセス・トークン、ID トークン、およびリフレッシュ・トークンと交換に、クライアントから許可付与 (許可コード) を受け入れる、OP 上のリソース。

OpenID Connect クライアントとしての Liberty サーバー

OpenID Connect クライアントとして機能するように WebSphere Application Server Liberty を構成できます。このセットアップにより、Liberty サーバーは、OP として機能している別の Liberty サーバーを利用して、ユーザーの認証および許可を行うことができます。

OpenID Connect クライアントとして機能するように構成されている Liberty サーバーでは、OpenID Connect 1.0 標準の許可コード・フローがサポートされます。

許可コード・フローでは、すべてのトークン交換が、OpenID Connect プロバイダーのトークン・エンドポイントを使用して処理されます。まず、クライアントが許可要求を OP の許可エンドポイントに送信します。OP での認証および許可が成功すると、クライアントが、許可付与 (許可コード) を OP から受信します。次に、この許可コードを要求に入れて OP のトークン・エンドポイントに送信できます。クライアントが、トークン・エンドポイントからの応答で ID トークン、アクセス・トークン、およびリフレッシュ・トークンを受信します。次に、クライアントが ID トークンを検証し、ユーザーのサブジェクト ID を取得します。このプロファイル・フローは、自身と OP との間でクライアント秘密鍵をセキュアに維持できるクライアント向けです。また、このフローにより、クライアントは、リフレッシュ・トークンを取得することもできます。

OpenID Connect クライアントとしての Liberty サーバーの構成については、Liberty での OpenID Connect クライアントの構成を参照してください。

OpenID Connect プロバイダーとしての Liberty サーバー

OpenID Connect プロバイダーとして機能するように WebSphere Application Server Liberty を構成できます。このセットアップにより、Liberty サーバーは、OpenID Connect クライアントで使用できる許可サーバーとして機能できるようになります。

OpenID Connect プロバイダーとして機能するように構成されている Liberty サーバーでは、OpenID Connect 1.0 標準の許可コード・フローおよび暗黙的フローがサポートされます。各フローにより、ID トークン、アクセス・トークン、およびリフレッシュ・トークンをクライアントに返す方法が決定されます。

許可コード・フローは、OpenID Connect プロバイダーのトークン・エンドポイントを使用して、すべてのトークン交換を処理します。OpenID Connect プロバイダーは、OP の許可エンドポイントでクライアントから許可要求を受け入れます。 認証が必要な場合、OpenID Connect プロバイダーは、該当する認証を実行します。また、OpenID Connect プロバイダーは、ブラウザーで特定のスコープにアクセスを付与する許可を求めるプロンプトをユーザー出すなど、ユーザーから必要な同意や許可を取得します。成功した場合、または認証が不要であった場合、OpenID プロバイダーは、許可付与 (許可コード) をクライアントに返送します。次に、OpenID Connect プロバイダーは、クライアントからトークン・エンドポイントに送信された、許可コードが含まれている要求を受け入れます。許可コードが含まれている要求は、OpenID プロバイダーによって検証されます。検証が成功すると、OpenID Connect プロバイダーは、ID トークンおよびアクセス・トークンが含まれている応答をクライアントに返します。

暗黙的フローでは、許可コード・フローとは異なり、すべてのトークンが許可エンドポイントから返されます。OP のトークン・エンドポイントは使用されません。まず、クライアントが、認証要求を準備して、OP の許可エンドポイントに送信します。次に、OpenID Connect プロバイダーが、必要な認証を実行し、またユーザーから必要な同意や許可を取得します。例えば、OpenID Connect プロバイダーが、ブラウザーで特定のスコープにアクセスを付与する許可を求めるプロンプトをユーザーに出します。認証および許可が成功すると、OpenID Connect プロバイダーが、ID トークンおよびアクセス・トークンをクライアントに返送します。次に、クライアントが ID トークンを検証し、ユーザーのサブジェクト ID を取得します。このプロファイル・フローは、ネイティブ・アプリケーションなど、自身と OP との間でクライアント秘密鍵をセキュアに維持できないクライアント向けです。

OpenID Connect プロバイダーとしての Liberty サーバーの構成については、Liberty での OpenID Connect プロバイダーの構成を参照してください。

許可コード・フロー

標準的な OpenID Connect 許可コード・フローを以下に示します。

  1. ユーザーが、RP 上のアプリケーションにアクセスします。
  2. RP が認証要求を準備し、ユーザーを OP にリダイレクトします。
  3. OP が、ユーザーに資格情報を求めるプロンプトを出して、ユーザーを認証します。アプリケーションで必要とされる情報に RP がアクセスすることをユーザーが許可します。OP が、RP 用にワンタイム使用許可コードを生成します。
  4. OP が、許可コードとともにユーザーを再び RP にリダイレクトします。
  5. RP が、OP のトークン・エンドポイントを呼び出し、許可コードとアクセストークン、ID トークン、およびリフレッシュ・トークンとを交換します。
  6. RP が ID トークンを使用して、ユーザーを許可します。
ここには、OpenID Connect 基本クライアント・プロファイル・フローが表示されます

暗黙的フロー

暗黙的フローは、OpenID Connect プロバイダーとして機能している Liberty サーバーでのみサポートされます。標準的な OpenID Connect 暗黙的フローを以下に示します。

  1. ユーザーが、RP 上のアプリケーションにアクセスします。
  2. RP が認証要求を準備し、ユーザーを OP にリダイレクトします。
  3. OP が、ユーザーに資格情報を求めるプロンプトを出して、ユーザーを認証します。アプリケーションで必要とされる情報に RP がアクセスすることをユーザーが許可します。
  4. OP が、ID トークンおよびアクセス・トークンとともにユーザーを再び RP にリダイレクトします。
  5. RP が ID トークンを使用して、ユーザーを許可します。
ここには、OpenID Connect 暗黙的クライアント・プロファイル・フローが表示されます

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=cwlp_openid_connect
ファイル名: cwlp_openid_connect.html