5.3. Service Registry の認証および承認の設定オプション
Service Registry は、Red Hat Single Sign-On および HTTP Basic 認証を使用した OpenID Connect の認証オプションを提供します。
Service Registry には、ロールベースおよびコンテンツベースのアプローチの承認オプションが用意されています。
- デフォルトの管理者、書き込み、および読み取り専用のユーザーロールに対するロールベースの承認。
- アーティファクトまたはアーティファクトグループの所有者のみがアーティファクトを更新または削除できるスキーマまたは API アーティファクトのコンテンツベースの認可。
Service Registry のすべての認証および承認オプションはデフォルトで無効になっています。これらのオプションのいずれかを有効にする前に、まず AUTH_ENABLED オプションを true に設定する必要があります。
この章では、次の設定オプションの詳細を説明します。
Red Hat Single Sign-On で OpenID Connect を使用した Service Registry 認証
以下の環境変数を設定して、Red Hat Single Sign-On を使用した Service Registry Web コンソールおよび API の認証を設定できます。
| 環境変数 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
|
Service Registry の認証を有効にします。 | String |
|
|
|
Red Hat Single Sign-On 認証サーバーの URL。たとえば、 | String | - |
|
|
認証用の Red Hat Single Sign-On レルム。たとえば、 | String | - |
|
| Service Registry REST API のクライアント ID。 | String |
|
|
| Service Registry Web コンソールのクライアント ID。 | String |
|
HTTP Basic を使用した Service Registry 認証
デフォルトでは、Service Registry は OpenID Connect を使用した認証をサポートしています。ユーザーまたは API クライアントは、Service Registry REST API への認証された呼び出しを行うためにアクセストークンを取得する必要があります。ただし、一部のツールは OpenID Connect をサポートしないため、次の設定オプションを true に設定することで、HTTP Basic 認証をサポートするように Service Registry を設定することもできます。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
Service Registry HTTP Basic クライアント認証情報キャッシュの有効期限
HTTP Basic クライアント認証情報キャッシュの有効期限を設定することもできます。デフォルトでは、HTTP Basic 認証を使用する場合、Service Registry は JWT トークンをキャッシュし、不要なときに新しいトークンを発行しません。JWT トークンのキャッシュ有効期限を設定できます。このトークンは、デフォルトで 10 分に設定されます。
Red Hat Single Sign-On を使用する場合は、この設定を Red Hat Single Sign-On JWT の有効期限から 1 分引いた値に設定することが推奨されます。たとえば、Red Hat Single Sign-On で有効期限を 5 分に設定する場合は、以下の設定オプションを 4 分に設定する必要があります。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| 整数 |
|
Service Registry のロールベースの承認
次のオプションを true に設定して、Service Registry でロールベースの承認を有効にすることができます。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
次に、ユーザーの認証トークンに含まれるロール (Red Hat Single Sign-On を使用した認証時に付与されるロールなど) を使用するか、Service Registry によって内部的に管理されるロールマッピングを使用するように、ロールベースの承認を設定できます。
Red Hat Single Sign-On で割り当てられたロールを使用する
Red Hat Single Sign-On によって割り当てられたロールを使用できるようにするには、以下の環境変数を設定します。
| 環境変数 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
|
| String |
|
|
| ユーザーが管理者であることを示すロールの名前。 | String |
|
|
| ユーザーが開発者であることを示すロールの名前。 | String |
|
|
| ユーザーが読み取り専用アクセス権を持っていることを示すロールの名前。 | String |
|
Service Registry が Red Hat Single Sign-On のロールを使用するように設定されている場合は、Service Registry ユーザーを Red Hat Single Sign-On の以下のユーザーロールの少なくとも 1 つに割り当てる必要があります。ただし、表5.10「Red Hat Single Sign-On を使用した Service Registry ロールベース認証の設定」 の環境変数を使用して別のユーザーロール名を設定できます。
| ロール名 | アーティファクトの読み取り | アーティファクトの書き込み | グローバルルール | 説明 |
|---|---|---|---|---|
|
| はい | はい | はい | すべての作成、読み取り、更新、および削除操作へのフルアクセス。 |
|
| はい | はい | いいえ | グローバルルールの設定およびインポート/エクスポートを除く、操作の作成、読み取り、更新、および削除へのアクセス。このロールは、アーティファクト固有のルールのみを設定できます。 |
|
| はい | いいえ | いいえ | 読み取りおよび検索操作のみへのアクセス。このロールはルールを設定できません。 |
Service Registry でロールを直接管理する
Service Registry によって内部的に管理されるロールの使用を有効にするには、次の環境変数を設定します。
| 環境変数 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
|
| String |
|
内部てkに管理されたロールマッピングを使用する場合は、Service Registry REST API の /admin/roleMappings エンドポイントを使用して、ユーザーにロールを割り当てることができます。詳細は、Apicurio Registry REST API のドキュメント を参照してください。
ユーザーに付与できるロールは、ADMIN、DEVELOPER、または READ_ONLY のいずれかだけです。管理者権限を持つユーザーのみが、他のユーザーにアクセス権を付与できます。
Service Registry の管理者オーバーライド設定
Service Registry にはデフォルトの管理者ユーザーがいないため、通常、ユーザーが管理者として識別されるように別の方法を設定すると便利です。次の環境変数を使用して、この管理オーバーライド機能を設定できます。
| 環境変数 | 説明 | 型 | デフォルト |
|---|---|---|---|
|
| 管理オーバーライド機能を有効にします。 | String |
|
|
|
管理オーバーライド情報を探す場所。現在 | String |
|
|
|
ユーザーが管理者かどうかを判断するために使用される情報の種類。値は FROM 変数の値によって異なります。たとえば、FROM が | String |
|
|
| ユーザーが管理者であることを示すロールの名前。 | String |
|
|
| 管理オーバーライドを決定するために使用する JWT トークンクレームの名前。 | String |
|
|
| CLAIM 変数によって示される JWT トークンクレームの値は、ユーザーが管理オーバーライドを付与されるためのものでなければなりません。 | String |
|
たとえば、この管理オーバーライド機能を使用して、sr-admin ロールを Red Hat Single Sign-On の 1 人のユーザーに割り当て、そのユーザーに admin ロールを付与できます。そのユーザーは、/admin/roleMappings REST API (または関連する UI) を使用して、追加のユーザー (追加の管理者を含む) にロールを付与できます。
Service Registry の所有者のみの承認
以下のオプションを true に設定して、Service Registry 内のアーティファクトまたはアーティファクトグループの更新に対して所有者のみの許可を有効にすることができます。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
所有者のみの許可が有効になっている場合は、アーティファクトを作成したユーザーのみがそのアーティファクトを変更または削除できます。
所有者のみの許可とグループの所有者のみの許可の両方が有効になっている場合は、アーティファクトグループを作成したユーザーのみが、そのアーティファクトグループへの書き込みアクセス権 (そのグループのアーティファクトを追加または削除するなど) を持ちます。
Service Registry の認証済み読み取りアクセス
認証済み読み取りアクセスオプションが有効になっている場合、Service Registry は、ユーザーロールに関係なく、同じ組織内の認証済みユーザーからのリクエストに対して、少なくとも読み取り専用アクセスを許可します。
認証された読み取りアクセスを有効にするには、まずロールベースの承認を有効にしてから、次のオプションが true に設定されていることを確認する必要があります。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|
詳細は、「Service Registry のロールベースの承認」 を参照してください。
Service Registry の匿名読み取り専用アクセス
2 つの主要な認証タイプ (ロールベースの認証と所有者ベースの認証) に加えて、Service Registry は匿名の読み取り専用アクセスオプションをサポートしています。
認証認証情報のない REST API 呼び出しなどの匿名ユーザーが REST API への読み取り専用呼び出しを行うことを許可するには、次のオプションを true に設定します。
| 環境変数 | Java システムプロパティー | 型 | デフォルト値 |
|---|---|---|---|
|
|
| ブール値 |
|
|
|
| ブール値 |
|