第3章 Apicurio Registry のセキュリティーオプションの設定
この章では、Apicurio Registry セキュリティーの設定オプションを指定する方法を説明します。たとえば、これには、Red Hat build of Keycloak または Microsoft Azure Active Directory での認証や、Apicurio Registry でのロールベースの認可が含まれます。
利用可能なすべての設定オプションのリストは、13章Apicurio Registry 設定リファレンス を参照してください。
3.1. Red Hat build of Keycloak を使用した Apicurio Registry の認証と認可の設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Apicurio Registry および Red Hat build of Keycloak の認証および認可オプションを手作業で設定する方法を説明します。
また、これらの設定を自動的に設定する方法の詳細は、「Red Hat build of Keycloak を使用した Apicurio Registry の認証と認可の設定」 を参照してください。
Apicurio Registry Web コンソールとコア REST API は、OAuth と OpenID Connect (OIDC) をベースとする Red Hat build of Keycloak での認証をサポートします。同じ Red Hat build of Keycloak レルムとユーザーは OpenID Connect を使用して Apicurio Registry Web コンソールとコア REST API で連携されるため、必要なクレデンシャルは 1 セットのみです。
Apicurio Registry は、デフォルトの admin、write、および read-only ユーザーロールのロールベースの認可を提供します。Apicurio Registry は、レジストリーアーティファクトの作成者のみが更新または削除できる、コンテンツベースの認可をスキーマまたは API レベルで提供します。Apicurio Registry の認証および認可設定は、デフォルトでは無効になっています。
前提条件
- Red Hat build of Keycloak が実行中である。詳細は、Red Hat build of Keycloak のユーザードキュメント を参照してください。
- Apicurio Registry がインストールされ、実行されています。
手順
-
Red Hat build of Keycloak 管理コンソールで、Apicurio Registry 用の Red Hat build of Keycloak レルムを作成します。デフォルトでは、Apicurio Registry は
registryのレルム名を想定しています。レルムの作成に関する詳細は、Red Hat build of Keycloak のユーザードキュメント を参照してください。 Apicurio Registry API 用の Red Hat build of Keycloak クライアントを作成します。デフォルトでは、Apicurio Registry は次の設定を想定しています。
-
Client ID:
registry-api -
Client Protocol:
openid-connect Access Type:
bearer-only他のクライアント設定にはデフォルト値を使用できます。
注記Red Hat build of Keycloak サービスアカウントを使用している場合、クライアントの アクセスタイプ は
bearer-onlyではなく、confidentialにする必要があります。
-
Client ID:
Apicurio Registry Web コンソール用の Red Hat build of Keycloak クライアントを作成します。デフォルトでは、Apicurio Registry は次の設定を想定しています。
-
Client ID:
apicurio-registry -
Client Protocol:
openid-connect -
Access Type:
public -
Valid Redirect URLs:
http://my-registry-url:8080/* Web Origins:
+他のクライアント設定にはデフォルト値を使用できます。
-
Client ID:
OpenShift 上の Apicurio Registry デプロイメントで、次の Apicurio Registry 環境変数を指定し、Red Hat build of Keycloak を使用して認証を設定します。
Expand 表3.1 Red Hat build of Keycloak を使用した Apicurio レジストリー認証の設定 環境変数 説明 型 デフォルト QUARKUS_OIDC_TENANT_ENABLEDApicurio Registry の認証を有効にします。
trueに設定すると、Red Hat build of Keycloak を使用した認証に次の環境変数が必要になります。String
falseQUARKUS_OIDC_AUTH_SERVER_URLRed Hat build of Keycloak 認証サーバーの URL。たとえば、
http://localhost:8080です。String
-
QUARKUS_OIDC_CLIENT_IDApicurio Registry REST API のクライアント ID。
String
registry-apiAPICURIO_UI_AUTH_OIDC_CLIENT-IDApicurio Registry Web コンソールのクライアント ID。
String
apicurio-registryヒントOpenShift に環境変数を設定する例は、「OpenShift での Apicurio Registry ヘルスチェックの設定」 を参照してください。
以下のオプションを
trueに設定して、Red Hat build of Keycloak で Apicurio Registry ユーザーロールを有効にします。Expand 表3.2 Apicurio Registry ロールベース認証の設定 環境変数 Java システムプロパティー 型 デフォルト値 APICURIO_AUTH_ROLE-BASED-AUTHORIZATIONapicurio.auth.role-based-authorizationBoolean
falseApicurio Registry ユーザーロールが有効になっている場合、Apicurio Registry ユーザーを、Red Hat build of Keycloak レルム内の以下のデフォルトユーザーロールの少なくとも 1 つに割り当てる必要があります。
Expand 表3.3 レジストリーの認証および認可のデフォルトユーザーロール ロール アーティファクトの読み取り アーティファクトの書き込み グローバルルール 概要 sr-adminはい
はい
はい
すべての作成、読み取り、更新、および削除操作へのフルアクセス。
sr-developerはい
はい
いいえ
グローバルルールの設定を除く、作成、読み取り、更新、および削除操作へのアクセス。このロールは、アーティファクト固有のルールを設定できます。
sr-readonlyはい
いいえ
いいえ
読み取りおよび検索操作のみへのアクセス。このロールはルールを設定できません。
以下を
trueに設定して、Apicurio Registry のスキーマおよび API アーティファクトの更新に対して所有者のみの認可を有効にします。Expand 表3.4 所有者のみの認可の設定 環境変数 Java システムプロパティー 型 デフォルト値 APICURIO_AUTH_OWNER-ONLY-AUTHORIZATION_LIMIT-GROUP-ACCESSapicurio.auth.owner-only-authorization.limit-group-accessBoolean
false