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