4.2. 環境間での Red Hat Single Sign-On サーバーのデータベースの移行


このチュートリアルでは、Red Hat Single Sign-On サーバーデータベースをある環境から別の環境への移行、または別のデータベースへの移行に重点を置いています。

Red Hat Single Sign-On 7.6.11 データベースのエクスポートおよびインポートは Red Hat Single Sign-On サーバーの起動時にトリガーされ、そのパラメーターは Java システムプロパティーを介して渡されます。これは、1 回の Red Hat Single Sign-On サーバーの起動中に、可能な移行アクションの 1 つ (エクスポート または インポート) のみが実行されることを意味します。

4.2.1. Red Hat Single Sign-On PostgreSQL アプリケーションテンプレートのデプロイ

前提条件

手順

  1. OpenShift Web コンソールにログインし、sso-app-demo プロジェクトスペースを選択します。
  2. Add to project をクリックし、デフォルトのイメージストリームおよびテンプレートをリスト表示します。
  3. Filter by keyword 検索バーを使用して、リストを sso に一致するものに制限します。See all をクリックして、必要なアプリケーションテンプレートを表示する必要がある場合があります。
  4. sso76-ocp4-postgresql Red Hat Single Sign-On アプリケーションテンプレートを選択します。テンプレートをデプロイする際には、必ず SSO_REALM 変数が設定されていない (デフォルト値) ことを確認してください。

    警告

    Red Hat Single Sign-On for OpenShift イメージに SSO_REALM 設定変数が設定されていると、変数で要求される Red Hat Single Sign-On サーバーレルムを作成するためにデータベースのインポートが実行されます。データベースのエクスポートを正しく実行するには、そのイメージに SSO_REALM 設定変数を同時に定義することはできません。

  5. Create をクリックしてアプリケーションテンプレートをデプロイし、Pod デプロイメントを開始します。これには数分の時間がかかる場合があります。

    その後、管理者アカウント を使用して https://secure-sso-<sso-app-demo>.<openshift32.example.com>/auth/admin で Red Hat Single Sign-On の Web コンソールにアクセスします。

    注記

    このワークフロー例では、自己生成された CA を使用して、デモ目的でエンドツーエンドのワークフローを提供します。Red Hat Single Sign-On Web コンソールにアクセスすると、セキュリティーが保護されていない接続に関する警告が表示されます。
    実稼働環境では、検証された認証局から購入した SSL 証明書を使用することを推奨します。

4.2.2. (オプション) エクスポートする追加のレルムとユーザーの作成

Red Hat Single Sign-On 7.6.11 サーバーデータベースのエクスポートを実行する場合、現在データベースにあるレルムとユーザーのみがエクスポートされます。エクスポートした JSON ファイルに追加の Red Hat Single Sign-On レルムとユーザーも含まれる場合は、以下を作成する必要があります。これらの手順を使用してください。

これが作成されると、データベースをエクスポートできます。

4.2.3. OpenShift Pod 上の JSON ファイルとして Red Hat Single Sign-On データベースをエクスポートします。

前提条件

  • 新しいレルムとユーザーが作成されます。

手順

  1. Red Hat Single Sign-On デプロイメント設定を取得し、これをゼロにスケールダウンします。

    $ oc get dc -o name
    deploymentconfig/sso
    deploymentconfig/sso-postgresql
    
    $ oc scale --replicas=0 dc sso
    deploymentconfig "sso" scaled
  2. Red Hat Single Sign-On for OpenShift イメージにデプロイされた Red Hat Single Sign-On 7.6.11 サーバーに、Red Hat Single Sign-On サーバーの起動時にデータベースのエクスポートを実行するよう指示します。

    $ oc set env dc/sso \
      -e "JAVA_OPTS_APPEND= \
        -Dkeycloak.migration.action=export \
        -Dkeycloak.migration.provider=singleFile \
        -Dkeycloak.migration.file=/tmp/demorealm-export.json"
  3. Red Hat Single Sign-On デプロイメント設定のバックアップを拡張します。これにより、Red Hat Single Sign-On サーバーが起動し、そのデータベースをエクスポートします。

    $ oc scale --replicas=1 dc sso
    deploymentconfig "sso" scaled
  4. (必要に応じて) エクスポートが成功したことを確認します。

    $ oc get pods
    NAME                     READY     STATUS    RESTARTS   AGE
    sso-4-ejr0k              1/1       Running   0          27m
    sso-postgresql-1-ozzl0   1/1       Running   0          4h
    
    $ oc logs sso-4-ejr0k | grep 'Export'
    09:24:59,503 INFO  [org.keycloak.exportimport.singlefile.SingleFileExportProvider] (ServerService Thread Pool -- 57) Exporting model into file /tmp/demorealm-export.json
    09:24:59,998 INFO  [org.keycloak.services] (ServerService Thread Pool -- 57) KC-SERVICES0035: Export finished successfully

4.2.4. エクスポートした JSON ファイルを取得してインポートします。

手順

  1. Pod から Red Hat Single Sign-On データベースの JSON ファイルを取得します。

    $ oc get pods
    NAME                     READY     STATUS    RESTARTS   AGE
    sso-4-ejr0k              1/1       Running   0          2m
    sso-postgresql-1-ozzl0   1/1       Running   0          4h
    
    $ oc rsync sso-4-ejr0k:/tmp/demorealm-export.json .
  2. (必要に応じて) Red Hat Single Sign-On データベースの JSON ファイルを、別の環境で実行している Red Hat Single Sign-On サーバーにインポートします。

    注記

    OpenShift で実行されていない Red Hat Single Sign-On サーバーへのインポートについては、Importing and exporting the database を参照してください。

    Red Hat Single Sign-On サーバーが OpenShift で Red Hat Single Sign-On 7.6.11 コンテナーとして実行されている場合は、管理コンソールのエクスポート/インポート 機能を使用して、以前にエクスポートした JSON ファイルから Red Hat Single Sign-On サーバーのデータベースにリソースをインポートします。

    1. 管理者ユーザーの作成に使用する認証情報を使用して、Red Hat Single Sign-On サーバーの master レルムの管理コンソールにログインします。ブラウザーで、Red Hat Single Sign-On Web サーバーの場合は http://sso-<project-name>.<hostname>/auth/admin に移動し、暗号化された Red Hat Single Sign-On Web サーバーの場合は https://secure-sso-<project-name>.<hostname>/auth/admin に移動します。
    2. サイドバーの上部に、Red Hat Single Sign-On レルム名、ユーザー、クライアント、レルムロール、およびクライアントロールのインポート先を選択します。この例では、master レルムを使用します。
    3. サイドバーの下部にある Manage セクションにある Import のリンクをクリックします。
    4. 開いたページで Select file をクリックし、ローカルファイルシステムでエクスポートされた JSON ファイル demorealm-export.json の場所を指定します。
    5. Import from realm ドロップダウンメニューから、データのインポート元となる Red Hat Single Sign-On レルムの名前を選択します。この例では、master レルムを使用します。
    6. インポートするユーザー、クライアント、レルムロール、およびクライアントロールを選択します (すべてのユーザーはデフォルトでインポートされます)。
    7. リソースがすでに存在する場合 (FailSkip、または Overwriteのいずれか) に実行するストラテジーを選択します。

      注記

      オブジェクト (ユーザー、クライアント、レルムロール、またはクライアントロール) をインポートしようとすると、現在のデータベースに同じ識別子を持つオブジェクトがすでに存在する場合に失敗します。Skip ストラテジーを使用して、demorealm-export.json ファイルにあるが、現在のデータベースに存在しないオブジェクトをインポートします。

    8. インポート をクリックしてインポートを実行します。

      Import ボタンをクリックすると、master レルム以外のレルムから master レルムにオブジェクトをインポートする場合や、その逆の場合、以下のようなエラーが発生することがあります。

      Example of Possible Error Message when Performing Partial Import from Previously Exported JSON File

      この場合、まず、Access Typebearer-only に設定して、不足しているクライアントを作成する必要があります。これらのクライアントは、エクスポート JSON ファイルが作成されたソースの Red Hat Single Sign-On サーバーから、JSON ファイルがインポートされるターゲット Red Hat Single Sign-On サーバーに、その特性を手動でコピーして作成できます。必要なクライアントを作成したら、再度 Import ボタンをクリックします。

      上記の エラーメッセージを非表示にするには、Access Typebearer-only の不足している realm-management クライアントを作成して、Import ボタンを再度クリックする必要があります。

      Skip インポートストラテジーでは、新たに追加されたオブジェクトは ADDED としてマークされ、スキップされたオブジェクトが、インポート結果ページの Action 列の SKIPPED としてマークされます。

      管理コンソールのインポートにより、選択した場合にリソースを 上書き できます (Overwrite ストラテジー)。実稼働システムでは、この機能を注意して使用します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.