セッションレコーディングのグループ管理サービスアカウント (gMSA) サポートを構成する

セッションレコーディングは、複数のサーバーで実行されているサービス向けのサービスプリンシパル名 (SPN) の管理を簡素化するために、グループ管理サービスアカウント (gMSA) をサポートします。この機能により、セキュリティが強化され、サービスアカウントの管理が簡素化されます。

ステップ 1: ドメインコントローラーで gMSA を作成する

注:

このセクションでは、ドメインコントローラーでサーバーマネージャーを使用して gMSA を作成する方法について説明します。または、次のスクリプトを実行して同じ目的を達成することもできます。

Add-KdsRootKey -EffectiveImmediately
Install-WindowsFeature -Name RSAT-AD-PowerShell
NEW-ADGroup –name "gMSA"  –path "DC=ajj,DC=test" -GroupCategory Security -groupscope Global
Add-ADGroupMember "gMSA" -Members "Server-3$"(The dollar sign $ is must)
New-ADServiceAccount IIS1SvC -DNSHostName IIS1Svc.ajj.test -PrincipalsAllowedToRetrieveManagedPassword gMSA
<!--NeedCopy-->

Effective time パラメーターは、キーが使用される前にすべてのドメインコントローラー (DC) に伝播する時間を確保します。Add-KdsRootKey -EffectiveImmediately を使用すると、キー配布サービス (KDS) サービスによってすぐに使用できるように、ターゲット DC にルートキーが追加されます。ただし、他のドメインコントローラーは、レプリケーションが完了するまでルートキーを使用できません。

  1. ドメインコントローラーで、Active Directory 管理センターを開きます。

    アクティブディレクトリ管理センター(/ja-jp/session-recording/2509/media/the-active-directory-administrative-center.png)

  2. ドメインを選択し、グループを作成します。

    ドメインを選択してグループを作成する(/ja-jp/session-recording/2509/media/select-the-domain-and-create-a-group.png)

  3. グループに名前を付けます (gMSA を例として使用)。グループの種類セキュリティに、グループスコープグローバルに設定します。メンバーサーバーを追加します。メンバーサーバーには、セッションレコーディングサーバーとセッションレコーディングデータベースがインストールされているマシンが含まれます。

    グループに名前を付けてメンバーサーバーを追加する(/ja-jp/session-recording/2509/media/name-the-group-and-add-memberservers.png)

    たとえば、グループメンバーは次のように追加されます。

    グループメンバーが追加されました(/ja-jp/session-recording/2509/media/a-group-member-is-added.png)

  4. セキュリティグループを正常に追加した後、Active Directory 管理センターのグローバル検索を使用して検索できます。メンバーサーバーを表示し、それらすべてを再起動することを忘れないでください。

    「グローバル検索」(/ja-jp/session-recording/2509/media/global-search.png)

  5. New-ADServiceAccount PowerShellコマンドレットを使用してgMSAアカウントを作成します。

    ドメインコントローラーで、Windows PowerShellを開き、gMSAを作成するために次のコマンドを実行します。

    New-ADServiceAccount $serviceAccountName -DNSHostName $DNSHostName -PrincipalsAllowedToRetrieveManagedPassword $groupName
    <!--NeedCopy-->
    

    ここで、

    • $serviceAccountName はgMSAの名前を指定します。この記事では、IIS1SvC を例として使用します。

    • $DNSHostName は、$serviceAccountName の後にドメインコントローラーのドメイン名が続く形式で、DNSホスト名を指定します。

    • $groupName は、管理されたパスワードを取得することを許可されたグループを指定します。この記事では、gMSA を例として使用します。

ステップ2: 各メンバーサーバーにgMSAをインストールする

gMSAを使用する各サーバーにgMSAをインストールする必要があります。

  1. サーバーマネージャーまたは管理者権限を持つPowerShellのいずれかを使用して、Windows PowerShell用Active Directoryモジュールをインストールします。

    • サーバーマネージャーを使用する例:

      Windows PowerShell 用アクティブディレクトリモジュールをインストールする(/ja-jp/session-recording/2509/media/install-the-active-directory-module-for-windows-powershell.png)

    • 管理者権限を持つPowerShellを使用する場合、次のコマンドを実行します。

       Install-WindowsFeature -Name RSAT-AD-PowerShell
       <!--NeedCopy-->
      
  2. Windows PowerShellを開き、gMSAをインストールするために、次のようなコマンドを実行します。

    Install-ADServiceAccount IIS1SvC
    <!--NeedCopy-->
    

    次のような「アクセス拒否」エラーが発生した場合、現在のメンバーサーバーがgMSAの許可リストに追加されており、その後サーバーが再起動されていることを確認してください。

    gMSAのインストール時にアクセス拒否エラーが発生しました

  3. PowerShellで次のコマンドと同様のコマンドを実行して、gMSAが正常にインストールされたことを確認します。コマンドがTrueを返した場合、gMSAは正常にインストールされています。

    Test-ADServiceAccount IIS1SvC
     <!--NeedCopy-->
    

    gMSAのインストールが正常に完了したことを確認する

ステップ3:gMSAがSession RecordingデータベースおよびSession Recordingログデータベースにアクセスできるようにする

  1. gMSAのログインを作成します。SQL Server Management Studio (SSMS) を使用して、Session Recordingデータベースが格納されているSQLインスタンスに接続します。

    gMSAのログインを作成する

    新しいログインには、<ドメインコントローラーのドメイン名>\<gMSAの名前> の形式で名前を付けます。例:

    SQLインスタンスのログイン名

  2. gMSAがSession RecordingデータベースおよびSession Recordingログデータベースにアクセスできるようにします。

    1. レジストリを介してSession RecordingデータベースおよびSession Recordingログデータベースの名前を見つけます。たとえば、次のレジストリキーをダブルクリックして値データを取得します。

      レジストリを介してデータベース名を見つける

    2. gMSAに、セッションレコーディングデータベースおよびセッションレコーディングログデータベースのdb_owner権限を付与します。

      セッションレコーディングデータベースのdb_owner権限を付与する

      セッションレコーディングログデータベースのdb_owner権限を付与する

    注:

    db_owner権限ではなく、db_datareader権限とdb_datawriter権限を付与する場合、データベースに対する実行権限もgMSAに付与する必要があります。例:

    use SR2311 grant execute to [name of the login created earlier]
    use SR2311log grant execute to [name of the login created earlier]
    <!--NeedCopy-->
    

ステップ3:gMSAがSession Recordingサーバーにアクセスできるようにする

各Session Recordingサーバーで次の手順を実行します。

  1. Session RecordingサーバーがインストールされているマシンでInternet Information Services (IIS) マネージャーを開き、アプリケーションプールIDをgMSAに設定して、IISを再起動します。

    アプリケーションプールIDをgMSAに設定する(/ja-jp/session-recording/2509/media/set-the-application-pool-identity-to-a-gmsa.png)

    たとえば、次のアプリケーションプールIDはgMSAに設定されています

    アプリケーションプールIDがgMSAに設定されている(/ja-jp/session-recording/2509/media/application-pool-identities-have-been-set-to-a-gmsa.png)

    注:

    または、Windows PowerShellを使用して、次のようなコマンドを実行してアプリケーションプールIDを設定することもできます。

    Import-Module WebAdministration -ErrorAction Stop
    $webapps = Get-ChildItem -Path IIS:\AppPools
    foreach ($webapp in $webapps) {
        if ($webapp.Name.Contains("SessionRecording")){
            $Pool = "IIS:\AppPools\" + $webapp.Name
            Write-Host $Pool
           Set-ItemProperty -Path $Pool -Name processModel -Value @{userName="AJJ \IIS1SvC$";identitytype=3}
       }
    }
    <!--NeedCopy-->
    
  2. Session Recordingサーバーがインストールされているマシンでレジストリエディターを開き、Session Recordingサーバーに対する読み取り権限をgMSAに付与します。

    1. サービスアカウントオブジェクトの種類を見つけます。

      サービスアカウントオブジェクトの種類を見つける(/ja-jp/session-recording/2509/media/locate-the-service-account-object-type.png)

    2. gMSAの名前を入力します。

      gMSAを入力する(/ja-jp/session-recording/2509/media/enter-the-gmsa.png)

    3. gMSAに読み取り権限を付与します。

      gMSAに読み取り権限を付与する(/ja-jp/session-recording/2509/media/grant-read-permission-to-a-gmsa.png)

    注:

    または、以下のスクリプトを使用して、セッションレコーディングサーバー上の読み取り権限をgMSAに付与することもできます。

    $RegistryKey = "HKLM:\SOFTWARE\Citrix\SmartAuditor"
    $NewAcl = Get-Acl -Path $RegistryKey
    $identity = "pahl6\IIS1SvC$"
    $RegistryKeyRights = "ReadPermissions"
    $type = "Allow"
    $RegistryKeyAccessRuleArgumentList = $identity, $RegistryKeyRights, $type
    $RegistryKeyAccessRule = New-Object System.Security.AccessControl.RegistryAccessRule -ArgumentList $RegistryKeyAccessRuleArgumentList
    $NewAcl.SetAccessRule($RegistryKeyAccessRule)
    Set-Acl -Path $RegistryKey -AclObject $NewAcl
    <!--NeedCopy-->
    
  3. gMSAをセッションレコーディングストレージフォルダーに追加し、そのフォルダーに対する読み取りおよび書き込み権限を付与します。その後、継承を有効にし、このオブジェクトからの継承可能なアクセス許可エントリで、すべての子オブジェクトのアクセス許可エントリを置き換えるを選択します。

    gMSAにセッションレコーディングストレージフォルダーに対する読み取りおよび書き込み権限を付与する - ステップ1(/ja-jp/session-recording/2509/media/grant-read-and-write-permissions-on-the-session-recording-storage-folder-to-a-gmsa-1.png)

    gMSAにセッションレコーディングストレージフォルダーに対する読み取りおよび書き込み権限を付与する - ステップ2(/ja-jp/session-recording/2509/media/grant-read-and-write-permissions-on-the-session-recording-storage-folder-to-a-gmsa-2.png)

    継承を有効にする(/ja-jp/session-recording/2509/media/enable-inheritance.png)

    注:

    または、以下のスクリプトを使用して、セッションレコーディングストレージフォルダーに対する読み取りおよび書き込み権限をgMSAに付与し、継承を有効にすることもできます。

    $path = "C:\SessionRecordings"
    $NewAcl = Get-Acl $path
    # Set properties
    $identity = "pahl6\IIS1SvC$"
    $fileSystemRights = "Modify"
    $type = "Allow"
    # Create new rule
    $fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type
    $fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule  $fileSystemAccessRuleArgumentList
    # Apply new rule
    $NewAcl.SetAccessRule($fileSystemAccessRule)
    # enable inherit
    $isProtected = $false
    $preserveInheritance = $false
    $NewAcl.SetAccessRuleProtection($isProtected, $preserveInheritance)
    Set-Acl -Path $path -AclObject $NewAcl
    <!--NeedCopy-->
    
  4. gMSAをセッションレコーディング承認コンソールに追加します。

    1. gMSAのセキュリティ識別子(SID)を見つけます。

      gMSAのSIDを見つける(/ja-jp/session-recording/2509/media/find-the-sid-for-a-gmsa.png)

    2. Write the SID to the SessionRecordingAzManStore file under <Session Recording server installation path>\App_Data.

      gMSAのSIDをファイルに書き込む(/ja-jp/session-recording/2509/media/write-gmsa-sid-to-file.png)

    3. App-Dataフォルダーに対するフルコントロール権限をgMSAに付与します。

      App-Dataフォルダーに対するフルコントロール権限をgMSAに付与します

    4. gMSAがセッションレコーディング承認コンソールに正常に追加されていることを確認します。

      gMSAがセッションレコーディング承認コンソールに正常に追加されていることを確認します

    注:

    または、次のようなスクリプトを使用して、gMSAをセッションレコーディング承認コンソールに追加することもできます。

    $account = "IIS1SvC"
    $AccountDetail = Get-ADServiceAccount -Identity $account
    $accountSid = $AccountDetail.SID.Value
    write-host $accountSid
    $path = "C:\Program Files\Citrix\SessionRecording\Server\App_Data\SessionRecordingAzManStore.xml"
    $doc = [xml](Get-Content $path)
    $node = $doc.AzAdminManager.AzApplication.AzRole | Where-Object {$_.Name -eq "LoggingWriter"}
    $element = $doc.CreateElement("Member")
    $element.InnerText = $accountSid
    $node.AppendChild($element)
    $doc.Save($path)
    <!--NeedCopy-->
    
セッションレコーディングのグループ管理サービスアカウント (gMSA) サポートを構成する