5.2. Red Hat Single Sign-On を使用した Apicurio Registry の認証と承認の設定
本セクションでは、Red Hat Single Sign-On を使用して Apicurio Registry の認証および承認オプションを手作業で設定する方法を説明します。
また、これらの設定を自動的に設定する方法の詳細は、「Red Hat Single Sign-On Operator を使用した Apicurio Registry の保護」 を参照してください。
OpenID Connect (OIDC) 使用して OAuth をベースとした Red Hat Single Sign-On を使用して、Apicurio Registry Web コンソールおよびコア REST API の認証を有効にすることができます。同じ Red Hat Single Sign-On レルムとユーザーは OpenID Connect を使用して Apicurio Registry Web コンソールとコア REST API で連携されるため、必要なクレデンシャルは 1 セットのみです。
Apicurio Registry は、デフォルトの admin、write、および read-only ユーザーロールのロールベースの承認を提供します。Apicurio Registry は、スキーマまたは API レベルでコンテンツベースの承認を提供し、レジストリーアーティファクトの作成者のみが更新または削除できます。Apicurio Registry の認証および承認設定は、デフォルトでは無効になっています。
前提条件
- Red Hat Single Sign-On がインストールされ、実行中である。詳細は、Red Hat Single Sign-On のユーザードキュメント を参照してください。
- Apicurio Registry がインストールされ、実行されています。
手順
-
Red Hat Single Sign-On 管理コンソールで、Apicurio Registry 用の Red Hat Single Sign-On レルムを作成します。デフォルトでは、Apicurio Registry は
registryのレルム名を想定しています。レルムの作成に関する詳細は、Red Hat Single Sign-On のユーザードキュメント を参照してください。 Apicurio Registry API 用の Red Hat Single Sign-On クライアントを作成します。デフォルトでは、Apicurio Registry は次の設定を想定しています。
-
Client ID:
registry-api -
Client Protocol:
openid-connect Access Type:
bearer-only他のクライアント設定にはデフォルト値を使用できます。
注記Red Hat Single Sign-On サービスアカウントを使用している場合、クライアントの Access Type は、
bearer-onlyではなくconfidentialである必要があります。
-
Client ID:
Apicurio Registry Web コンソール用の Red Hat Single Sign-On クライアントを作成します。デフォルトでは、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 Single Sign-On を使用した認証を設定します。
表5.2 Apicurio Registry 認証の設定
環境変数 説明 型 デフォルト AUTH_ENABLEDtrueに設定すると、以下の環境変数が必要です。文字列
falseKEYCLOAK_URL使用する Red Hat Single Sign-On 認証サーバーの URL。
/authで終わる必要があります。文字列
なし
KEYCLOAK_REALM認証に使用する Red Hat Single Sign-On レルム。
文字列
レジストリーKEYCLOAK_API_CLIENT_IDApicurio Registry REST API のクライアント ID。
文字列
registry-apiKEYCLOAK_UI_CLIENT_IDApicurio Registry Web コンソールのクライアント ID。
文字列
apicurio-registryヒントOpenShift に環境変数を設定する例については、「OpenShift での Apicurio Registry ヘルスチェックの設定」 を参照してください。
以下のオプションを
trueに設定して、Red Hat Single Sign-On で Apicurio Registry ユーザーロールを有効にします。表5.3 Apicurio Registry ロールベース認証の設定
環境変数 Java システムプロパティー 型 デフォルト値 ROLE_BASED_AUTHZ_ENABLEDregistry.auth.role-based-authorizationBoolean
falseApicurio Registry ユーザーロールが有効になっている場合、Apicurio Registry ユーザーを、Red Hat Single Sign-On レルム内の以下のデフォルトユーザーロールの少なくとも 1 つに割り当てる必要があります。
表5.4 レジストリーの認証および承認のデフォルトユーザーロール
ロール アーティファクトの読み取り アーティファクトの書き込み グローバルルール 概要 sr-admin◯
◯
◯
すべての作成、読み取り、更新、および削除操作へのフルアクセス。
sr-developer◯
◯
✕
グローバルルールの設定を除く、作成、読み取り、更新、および削除操作へのアクセス。このロールはアーティファクトルールを設定できます。
sr-readonly◯
✕
✕
読み取りおよび検索操作のみへのアクセス。このロールはルールを設定できません。
以下を
trueに設定して、Apicurio Registry のスキーマおよび API アーティファクトの更新に対して所有者のみの承認を有効にします。表5.5 所有者のみの承認の設定
環境変数 Java システムプロパティー 型 デフォルト値 REGISTRY_AUTH_OBAC_ENABLEDregistry.auth.owner-only-authorizationBoolean
false
関連情報
- デフォルト以外のユーザーロール名の設定の詳細は、「Apicurio Registry の認証および承認の設定オプション」 を参照してください。
- オープンソースのアプリケーションおよび Keycloak レルムについては、Docker Compose-based example of using Keycloak with Apicurio Registry を参照してください。
- 実稼働環境で Red Hat Single Sign-On を使用する方法の詳細は、Red Hat Single Sign-On のドキュメント を参照してください。
- カスタムセキュリティーの設定に関する詳細は、Quarkus Open ID Connect のドキュメント を参照してください。