---
title: "アップグレード・アイデンティティ・サーバー"
slug: "upgrade-identity-server"
abstract: ""
---
# アップグレード・アイデンティティ・サーバー

Identity Server Sitecoreのアップグレードとは、現在のSitecore XPバージョンに対応するSitecore XPコンテナデプロイメントパッケージを指します。例えば、Sitecore XP 10.5デプロイメントでIdentity Serverをアップグレードした場合、Sitecore XP 10.5コンテナデプロイメントパッケージ、または該当する場合はより新しいデプロイメントパッケージバージョンに適用されます。

同様に、Identity Serverのアップグレード手順も、Sitecore XP Developer Workstation with Dockerガイドで記載されている一般的な展開手順に従っています。以下の指示は、Identity Server特有の追加ステップを示しています。例えば、Sitecore XP 10.5のデプロイメントでは、このDeveloper Workstation DeploymentとDockerガイドが参照されています。

## Docker Compose仕様ファイルの準備

> !注このステップはSitecore XP Developer Workstation Deployment with Docker guideの *セクション1.3.3 - デプロイメント準備のためのスクリプトを実行する*ことに対応しています。

仕様ファイルをSitecore Identity Server 9.0.Xに更新してください。

Identity Server 8.0以降、コンテナイメージの名前はsitecore-idXからsitecore-identityに変更されました。そのタグは、例えばSitecore Identity Serverのバージョンに合わせて調整されています。例えば、sxp/sitecore-identity:9.0-ltsc2022。

Sitecore XP 10.0のみの場合、docker-compose.ymlファイルの「id」サービスのhealthcheckプローブを以下から更新してください:

"CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"

宛先:

"CMD", "pwsh", "-command", "C:/Healthchecks/Healthcheck.ps1"

## SQL Serverとの暗号化通信

> !注8.x以前のIdentity Serverバージョンからのアップグレードにのみ適用されます。

バージョン8.0以降、Sitecore Identity ServerはデフォルトでSQL Serverとの暗号化通信を義務付けています。この変更は、[Microsoftの「EF Core 7.0のBreaking changes](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/breaking-changes?tabs=data-annotations%2Cv7#encrypt-true)」記事で説明されているように、より厳格なセキュリティ対策を強制する新しいバージョンのMicrosoft.Data.SqlClientを採用したことによるものです。

暗号化証明書の設定と実装には以下の手順に従ってください:

> !注例として最新のSitecore XPコンテナデプロイメントパッケージを使えます。

1.  暗号化用の証明書を取得してください。2つの証明書ファイルを準備します。
    
    -   mssql.pfx - SQL Serverで暗号化に使用される秘密鍵および公開証明書を含みます。
    -   RootCA.crt - 暗号化証明書を発行した認証機関(CA)の公開証明書。
    
    これらはSQL Serverで使用するために特定の要件を満たす必要があります。詳細については、「 [SQL Serverの証明書要件](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/certificate-requirements?view=sql-server-ver16) 」記事をご参照ください。
    
2.  SQL Server展開のために暗号化証明書を設定してください。もしコンテナ展開でmssql-developerイメージを使用している場合は、暗号化証明書の設定をサポートする最新バージョンのイメージを使用できます。以下を実行します:
    
    :::文字で
    
    1.  mssql-developerの最新バージョンを以下のコマンドで取得してください:
        
        docker pull scr.sitecore.com/sxp/nonproduction/mssql-developer:2022-<version>
        
    2.  暗号化用の証明書をc:\\certs\\mssql.pfx ファイルとしてSQL Serverコンテナにマウントします。
        
    3.  以下のSQL Serverコンテナ環境変数を設定します:
        
        -   NAME – SQL Serverインスタンスの名前。
        -   TLS\_CERTIFICATE\_PASSWORD – 証明書ファイルのパスワード
        
        もしデプロイメントで別名のSQL Serverイメージを使用している場合は、元のイメージの上にカスタムイメージを作成します。これにより、スタンドアロンSQL Serverの初期化に似た初期化が行われるはずです。詳細については、Microsoftの[Secure SQL Server Linux](https://learn.microsoft.com/en-us/sql/linux/containers/security?view=sql-server-ver16#encrypt-connections-to-sql-server-linux-containers) containers記事を参照してください。
        
    
    :::
    
3.  Identity Serverの展開で証明書が信頼されていることを確認してください。暗号化証明書発行に使用されたCA証明書をC:\\certs\\RootCA.crtファイルとしてdocker-compose.ymlファイルのIdentity Serverコンテナにマウントします。
    
    例えば、証明書ファイルがcompose/<version>/<topology>/id/certsフォルダに保存されている場合、設定は次のようになります。
    
    id:
      ...
      volumes:
        - type: bind
          source: .\\id\\certs
          target: c:\\certs
    
4.  任意Sitecore Identity Serverに暗号化された接続をSQL Serverするよう強制します。 compose/<version>/<topology>/docker-compose.ymlファイル内で、Sitecore\_Sitecore\_\_IdentityServer\_\_SitecoreMemberShipOptions\_\_ConnectionString環境変数の値をパラメータを追加して更新します:
    
    ...;Encrypt=true;TrustServerCertificate=false;
    

あるいは、カスタム証明書が提供されていない場合、SQL Serverが起動時に生成するデフォルトの自己署名暗号化証明書を使用することも可能です。これにより非本番環境のインストールプロセスが簡素化される可能性がありますが、**本番環境には推奨されません**。

Sitecore Identity Serverでこの構成に対応するためには、Docker Compose構成に以下のいずれかの設定変更を適用するだけで十分です。

1.  暗号化を無効にするには、Sitecore\_Sitecore\_\_IdentityServer\_\_SitecoreMemberShipOptions\_\_ConnectionString環境変数の値をパラメータを追加して更新します:
    
    ...;Encrypt=false;
    
2.  暗号化を有効にしますが、証明書の信頼検証は無効にします。 Sitecore\_Sitecore\_\_IdentityServer\_\_SitecoreMemberShipOptions\_\_ConnectionString環境変数の値をパラメータを追加して更新します:
    
    ...;Encrypt=true;TrustServerCertificate=true;
    

10.0 Sitecore XPのみ、利用可能な唯一の選択肢はSQL Serverが生成したデフォルトの自己署名暗号化証明書を使用することです。

## セキュリティデータベースでアップグレードスクリプトを実行する

> !注このステップは、Sitecore XP Developer Workstation Deployment with Docker guideの *セクション2 -* イメージを取り出しコンテナを展開した後にワークステーションをデプロイする際に適用してください。

セキュリティデータベースでアップグレードスクリプトを実行するには:

1.  Sitecore.IdentityServer.UpgradeScripts.9.0.zipファイルを解凍します。パッケージにはデータベースアップグレードスクリプトが含まれていますCMS\_security\_IdentityServer.sql。このスクリプトはIdentity Server 9.0に必要な変更をCoreデータベースに適用Sitecore。
    
2.  導入時に使用されたCoreデータベースに対してアップグレードスクリプトを実行します。例えば、以下の方法で行えます:
    
    docker cp ./CMS\_security\_IdentityServer.sql <mssql container>:/CMS\_security\_IdentityServer.sql
    docker exec -it <mssql container> sqlcmd -S localhost -U <database username> -P '<database password>' -d <security database> -i ./CMS\_security\_IdentityServer.sql
    

これでCMサーバーにログインしてログアウトしてもエラーが表示されることはありません。