5.3. Apicurio Registry の認証および承認の設定オプション


Apicurio Registry は、Red Hat Single Sign-On または HTTP 基本認証を使用した OpenID Connect の認証オプションを提供します。

Apicurio Registry には、ロールベースおよびコンテンツベースのアプローチの承認オプションが用意されています。

  • デフォルトの管理者、書き込み、および読み取り専用のユーザーロールに対するロールベースの承認。
  • アーティファクトまたはアーティファクトグループの所有者のみがアーティファクトを更新または削除できるスキーマまたは API アーティファクトのコンテンツベースの承認。
重要

Apicurio Registry のすべての認証および承認オプションはデフォルトで無効になっています。これらのオプションのいずれかを有効にする前に、まず AUTH_ENABLED オプションを true に設定する必要があります。

この章では、次の設定オプションについて詳しく説明します。

OpenID Connect と Red Hat Single Sign-On を使用した Apicurio Registry 認証

以下の環境変数を設定して、Red Hat Single Sign-On を使用して Apicurio Registry Web コンソールおよび API の認証を設定できます。

表5.6 Red Hat Single Sign-On を使用した Apicurio Registry 認証の設定
環境変数説明タイプデフォルト

AUTH_ENABLED

Apicurio Registry の認証を有効にします。true に設定する場合は、以下の環境変数が Red Hat Single Sign-On の認証に必要です。

文字列

false

KEYCLOAK_URL

Red Hat Single Sign-On 認証サーバーの URL。たとえば、http://localhost:8080 です。

String

-

KEYCLOAK_REALM

認証用の Red Hat Single Sign-On レルム。たとえば、registry です。

String

-

KEYCLOAK_API_CLIENT_ID

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

文字列

registry-api

KEYCLOAK_UI_CLIENT_ID

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

文字列

apicurio-registry

HTTP Basic を使用した Apicurio Registry 認証

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

表5.7 Apicurio Registry HTTP 基本認証の設定
環境変数Java システムプロパティータイプデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

CLIENT_CREDENTIALS_BASIC_AUTH_ENABLED

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

Boolean

false

Apicurio Registry HTTP Basic クライアント認証情報キャッシュの有効期限

HTTP Basic クライアント認証情報キャッシュの有効期限を設定することもできます。デフォルトでは、HTTP Basic 認証を使用する場合、Apicurio Registry は JWT トークンをキャッシュし、不要なときに新しいトークンを発行しません。JWT トークンのキャッシュ有効期限を設定できます。このトークンは、デフォルトで 10 分に設定されます。

Red Hat Single Sign-On を使用する場合は、この設定を Red Hat Single Sign-On JWT の有効期限から 1 分引いた値に設定することが推奨されます。たとえば、Red Hat Single Sign-On で有効期限を 5 分に設定する場合は、以下の設定オプションを 4 分に設定する必要があります。

表5.8 HTTP Basic クライアント認証情報キャッシュの有効期限の設定
環境変数Java システムプロパティータイプデフォルト値

CLIENT_CREDENTIALS_BASIC_CACHE_EXPIRATION

registry.auth.basic-auth-client-credentials.cache-expiration

整数

10

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

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

表5.9 Apicurio Registry ロールベース認証の設定
環境変数Java システムプロパティータイプデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

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.10 Red Hat Single Sign-On を使用した Apicurio Registry ロールベース認証の設定
環境変数説明タイプデフォルト

ROLE_BASED_AUTHZ_SOURCE

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

String

トークン (token)

REGISTRY_AUTH_ROLES_ADMIN

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

String

sr-admin

REGISTRY_AUTH_ROLES_DEVELOPER

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

String

sr-developer

REGISTRY_AUTH_ROLES_READONLY

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

String

sr-readonly

Apicurio Registry が Red Hat Single Sign-On のロールを使用するように設定されている場合は、Apicurio Registry ユーザーを Red Hat Single Sign-On の以下のユーザーロールの少なくとも 1 つに割り当てる必要があります。ただし、表5.10「Red Hat Single Sign-On を使用した Apicurio Registry ロールベース認証の設定」 の環境変数を使用して別のユーザーロール名を設定できます。

表5.11 認証および承認のための Apicurio Registry ロール
ロール名アーティファクトの読み取りアーティファクトの書き込みグローバルルール説明

sr-admin

はい

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

sr-developer

はい

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

sr-readonly

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

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

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

表5.12 内部ロールマッピングを使用した 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.13 Apicurio Registry admin-override の設定
環境変数説明タイプデフォルト

REGISTRY_AUTH_ADMIN_OVERRIDE_ENABLED

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

String

false

REGISTRY_AUTH_ADMIN_OVERRIDE_FROM

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

String

トークン (token)

REGISTRY_AUTH_ADMIN_OVERRIDE_TYPE

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

String

role

REGISTRY_AUTH_ADMIN_OVERRIDE_ROLE

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

String

sr-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM

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

String

org-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM_VALUE

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

String

true

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

Apicurio Registry 所有者のみの許可

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

表5.14 所有者のみの承認の設定
環境変数Java システムプロパティータイプデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

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.15 認証済み読み取りアクセスの設定
環境変数Java システムプロパティータイプデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

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.16 匿名の読み取り専用アクセスの設定
環境変数Java システムプロパティータイプデフォルト値

AUTH_ENABLED

registry.auth.enabled

Boolean

false

REGISTRY_AUTH_ANONYMOUS_READ_ACCESS_ENABLED

registry.auth.anonymous-read-access.enabled

Boolean

false

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat