3.3. Red Hat build of Keycloak を Trusted Artifact Signer の OpenID Connect プロバイダーとして設定する手順


Red Hat’s build of Keycloak (RHBK) を Red Hat Trusted Artifact Signer (RHTAS) サービスの OpenID Connect (OIDC) として設定できます。この手順では、RHBK と RHTAS を統合する方法を説明します。

重要

同じ SecureSign 設定で、Fulcio の複数の異なる OIDC プロバイダーを定義できます。

前提条件

  • OpenShift Container Platform バージョン 4.13 以降にインストールされた RHTAS。
  • cluster-admin ロールでの OpenShift Web コンソールへのアクセス。
  • oc バイナリーがインストールされているワークステーション。
  • Keycloak PostgreSQL データベース 用に 1 GB の永続ストレージを使用できる。
  • TLS 証明書と鍵

手順

  1. cluster-admin ロールを持つユーザーで OpenShift Web コンソールにログインします。
  2. Keycloak サービスをデプロイする新規プロジェクトを作成します。

    1. Administrator パースペクティブのナビゲーションメニューから Home を展開し、Projects をクリックします。
    2. Create Project ボタンをクリックします。
    3. 新しいプロジェクト名は keycloak-system で、Create ボタンをクリックします。
  3. 永続データを保存するために Keycloak が使用する PostgreSQL インスタンスをデプロイします。

    重要

    Keycloak で使用するデータベースがすでに存在する場合は、データベースインスタンスに対応する Secret リソースの usernamepassword および database 名の値を置き換えます。PostgreSQL サービスと StatefulSet の作成手順をスキップして、次の手順に進むことができます。

    1. データベース情報を保存するための Secret リソースを作成します。

      1. ナビゲーションメニューから Workloads を展開し、Secrets をクリックします。
      2. Project ドロップダウンメニューから keycloak-system を選択します。
      3. Create ドロップダウンメニューをクリックし、Key/Value secret を選択します。
      4. Secret name フィールドに postgresql-db と入力します。
      5. Key フィールドに username を入力します。
      6. Value フィールドに keycloak と入力します。これは、Keycloak が PostgreSQL データベースインスタンスへの認証に使用するユーザー名です。
      7. 別のキーと値のペアを追加するには、Add key/value リンクをクリックします。
      8. Key フィールドに password を入力します。
      9. Value フィールドに任意のパスワードを入力します。これは、Keycloak が PostgreSQL データベースインスタンスへの認証に使用するパスワードです。
      10. 別のキーと値のペアを追加するには、Add key/value リンクをクリックします。
      11. Key フィールドに database を入力します。
      12. Value フィールドに keycloak と入力します。これは、PostgreSQL データベースインスタンス内に Keycloak データを格納するためのデータベースの名前です。
      13. Create ボタンをクリックします。
    2. PostgreSQL サービスと StatefulSet を作成します。

      1. + アイコンをクリックします。
      2. Service および StatefulSet YAML 設定テキスト をコピーしImport YAML ページでテキストエディターボックスに テキストを貼り付けます
      3. Create ボタンをクリックして、Service と StatefulSet を keycloak-system プロジェクトに追加します。
  4. ワークステーションからターミナルを開き、OpenShift クラスターにログインします。

    構文

    oc login --token=TOKEN --server=SERVER_URL_AND_PORT

    $ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443

    注記

    OpenShift Web コンソールからコマンドラインで使用するログイントークンと URL を確認できます。OpenShift Web コンソールにログインします。ユーザー名をクリックし、Copy login command をクリックします。入力を求められた場合はユーザー名とパスワードをもう一度入力し、Display Token をクリックしてコマンドを表示します。

  5. Transport Layer Security (TLS) 証明書と対応する秘密鍵を含めて、新しい Secret リソースを作成します。

    構文

    oc create secret tls SECRET_NAME -n NAMESPACE --cert CERTIFICATE_FILE_NAME --key PRIVATE_KEY_FILE_NAME

    $ oc create secret tls keycloak-tls -n keycloak-system --cert certificate.pem --key key.pem

    注記

    OpenShift のサービス提供証明書は、Keycloak で使用する TLS 証明書の生成と管理を自動化できます。詳細は 付録 を参照してください。

  6. OpenShift Web コンソールで、ナビゲーションメニューから Operator を展開し、OperatorHub をクリックします。
  7. 検索フィールドに keycloak と入力し、認定済みの Red Hat カタログから Keycloak Operator タイルをクリックします。
  8. Install ボタンをクリックして、Operator の詳細を表示します。
  9. Install Operator ページで、Installed Namespace ドロップダウンメニューから keycloak-system を選択し、Install ボタンをクリックします。インストールが完了するまで待ちます。
  10. インストールが完了したら、View Operator ボタンをクリックします。
  11. Keycloak タイルで Create instance をクリックします。
  12. Create Keycloak ページで、YAML view を選択します。

    1. name の行で、example-keycloak をカスタム名 (例: keycloak) に置き換えます。
    2. ホスト名は、hostname プロパティー内で明示的に指定することも、他のルートと同様に自動的に生成することもできます。hostname の行で、example.org をカスタムホスト名に置き換えます。

      注記

      OpenShift で Keycloak インスタンスのホスト名を生成するために必要な手順は、付録 を参照してください。

    3. spec セクションの下に、データベースの詳細を追加します。

      spec:
      ...
        db:
          vendor: postgres
          host: postgresql-db
          usernameSecret:
            name: postgresql-db
            key: username
          passwordSecret:
            name: postgresql-db
            key: password
      ...

    4. また、spec セクションの http プロパティーに、TLS 証明書を含む Secret リソースの名前を指定します。

      spec:
      ...
        http:
          tlsSecret: keycloak-tls
      ...

    5. Create ボタンをクリックします。
  13. Networking ナビゲーションメニューを展開し、Routes をクリックします。
  14. Keycloak 管理コンソールを開くには、Keycloak インスタンスに関連付けられたルートへのリンクをクリックします。
  15. admin ユーザーのデフォルトの認証情報は keycloak-initial-admin という Secret に保存されます。パスワードを見つけるには、Workloads ナビゲーションメニューを展開し、Secrets をクリックします。
  16. keycloak-initial-admin シークレットを選択します。
  17. Data セクションでパスワードキーを探し、 copy content icon アイコンをクリックします。
  18. Keycloak 管理コンソールのログインページで、ユーザー名として admin と入力し、前の手順の内容をパスワードとして貼り付けます。
  19. trusted-artifact-signer という新しいレルムを作成します。

    1. ナビゲーションメニューで、Red Hat build of Keycloak ドロップダウンメニューを選択します。
    2. Create Realm を選択します。
    3. リソース名 として trusted-artifact-signer と入力します。
    4. Create をクリックして新しいレルムを作成します。
  20. 新しい ユーザー を作成します。新しいユーザーは、Keycloak 管理コンソールにログインでき、RHTAS を使用してコンテナーとコミットに署名することもできます。

    1. ナビゲーションメニューの Manage セクションで、Clients を選択します。
    2. Create Client ボタンをクリックします
    3. Client Id フィールドに、trusted-artifact-signer と入力します。
    4. オプションで、対応するフィールドに 名前説明 を入力できます。
    5. Next をクリックします。
    6. 新しいクライアント作成プロセスの Capability Config ステップでデフォルトオプションを確定します。
    7. Next をクリックします。
    8. Valid redirect URIs フィールドに * と入力します。
    9. Save をクリックしてクライアントを作成します。
  21. ナビゲーションメニューの Configure セクションで、Realm Settings を選択して、trusted-artifact-signer レルムの Issuer URL を見つけます。
  22. Endpoints の横にある OpenID Endpoint Configuration リンクをクリックします。
  23. issuer プロパティーから URL をコピーします
  24. RHTAS の SecureSign リソースの .spec.fulcio.config.OIDCIssuers セクションで、CLIENT_IDtrusted-artifact-signer に置き換え、URL コンテンツを貼り付けてRHBK_REALM_ISSUER_URL を置き換えます。

    構文

    spec:
    ...
      fulcio:
        config:
          OIDCIssuers:
            - ClientID: CLIENT_ID
              Issuer: 'RHBK_REALM_ISSUER_URL'
              IssuerURL: 'RHBK_REALM_ISSUER_URL'
              Type: email
    ...

    spec:
    ...
      fulcio:
        config:
          OIDCIssuers:
            - ClientID: trusted-artifact-signer
              Issuer: 'https://keycloak-ingress-keycloak-system.apps.openshift.example.com/realms/trusted-artifact-signer'
              IssuerURL: 'https://keycloak-ingress-keycloak-system.apps.openshift.example.com/realms/trusted-artifact-signer'
              Type: email
    ...

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.