プログラムによる構成項目の作成方法 Contents プログラムによるクライアント構成項目の作成方法 プログラムによるサーバ構成項目の作成方法 管理ポータルを使用して OAuth 2.0 のクライアント、リソース・サーバ、承認サーバを構成する方法については他の記事で説明しています。これらの構成をプログラムで作成することもできます。以下のサブセクションでは、クライアント (リソース・サーバを含む) と承認サーバの作成方法について詳しく説明します。 プログラムによるクライアント構成項目の作成方法 OAuth 2.0 クライアントまたは OAuth 2.0 リソース・サーバの構成項目をプログラムで作成するには、以下の手順を実行します。 サーバ記述を作成します。 関連付けられたクライアント構成を作成します。 サーバ記述の作成 サーバ記述は、OAuth2.ServerDefinitionOpens in a new tab のインスタンスです。サーバ記述を作成するには次の手順に従います。 %SYS ネームスペースに切り替えます。 承認サーバが Discovery をサポートする場合は、%SYS.OAuth2.RegistrationOpens in a new tab の Discover() メソッドを呼び出します。このメソッドは、以下のとおりです。 ClassMethod Discover(issuerEndpoint As %String, sslConfiguration As %String, Output server As OAuth2.ServerDefinition) As %Status 引数は以下のとおりです。 issuerEndpoint は、承認サーバの識別に使用するエンドポイントの URL を指定します。 sslConfiguration は、Discover() メソッドの呼び出しに使用する InterSystems IRIS SSL/TLS 構成のエイリアスを指定します。 出力として返される server は、OAuth2.ServerDefinitionOpens in a new tab のインスタンスです。 次に、返された OAuth2.ServerDefinitionOpens in a new tab インスタンスを保存します。 また、承認サーバが Discovery をサポートしない場合、次の手順を実行します。 %SYS ネームスペースに切り替えます。 OAuth2.ServerDefinitionOpens in a new tab のインスタンスを作成します。 インスタンスのプロパティを設定します。ほとんどの場合、プロパティの名前は管理ポータルに表示されるラベルと一致します (スペースと大文字化を除く)。詳細は、"サーバ記述の手動による作成" を参照してください。これらのプロパティは、以下のとおりです。 IssuerEndpoint SSLConfiguration InitialAccessToken。[登録アクセス・トークン] フィールドに対応します。 Metadata。OAuth2.Server.Metadata のインスタンスで、多くのプロパティが含まれます。OpenID Provider Metadata (https://openid.net/specs/openid-connect-discovery-1_0.htmlOpens in a new tab) を参照してください。 ServerCredentials の詳細は、"証明書と JWT (JSON Web Token)" の "OAuth 2.0 承認サーバの証明書の使用" を参照してください。 インスタンスを保存します。 クライアント構成の生成 クライアント構成は、OAuth2.ClientOpens in a new tab のインスタンスです。クライアント構成を作成するには、次の手順を実行します。 %SYS ネームスペースに切り替えます。 OAuth2.ClientOpens in a new tab のインスタンスを作成します。 インスタンスのプロパティを設定します。ほとんどの場合、プロパティの名前は管理ポータルに表示されるラベルと一致します (スペースと大文字化を除く)。詳細は、"クライアントの構成および動的な登録" を参照してください。これらのプロパティは、以下のとおりです。 ApplicationName ClientId。クライアントを動的に登録する場合、手動で設定する必要はありません。 ClientSecret。クライアントを動的に登録する場合、手動で設定する必要はありません。 DefaultScope Description Enabled JWTInterval Metadata。OAuth2.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 クラスは、UseSSL、Host、Port、Prefix のプロパティを持つシリアル・クラスです。 SSLConfiguration ServerDefinition。以前に作成した OAuth2.ServerDefinitionOpens in a new tab のインスタンスであることが必要です。 ClientCredentials の詳細は、"証明書と JWT (JSON Web Token)" の "OAuth 2.0 クライアントの証明書の使用" を参照してください。 承認サーバがダイナミック・クライアント登録をサポートする場合は、%SYS.OAuth2.RegistrationOpens in a new tab の RegisterClient() メソッドを呼び出します。このメソッドは、以下のとおりです。 ClassMethod RegisterClient(applicationName As %String) As %Status applicationName はクライアント・アプリケーションの名前です。このメソッドはクライアントを登録し、(クライアント ID およびクライアント秘密鍵を含む) クライアント・メタデータを取得した後、OAuth2.ClientOpens in a new tab のインスタンスを更新します。 プログラムによるサーバ構成項目の作成方法 OAuth 2.0 承認サーバの構成項目をプログラムで作成するには、以下の手順を実行します。 承認サーバ構成を作成します。1 つの InterSystems IRIS インスタンス上に複数の承認サーバ構成を定義できないことに注意してください。また、この構成を作成するには、%Admin_Secure リソースの USE 権限を持つユーザとしてログインする必要があります。 関連付けられたクライアント記述を作成します。 承認サーバ構成の作成 認証サーバ構成は、OAuth2.Server.ConfigurationOpens in a new tab のインスタンスです。承認サーバ構成を作成するには、次の手順を実行します。 %SYS ネームスペースに切り替えます。 OAuth2.Server.ConfigurationOpens in a new tab のインスタンスを作成します。 インスタンスのプロパティを設定します。 ほとんどの場合、プロパティの名前は管理ポータルに表示されるラベルと一致します (スペースと大文字化を除く)。詳細は、"承認サーバの構成" を参照してください。これらのプロパティは、以下のとおりです。 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 クラスは、UseSSL、Host、Port、Prefix のプロパティを持つシリアル・クラスです。 JWKSFromCredentials KeyAlgorithm Metadata。OAuth2.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 承認サーバの証明書の使用" を参照してください。 OAuth2.Server.Configuration.Save() メソッドを使用してインスタンスを保存します。%Save() メソッドではなく Save() メソッドを使用する必要があります。このメソッドには、Web アプリケーションの作成などの追加の機能が用意されているからです。 InterSystems IRIS では、このクラスの複数インスタンスの使用はサポートされていません。また、このインスタンスを保存するには、%Admin_Secure リソースの USE 権限を持つユーザとしてログインする必要があります。 クライアント記述の作成 クライアント記述は、OAuth2.Server.ClientOpens in a new tab のインスタンスです。クライアント記述を作成するには、次の手順を実行します。 %SYS ネームスペースに切り替えます。 OAuth2.Server.ClientOpens in a new tab のインスタンスを作成します。 インスタンスのプロパティを設定します。 ほとんどの場合、プロパティの名前は管理ポータルに表示されるラベルと一致します (スペースと大文字化を除く)。詳細は、"クライアント記述の作成" を参照してください。これらのプロパティは、以下のとおりです。 ClientCredentials ClientType DefaultScope Description LaunchURL Metadata。OAuth2.Client.Metadata のインスタンスで、多くのプロパティが含まれます。詳細は、Client Metadata (http://openid.net/specs/openid-connect-registration-1_0-19.htmlOpens in a new tab) を参照してください。 Name RedirectURL。[リダイレクト URL] オプションに対応します。このプロパティは文字列の配列であるため、SetAt()、GetAt() などの通常の配列インタフェースを使用します。 インスタンスを保存します。システムは、ClientId および ClientSecret プロパティの値を生成します。