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 の認証および承認設定は、デフォルトでは無効になっています。

前提条件

手順

  1. Red Hat Single Sign-On 管理コンソールで、Apicurio Registry 用の Red Hat Single Sign-On レルムを作成します。デフォルトでは、Apicurio Registry は registry のレルム名を想定しています。レルムの作成に関する詳細は、Red Hat Single Sign-On のユーザードキュメント を参照してください。
  2. 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 である必要があります。

  3. 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: +

      他のクライアント設定にはデフォルト値を使用できます。

  4. OpenShift 上の Apicurio Registry デプロイメントで、次の Apicurio Registry 環境変数を設定して、Red Hat Single Sign-On を使用した認証を設定します。

    表5.2 Apicurio Registry 認証の設定

    環境変数説明デフォルト

    AUTH_ENABLED

    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

    ヒント

    OpenShift に環境変数を設定する例については、「OpenShift での Apicurio Registry ヘルスチェックの設定」 を参照してください。

  5. 以下のオプションを true に設定して、Red Hat Single Sign-On で Apicurio Registry ユーザーロールを有効にします。

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

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

    ROLE_BASED_AUTHZ_ENABLED

    registry.auth.role-based-authorization

    Boolean

    false

  6. Apicurio Registry ユーザーロールが有効になっている場合、Apicurio Registry ユーザーを、Red Hat Single Sign-On レルム内の以下のデフォルトユーザーロールの少なくとも 1 つに割り当てる必要があります。

    表5.4 レジストリーの認証および承認のデフォルトユーザーロール

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

    sr-admin

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

    sr-developer

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

    sr-readonly

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

  7. 以下を true に設定して、Apicurio Registry のスキーマおよび API アーティファクトの更新に対して所有者のみの承認を有効にします。

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

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

    REGISTRY_AUTH_OBAC_ENABLED

    registry.auth.owner-only-authorization

    Boolean

    false

関連情報