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 認証オプションの設定

環境変数説明デフォルト

AUTH_ENABLED

Apicurio Registry での認証を有効または無効にします。true に設定すると、以下の環境変数が必要です。

文字列

false

KEYCLOAK_URL

使用する Red Hat Single Sign-On 認証サーバーの URL。/auth で終わる必要があります。

文字列

-

KEYCLOAK_REALM

認証に使用する Red Hat Single Sign-On レルム。

文字列

-

KEYCLOAK_API_CLIENT_ID

Apicurio Registry REST API のクライアント ID。

文字列

registry-api

KEYCLOAK_UI_CLIENT_ID

Apicurio Registry Web コンソールのクライアント ID。

文字列

apicurio-registry

HTTP Basic を使用した Apicurio レジストリー認証

注記

デフォルトでは、Apicurio Registry は OpenID Connect を使用した認証をサポートしています。ユーザー (または API クライアント) は、Apicurio Registry REST API への認証済み呼び出しを行うためにアクセストークンを取得する必要があります。ただし、一部のツールは OpenID Connect をサポートしていないため、次の設定オプションを true に設定することで、HTTP 基本認証をサポートするように Apicurio Registry を設定することもできます。

表5.7 Apicurio Registry HTTP 基本認証の設定

環境変数Java システムプロパティーデフォルト値

CLIENT_CREDENTIALS_BASIC_AUTH_ENABLED

registry.auth.basic-auth-client-credentials.enabled

Boolean

false

Apicurio Registry のロールベースの承認

次のオプションを true に設定して、Apicurio Registry でロールベースの承認を有効にすることができます。

表5.8 Apicurio Registry ロールベース認証の設定

環境変数Java システムプロパティーデフォルト値

ROLE_BASED_AUTHZ_ENABLED

registry.auth.role-based-authorization

Boolean

false

次に、ユーザーの認証トークンに含まれるロール (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 ロールベース認証の設定

環境変数説明デフォルト

ROLE_BASED_AUTHZ_SOURCE

token に設定すると、ユーザーのロールは認証トークンから取得されます。

文字列

トークン (token)

REGISTRY_AUTH_ROLES_ADMIN

ユーザーが管理者であることを示すロールの名前。

文字列

sr-admin

REGISTRY_AUTH_ROLES_DEVELOPER

ユーザーが開発者であることを示すロールの名前。

文字列

sr-developer

REGISTRY_AUTH_ROLES_READONLY

ユーザーが読み取り専用アクセス権を持っていることを示すロールの名前。

文字列

sr-readonly

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 ロール

ロール名アーティファクトの読み取りアーティファクトの書き込みグローバルルール説明

sr-admin

すべての作成、読み取り、更新、および削除操作へのフルアクセス。

sr-developer

グローバルルールの設定およびインポート/エクスポートを除く、操作の作成、読み取り、更新、および削除へのアクセス。このロールはアーティファクトルールのみを設定できます。

sr-readonly

読み取りおよび検索操作のみへのアクセス。このロールはルールを設定できません。

Apicurio Registry でロールを直接管理する

Apicurio Registry によって内部的に管理されるロールの使用を有効にするには、次の環境変数を設定します。

表5.11 内部ロールマッピングを使用した Apicurio Registry ロールベースの承認の設定

環境変数説明デフォルト

ROLE_BASED_AUTHZ_SOURCE

application に設定すると、ユーザーロールは Apicurio Registry によって内部的に管理されます。

文字列

トークン (token)

内部てkに管理されたロールマッピングを使用する場合は、Apicurio Registry REST API の /admin/roleMappings エンドポイントを使用して、ユーザーにロールを割り当てることができます。詳細は、Apicurio Registry REST API のドキュメント を参照してください。

ユーザーに付与できるロールは、ADMINDEVELOPER、または READ_ONLY のいずれかだけです。管理者権限を持つユーザーのみが、他のユーザーにアクセス権を付与できます。

Apicurio Registry の管理者オーバーライド設定

Apicurio Registry にはデフォルトの管理者ユーザーがいないため、通常、ユーザーが管理者として識別されるように別の方法を設定すると便利です。次の環境変数を使用して、この管理オーバーライド機能を設定できます。

表5.12 Apicurio Registry admin-override の設定

環境変数説明デフォルト

REGISTRY_AUTH_ADMIN_OVERRIDE_ENABLED

管理オーバーライド機能を有効にします。

文字列

false

REGISTRY_AUTH_ADMIN_OVERRIDE_FROM

管理オーバーライド情報を探す場所。現在 token のみがサポートされています。

文字列

トークン (token)

REGISTRY_AUTH_ADMIN_OVERRIDE_TYPE

ユーザーが管理者かどうかを判断するために使用される情報の種類。値は FROM 変数の値によって異なります。たとえば、FROM が token の場合は role または claim です。

文字列

role

REGISTRY_AUTH_ADMIN_OVERRIDE_ROLE

ユーザーが管理者であることを示すロールの名前。

文字列

sr-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM

管理オーバーライドを決定するために使用する JWT トークンクレームの名前。

文字列

org-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM_VALUE

CLAIM 変数によって示される JWT トークンクレームの値は、ユーザーが管理オーバーライドを付与されるためのものでなければなりません。

文字列

true

たとえば、この管理オーバーライド機能を使用して、sr-admin ロールを Red Hat Single Sign-On の 1 人のユーザーに割り当て、そのユーザーに admin ロールを付与できます。そのユーザーは、/admin/roleMappings REST API (または関連する UI) を使用して、追加のユーザー (追加の管理者を含む) にロールを付与できます。

Apicurio Registry 所有者のみの許可

以下のオプションを true に設定して、Apicurio Registry 内のアーティファクトまたはアーティファクトグループの更新に対して所有者のみの許可を有効にすることができます。

表5.13 所有者のみの承認の設定

環境変数Java システムプロパティーデフォルト値

REGISTRY_AUTH_OBAC_ENABLED

registry.auth.owner-only-authorization

Boolean

false

REGISTRY_AUTH_OBAC_LIMIT_GROUP_ACCESS

registry.auth.owner-only-authorization.limit-group-access

Boolean

false

所有者のみの許可が有効になっている場合は、アーティファクトを作成したユーザーのみがそのアーティファクトを変更または削除できます。

所有者のみの許可とグループの所有者のみの許可の両方が有効になっている場合は、アーティファクトグループを作成したユーザーのみが、そのアーティファクトグループへの書き込みアクセス権 (そのグループのアーティファクトを追加または削除するなど) を持ちます。

Apicurio Registry の認証済み読み取りアクセス

認証済み読み取りアクセスオプションが有効になっている場合、Apicurio Registry は、ユーザーロールに関係なく、同じ組織内の認証済みユーザーからのリクエストに対して、少なくとも読み取り専用アクセスを許可します。

認証された読み取りアクセスを有効にするには、最初にロールベースの承認を有効にしてから、次のオプションを true に設定する必要があります。

表5.14 認証済み読み取りアクセスの設定

環境変数Java システムプロパティーデフォルト値

REGISTRY_AUTH_AUTHENTICATED_READS_ENABLED

registry.auth.authenticated-read-access.enabled

Boolean

false

詳細は、「Apicurio Registry のロールベースの承認」 を参照してください。

Apicurio Registry の匿名の読み取り専用アクセス

2 つの主要な認証タイプ (ロールベースの認証と所有者ベースの認証) に加えて、Apicurio Registry は匿名の読み取り専用アクセスオプションをサポートしています。

認証のクレデンシャルを持たない REST API 呼び出しなどの匿名ユーザーが REST API への読み取り専用呼び出しを行うことを許可するには、次のオプションを true に設定します。

表5.15 匿名の読み取り専用アクセスの設定

環境変数Java システムプロパティーデフォルト値

REGISTRY_AUTH_ANONYMOUS_READ_ACCESS_ENABLED

registry.auth.anonymous-read-access.enabled

Boolean

false

関連情報