OAuth 2.0 および OpenID Connect に対するサポート
このページでは、OAuth 2.0 および OpenID Connect に対する InterSystems IRIS® のサポートについて説明します。
サポートされているシナリオ
OAuth 2.0 および OpenID connect に対する InterSystems IRIS のサポートにより、以下のいずれかまたはすべてを行うことができます。
-
クライアントとして InterSystems IRIS Web アプリケーションを使用する
-
リソース・サーバとして InterSystems IRIS Web アプリケーションを使用する
-
承認サーバとして InterSystems IRIS インスタンスを使用する
例えば、サードパーティ・テクノロジを採用した承認サーバのクライアントとして、InterSystems IRIS Web アプリケーションを使用することができます。また、InterSystems IRIS を基盤とする承認サーバとサードパーティのクライアントを使用できます。1 台以上のリソース・サーバを InterSystems IRIS または別のテクノロジで実装することもできます。
いずれの場合でも、承認サーバが最も複雑な要素であり、通常は最初に作成します。クライアントはそのあと作成します。一般にクライアントを作成するときは、サポートするスコープなど、承認サーバの機能と要件に関する知識を必要とします。
OAuth 2.0 および OpenID Connect に対する InterSystems IRIS のサポート
OAuth 2.0 および OpenID Connect に対する InterSystems IRIS のサポートは、以下の要素で構成されます。
-
管理ポータルの構成ページ。
クライアント (またはリソース・サーバ) を構成する場合は、[システム管理]→[セキュリティ]→[OAuth 2.0]→[クライアント構成] のオプションを使用します。
承認サーバを構成する場合は、[システム管理]→[セキュリティ]→[OAuth 2.0]→[サーバ構成] のオプションを使用します。
-
%SYS.OAuth2 パッケージのクラス。これらのクラスはクライアント API です。InterSystems IRIS Web アプリケーションを OAuth 2.0 クライアントとして定義すると、そのクライアントはこれらのクラスのメソッドを使用します。
-
%OAuth2 パッケージのクラス。OAuth 2.0 承認サーバとして InterSystems IRIS インスタンスを使用する場合は、%OAuth2.Server パッケージの 1 つ以上のクラスからサブクラスを作成することでサーバをカスタマイズします。%OAuth2 の他のクラスは、コードが呼び出すユーティリティ・メソッドを提供します。
-
OAuth2 パッケージのクラス (IRISSYS データベース内)。このクラスには、InterSystems IRIS 内部で使用される永続クラスが含まれます。そのほとんどは無視できます。ただし、構成項目をプログラムで作成する場合は、このパッケージに含まれるクラスのサブセットを使用することになります。
以下のサブセクションに構成項目の概要を示します。
クライアントの構成項目
OAuth 2.0 クライアントとして機能している InterSystems IRIS インスタンス内で、サーバ記述 (承認サーバを記述) と クライアント構成 (クライアントを構成) という 2 つの結合された構成項目を指定クライアント・アプリケーションに対して定義する必要があります。特定のインスタンスでは、任意の数のサーバ記述を定義できます。下図が示すように、それぞれのサーバ記述は複数のクライアント構成があります。この図は、これらの構成項目に格納されている情報の一部も示しています。
このアーキテクチャにより、同じ承認サーバを使用する複数のクライアント構成を定義することが可能になり、承認サーバの詳細を繰り返し定義する必要がなくなるため構成を簡素化することができます。
"OAuth 2.0 クライアントとしての InterSystems IRIS Web アプリケーションの使用法" に記載されているように、これらの項目は管理ポータルで作成できます。また、"プログラムによる構成項目の作成方法" に記載されているように、プログラムで構成項目を作成することもできます。
サーバの構成項目
OAuth 2.0 承認サーバとして機能している InterSystems IRIS インスタンス内で、サーバ構成 (承認サーバを構成) と複数のクライアント記述を定義する必要があります。下図は、これらの構成項目に格納されている情報の一部を示しています。
特定の InterSystems IRIS インスタンスは、1 つのサーバ構成と複数のクライアント記述を持つことができます。クライアント・アプリケーションごとに 1 つのクライアント記述が必要になります。クライアント記述は、承認サーバのエンドポイントを使用する各リソース・サーバでもそれぞれ 1 つ必要になります。承認サーバのエンドポイントを使用しないリソース・サーバでは、クライアント記述を作成する必要はありません。
"OAuth 2.0 承認サーバとしての InterSystems IRIS の使用法" に記載されているように、これらの項目は管理ポータルで作成できます。また、"プログラムによる構成項目の作成方法" に記載されているように、プログラムで構成項目を作成することもできます。
InterSystems IRIS でサポートされる標準規格
このセクションでは、OAuth 2.0 および OpenID Connect に対して InterSystems IRIS がサポートしている標準規格を示します。
-
The OAuth 2.0 Authorization Framework (RFC 6749) — https://datatracker.ietf.org/doc/rfc6749Opens in a new tab を参照
-
The OAuth 2.0 Authorization Framework: Bearer Token Usage (RFC 6750) — https://datatracker.ietf.org/doc/rfc6750Opens in a new tab を参照
-
OAuth 2.0 Token Revocation (RFC 7009) — https://datatracker.ietf.org/doc/rfc7009Opens in a new tab を参照
-
JSON Web Token (JWT) (RFC 7519) — https://datatracker.ietf.org/doc/rfc7519Opens in a new tab を参照
-
OAuth 2.0 Token Introspection (RFC 7662) — https://datatracker.ietf.org/doc/rfc7662Opens in a new tab を参照
-
OpenID Connect Core 1.0 — http://openid.net/specs/openid-connect-core-1_0.htmlOpens in a new tab を参照
-
OAuth 2.0 フォーム送信レスポンス・モード — http://openid.net/specs/oauth-v2-form-post-response-mode-1_0.htmlOpens in a new tab を参照
-
JSON Web Key (JWK) (RFC 7517) — https://datatracker.ietf.org/doc/rfc7517Opens in a new tab を参照
-
OpenID Connect Discovery 1.0 — https://openid.net/specs/openid-connect-discovery-1_0.htmlOpens in a new tab を参照
-
OpenID Connect ダイナミック・クライアント登録 — http://openid.net/specs/openid-connect-registration-1_0-19.htmlOpens in a new tab を参照
-
OAuth 2.0 クライアント認証および承認付与用 JSON Web トークン (JWT) プロファイル (RFC 7523) — https://tools.ietf.org/html/rfc7523Opens in a new tab を参照してください。
-
Proof Key for Code Exchange (RFC 7636) — https://tools.ietf.org/html/rfc7636Opens in a new tab を参照してください。