Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

プログラムによる構成項目の作成方法

このドキュメントの前の各章では、管理ポータルで OAuth 2.0 クライアント、リソース・サーバ、承認サーバを構成する方法について説明しています。インターシステムズは、これらの構成項目のプログラムによる作成もサポートしています。以下のサブセクションでは、クライアント (リソース・サーバを含む) と承認サーバの作成方法について詳しく説明します。

プログラムによるクライアント構成項目の作成方法

OAuth 2.0 クライアントまたは OAuth 2.0 リソース・サーバの構成項目をプログラムで作成するには、以下の手順を実行します。

  1. サーバ記述を作成します。

  2. 関連付けられたクライアント構成を作成します。

サーバ記述の作成

サーバ記述は、OAuth2.ServerDefinitionOpens in a new tab のインスタンスです。サーバ定義を作成するには、次の手順を実行します。

  1. %SYS ネームスペースに切り替えます。

  2. 承認サーバが Discovery をサポートする場合は、%SYS.OAuth2.RegistrationOpens in a new tabDiscover() メソッドを呼び出します。このメソッドは、以下のとおりです。

    ClassMethod Discover(issuerEndpoint As %String, 
                         sslConfiguration As %String, 
                         Output server As OAuth2.ServerDefinition) As %Status
    

    引数は以下のとおりです。

    • issuerEndpoint は、承認サーバの識別に使用するエンドポイントの URL を指定します。

    • sslConfiguration は、Discover() メソッドの呼び出しに使用する Caché SSL/TLS 構成のエイリアスを指定します。

    • 出力として返される server は、OAuth2.ServerDefinitionOpens in a new tab のインスタンスです。

  3. 次に、返された OAuth2.ServerDefinitionOpens in a new tab インスタンスを保存します。

また、承認サーバが Discovery をサポートしない場合、次の手順を実行します。

  1. %SYS ネームスペースに切り替えます。

  2. OAuth2.ServerDefinitionOpens in a new tab のインスタンスを作成します。

  3. インスタンスのプロパティを設定します。ほとんどの場合、プロパティの名前は管理ポータルに表示されるラベルと一致します (スペースと大文字化を除く)。詳細については、“サーバ記述の手動による作成” を参照してください。これらのプロパティは、以下のとおりです。

    ServerCredentials の詳細については、付録 “証明書と JWT (JSON Web Token)” の “OAuth 2.0 承認サーバの証明書の使用” を参照してください。

  4. インスタンスを保存します。

クライアント構成の生成

クライアント構成は、OAuth2.ClientOpens in a new tab のインスタンスです。クライアント構成を作成するには、次の手順を実行します。

  1. %SYS ネームスペースに切り替えます。

  2. OAuth2.ClientOpens in a new tab のインスタンスを作成します。

  3. インスタンスのプロパティを設定します。ほとんどの場合、プロパティの名前は管理ポータルに表示されるラベルと一致します (スペースと大文字化を除く)。詳細については、“クライアントの構成および動的な登録” を参照してください。これらのプロパティは、以下のとおりです。

    • ApplicationName

    • ClientId。クライアントを動的に登録する場合、手動で設定する必要はありません。

    • ClientSecret。クライアントを動的に登録する場合、手動で設定する必要はありません。

    • DefaultScope

    • Description

    • Enabled

    • JWTInterval

    • MetadataOAuth2.Client.Metadata のインスタンスで、多くのプロパティが含まれます。詳細については、“Client Metadata” (http://openid.net/specs/openid-connect-registration-1_0-19.htmlOpens in a new tab) を参照してください。

    • RedirectionEndpoint[応答を受信するために承認サーバに対して指定されるクライアント URL] オプションに対応します。このプロパティのタイプは %OAuth2.Endpoint です。OAuth2.EndpointOpens in a new tab クラスは、UseSSLHostPortPrefix のプロパティを持つシリアル・クラスです。

    • SSLConfiguration

    • ServerDefinition以前に作成した OAuth2.ServerDefinitionOpens in a new tab のインスタンスであることが必要です。

    ClientCredentials の詳細については、付録 “証明書と JWT (JSON Web Token)” の “OAuth 2.0 クライアントの証明書の使用” を参照してください。

  4. 承認サーバがダイナミック・クライアント登録をサポートする場合は、%SYS.OAuth2.RegistrationOpens in a new tabRegisterClient() メソッドを呼び出します。このメソッドは、以下のとおりです。

    ClassMethod RegisterClient(applicationName As %String) As %Status
    

    applicationName はクライアント・アプリケーションの名前です。

    このメソッドはクライアントを登録し、(クライアント ID およびクライアント秘密鍵を含む) クライアント・メタデータを取得した後、OAuth2.ClientOpens in a new tab のインスタンスを更新します。

プログラムによるサーバ構成項目の作成方法

OAuth 2.0 承認サーバの構成項目をプログラムで作成するには、以下の手順を実行します。

  1. 承認サーバ構成を作成します。

    1 つの Caché インスタンス上に複数の承認サーバ構成を定義できないことに注意してください。また、この構成を作成するには、%Admin_Secure リソースの USE 権限を持つユーザとしてログインする必要があります。

  2. 関連付けられたクライアント記述を作成します。

承認サーバ構成の作成

認証サーバ構成は、OAuth2.Server.ConfigurationOpens in a new tab のインスタンスです。承認サーバ構成を作成するには、次の手順を実行します。

  1. %SYS ネームスペースに切り替えます。

  2. OAuth2.Server.ConfigurationOpens in a new tab のインスタンスを作成します。

  3. インスタンスのプロパティを設定します。 ほとんどの場合、プロパティの名前は管理ポータルに表示されるラベルと一致します (スペースと大文字化を除く)。詳細については、“承認サーバの構成” を参照してください。これらのプロパティは、以下のとおりです。

    • AccessTokenInterval

    • AllowUnsupportedScope

    • AudRequired[対象者は必須] オプションに対応します

    • AuthenticateClass

    • AuthorizationCodeInterval

    • ClientSecretInterval

    • CustomizationNamespace

    • CustomizationRoles

    • DefaultScope

    • Description

    • EncryptionAlgorithm

    • GenerateTokenClass

    • IssuerEndpoint[発行者エンドポイント] オプションに対応します。OAuth2.EndpointOpens in a new tab タイプです。OAuth2.EndpointOpens in a new tab クラスは、UseSSLHostPortPrefix のプロパティを持つシリアル・クラスです。

    • JWKSFromCredentials

    • KeyAlgorithm

    • MetadataOAuth2.Server.Metadata のインスタンスで、多くのプロパティが含まれます。“OpenID Provider Metadata” (https://openid.net/specs/openid-connect-discovery-1_0.htmlOpens in a new tab) を参照してください。

    • RefreshTokenInterval

    • ReturnRefreshToken

    • SSLConfiguration

    • SessionClass

    • SessionInterval[セッション終了間隔] オプションに対応します

    • SigningAlgorithm

    • SupportSession[ユーザ・セッションのサポート] オプションに対応します

    • SupportedScopes[スコープ][説明] の列を持つテーブルに対応します。このプロパティは文字列の配列であるため、SetAt()GetAt() などの通常の配列インタフェースを使用します。

    • ValidateUserClass

    署名、キー管理、暗号化のアルゴリズムに使用できる値については、%OAuth2.JWTOpens in a new tab のクラスリファレンスを参照してください。

    ServerCredentials および ServerPassword の詳細については、付録 “証明書と JWT (JSON Web Token)” の “OAuth 2.0 承認サーバの証明書の使用” を参照してください。

  4. インスタンスを保存します。

Caché では、このクラスの複数インスタンスの使用はサポートされていません。

また、このインスタンスを保存するには、%Admin_Secure リソースの USE 権限を持つユーザとしてログインする必要があります。

クライアント記述の作成

クライアント記述は、OAuth2.Server.ClientOpens in a new tab のインスタンスです。クライアント記述を作成するには、次の手順を実行します。

  1. %SYS ネームスペースに切り替えます。

  2. OAuth2.Server.ClientOpens in a new tab のインスタンスを作成します。

  3. インスタンスのプロパティを設定します。 ほとんどの場合、プロパティの名前は管理ポータルに表示されるラベルと一致します (スペースと大文字化を除く)。詳細については、“クライアント記述の作成” を参照してください。これらのプロパティは、以下のとおりです。

    • ClientCredentials

    • ClientType

    • DefaultScope

    • Description

    • LaunchURL

    • MetadataOAuth2.Client.Metadata のインスタンスで、多くのプロパティが含まれます。詳細については、“Client Metadata” (http://openid.net/specs/openid-connect-registration-1_0-19.htmlOpens in a new tab) を参照してください。

    • Name

    • RedirectURL[リダイレクト URL] オプションに対応します。このプロパティは文字列の配列であるため、SetAt()GetAt() などの通常の配列インタフェースを使用します。

  4. インスタンスを保存します。

    システムは、ClientId および ClientSecret プロパティの値を生成します。

FeedbackOpens in a new tab