---
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 Production Environment Deployment with Kubernetesガイドで記載されている一般的な展開手順に従っています。以下の指示は、Identity Serverに特有の追加ステップを提供しています。例えば、Sitecore XP 10.5のデプロイメントでは、この本番環境デプロイメントとKubernetesガイドが参照されています。

## Kubernetes仕様ファイルの準備

> !注このステップはSitecore XP本番環境展開ガイド付きKubernetes*セクション1.3.3 - Kubernetes仕様ファイルのデプロイ*準備に対応しています。
> 
> SXP 10.5ガイドでは、セクション1.3.4の後にこのステップを適用してください *\- k8s展開準備のためのスクリプト実行。*

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

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

## 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.  暗号化用の証明書を取得してください。3つの証明書ファイルを準備します。
    
    -   tls.crt - SQL Serverで暗号化に使用される公開証明書を含みます。
    -   tls.key - SQL Serverで暗号化に使用される秘密鍵を含みます。
    -   root.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展開のために暗号化証明書を設定してください。デフォルトのSQL Serverイメージでこれを実現する方法については、[Microsoftの「Secure SQL Server Linux containers](https://learn.microsoft.com/en-us/sql/linux/containers/security?view=sql-server-ver16#encrypt-connections-to-sql-server-linux-containers) 」記事を参照してください。
    
3.  証明書がIdentity Serverの展開で信頼されていることを確認してください。暗号化証明書を発行したCA証明書をC:\\certs\\RootCA.crtファイルとしてIdentity Serverコンテナにマウントします。
    
    例えば、root.crtファイルがグローバル権威(global-authority)名のシークレットとして作成された場合、k8s/<version>/<topology>/id.yamlファイル内で設定を更新する必要があります。
    
    ...  
      volumeMounts:  
     ...  
      - mountPath: C:\\certs\\RootCA.crt  
         name: global-authority  
         subPath: root.crt 
     ... 
      volumes:
      ...
      - name: global-authority  
       secret: 
         secretName: global-authority
    
4.  任意Sitecore Identity Serverに暗号化された接続をSQL Serverするよう強制します。 k8s/<version>/<topology>/id.yamlファイル内で、Sitecore\_Sitecore\_\_IdentityServer\_\_SitecoreMemberShipOptions\_\_ConnectionString環境変数の値をパラメータを追加して更新します:
    
    ...;Encrypt=true;TrustServerCertificate=false;
    

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

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

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

Sitecore XP 10.0のみで、展開時に非本番SQL Serverイメージを使用する場合、利用可能な唯一の選択肢はSQL Serverが生成したデフォルトの自己署名暗号化証明書を使用することです。

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

> !注このステップは、Sitecore XP Production Environment Deployment with Kubernetes guideの *セクション2.8 - データ初期化ジョブのデプロイ* (古いSitecore XPバージョンでは *セクション2.7* )の後に適用してください。

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

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

Sitecore XP 10.0では、アップグレードスクリプトは以下のように少し異なる形式で実行すべきです。

kubectl cp ./CMS\_security\_IdentityServer.sql <mssql pod>:/CMS\_security\_IdentityServer.sql
kubectl exec -it <mssql pod> -- sqlcmd -S localhost -U <database username> -P '<database password>' -d <security database> -i C:\\CMS\_security\_IdentityServer.sql

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