5.2. Red Hat Single Sign-On での Service Registry の認証および承認の設定
本セクションでは、Red Hat Single Sign-On を使用して Service Registry の認証および承認オプションを手作業で設定する方法を説明します。
また、これらの設定を自動的に設定する方法の詳細は、「Red Hat Single Sign-On Operator を使用した Service Registry のセキュリティー保護」 を参照してください。
OpenID Connect (OIDC) 使用して OAuth をベースとした Red Hat Single Sign-On を使用して、Service Registry Web コンソールおよびコア REST API の認証を有効にすることができます。同じ Red Hat Single Sign-On レルムとユーザーは OpenID Connect を使用して Service Registry Web コンソールとコアREST API で連携されるため、必要なクレデンシャルは 1 セットのみです。
Service Registry は、デフォルトの admin、write、および read-only ユーザーロールのロールベースの承認を提供します。Service Registry は、スキーマまたは API レベルでコンテンツベースの承認を提供し、レジストリーアーティファクトの作成者のみが更新または削除できます。Service Registry の認証および承認設定は、デフォルトでは無効になっています。
前提条件
- Red Hat Single Sign-On がインストールされ、実行中である。詳細は、Red Hat Single Sign-On のユーザードキュメント を参照してください。
- Service Registry がインストールされ、稼働中である。
手順
-
Red Hat Single Sign-On 管理コンソールで、Service Registry の Red Hat Single Sign-On レルムを作成します。デフォルトでは、Service Registry はレルム名
registry
を想定します。レルムの作成に関する詳細は、Red Hat Single Sign-On のユーザードキュメント を参照してください。 Service Registry API 向けに Red Hat Single Sign-On クライアントを作成します。デフォルトでは、Service 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:
Service Registry Web コンソール向けに Red Hat Single Sign-On クライアントを作成します。デフォルトでは、Service 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 での Service Registry デプロイメントで、以下の Service Registry 環境変数を設定し、Red Hat Single Sign-On を使用して認証を設定します。
表5.2 Service Registry 認証設定 環境変数 説明 型 デフォルト AUTH_ENABLED
true
に設定すると、従う環境変数が必要です。String
false
KEYCLOAK_URL
使用する Red Hat Single Sign-On 認証サーバーの URL。
/auth
で終わる必要があります。String
なし
KEYCLOAK_REALM
認証に使用する Red Hat Single Sign-On レルム。
String
registry
KEYCLOAK_API_CLIENT_ID
Service Registry REST API のクライアント ID。
String
registry-api
KEYCLOAK_UI_CLIENT_ID
Service Registry Web コンソールのクライアント ID。
String
apicurio-registry
ヒントOpenShift に環境変数を設定する例については、「OpenShift での Service Registry ヘルスチェックの設定」 を参照してください。
Red Hat Single Sign-On で Service Registry ユーザーロールを有効にするため、以下のオプションを
true
に設定します。表5.3 Service Registry ユーザーロールの設定 環境変数 Java システムプロパティー 型 デフォルト値 ROLES_ENABLED
registry.auth.roles.enabled
Boolean
false
Service Registry のユーザーロールが有効になっている場合は、Red Hat Single Sign-On レルムで Service Registry ユーザーを以下のデフォルトユーザーロールの 1 つ以上に割り当てる必要があります。
表5.4 レジストリーの認証および承認のデフォルトユーザーロール ロール アーティファクトの読み取り アーティファクトの書き込み グローバルルール 概要 sr-admin
可能
可能
可能
すべての作成、読み取り、更新、および削除操作へのフルアクセス。
sr-developer
可能
可能
不可能
グローバルルールの設定を除く、作成、読み取り、更新、および削除操作へのアクセス。このロールはアーティファクトルールを設定できます。
sr-readonly
可能
不可能
不可能
読み取りおよび検索操作のみへのアクセス。このロールはルールを設定できません。
以下を
true
に設定し、Service Registry のスキーマおよび API アーティファクトへの更新に対する所有者のみの承認を有効にします。表5.5 所有者のみの承認の設定 環境変数 Java システムプロパティー 型 デフォルト値 REGISTRY_AUTH_OWNER_ONLY_AUTHORIZATION
registry.auth.owner-only-authorization
Boolean
false
その他のリソース
- オープンソースのアプリケーションおよび 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 のドキュメントを参照してください。