グループの管理されたサービス アカウントの概要

適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016

この記事では、Windows Server でグループの管理されたサービス アカウントを有効にして使用する方法について説明します。

Kerberos など相互認証がサポートされている認証プロトコルは、サービスのすべてのインスタンスが同じプリンシパルを使用していない限り、使用できません。 たとえば、負荷分散や別の方法を使用して、すべてのサーバーがクライアントでは同じサービスと見なされるようなサービスにクライアント コンピューターが接続している場合です。 つまり、各サービスは同じパスワードまたはキーを使用して同一性を証明する必要があります。 グループの管理されたサービス アカウント (gMSA) は、複数のサーバーで使用できるアカウントの種類です。 gMSA は、パスワードを管理しなくても複数のサーバーでサービスを実行するために使用できるドメイン アカウントです。 sMSA では、パスワードの自動管理と、他の管理者に管理を委任するなど簡略化されたサービス プリンシパル名 (SPN) 管理を利用できます。

Note

フェールオーバー クラスターでは、gMSA をサポートしていません。 ただし、クラスター サービスの上位で実行されるサービスは、それが Windows サービス、アプリケーション プール、またはスケジュールされたタスクである場合、あるいは gMSA/sMSA をネイティブにサポートしている場合、gMSA または sMSA を使用できます。

サービスは、使用するプリンシパルを選択できます。 プリンシパルの種類ごとにサポートされるサービスが異なり、制限も異なります。

プリンシパル サポートされるサービス パスワード管理
Windows システムのコンピューター アカウント ドメインに参加している 1 つのサーバーに限定 コンピューターによる管理
Windows システムなしのコンピューター アカウント ドメインに参加している任意のサーバー なし
仮想アカウント 1 つのサーバーに限定 コンピューターによる管理
Windows スタンドアロンの管理されたサービス アカウント ドメインに参加している 1 つのサーバーに限定 コンピューターによる管理
ユーザー アカウント ドメインに参加している任意のサーバー なし
グループの管理されたサービス アカウント Windows Server ドメインに参加している任意のサーバー ドメイン コントローラーによる管理、ホストによる取得

Windows コンピューター アカウント、Windows スタンドアロンの管理されたサービス アカウント (sMSA)、または仮想アカウントは、複数のシステムで共有できません。 仮想アカウントを使用する場合、ID もマシンに対してローカルであり、ドメインでは認識されません。 1 つのアカウントをサーバー ファームのサービスで共有するように構成する場合は、Windows システムとは別にユーザー アカウントまたはコンピューター アカウントを選択する必要があります。 いずれにしても、これらのアカウントには、シングルポイントコントロールでパスワードを管理する機能はありません。 パスワード管理機能を備えていない場合、各組織は Active Directory のサービスのキーを更新して、これらのキーを Active Directory のサービスのすべてのインスタンスに配布する必要があります。

Windows Server の場合、サービスもサービス管理者も、グループの管理されたサービス アカウント (gMSA) の使用時にサービス インスタンス間のパスワード同期を管理する必要はありません。 AD で gMSA を作成し、管理されたサービス アカウントをサポートするサービスを構成します。 gMSA の使用範囲は、LDAP を使用して gMSA の資格情報を取得できる任意のマシンに限られます。 gMSA を作成するには、Active Directory モジュールの一部である New-ADServiceAccount コマンドレットを使用します。 次のサービスでは、ホストでのサービス ID 構成がサポートされています。

  • sMSA と同じ API。そのため、sMSA をサポートする製品では gMSA がサポートされます。

  • サービス コントロール マネージャーを使用してログオン ID を構成するサービス。

  • アプリケーション プールに対応する IIS マネージャーを使用して ID を構成するサービス。

  • タスク スケジューラを使用するタスク。

前提条件

次の表に、Kerberos 認証が gMSA を使用してサービスを操作するための、オペレーティング システムの要件を一覧します。 表の後に Active Directory の要件を一覧します。

グループの管理されたサービス アカウントを管理するために使用する Windows PowerShell コマンドレットを実行するには 64 ビット アーキテクチャが必要です。

オペレーティング システム

要素 要件
クライアント アプリケーション ホスト RFC 準拠の Kerberos クライアント
ユーザー アカウントのドメイン DC RFC 準拠の KDC
共有されたサービス メンバー ホスト
メンバー ホストのドメイン DC RFC 準拠の KDC
gMSA アカウントのドメイン DC ホストでパスワードを取得するために使用できる Windows Server 2012 DC
バックエンド サービス ホスト RFC 準拠の Kerberos アプリケーション サーバー
バックエンド サービス アカウントのドメイン DC RFC 準拠の KDC
Active Directory の Windows PowerShell Active Directory Domain Services リモート サーバー管理者ツール

[Active Directory ドメイン サービス]

グループの管理されたサービス アカウントには、Active Directory Domain Services (AD DS) の次の要件があります。

  • Active Directory ドメインとフォレストの機能レベルは、Windows Server 2012 以降である必要があります。 スキーマの更新の詳細については、「Active Directory ドメインとフォレストの機能レベルの引き上げ」を参照してください。

  • グループ別に gMSA を使用するサービス ホストのアクセス許可を管理している場合は、新規または既存のセキュリティ グループ。

  • グループ別にサービス アクセス コントロールを管理している場合は、新規または既存のセキュリティ グループ。

  • Active Directory のキー配布サービス (KDS) ルート キーは、ドメインで作成する必要があります。 作成した結果は、KdsSvc 操作ログ (Event ID 4004) で検証できます。 KDS ルート キーの作成の詳細については、「キー配布サービス (KDS) ルート キーの作成」を参照してください。

キーを作成する方法の手順については、「キー配布サービス KDS ルート キーの作成」を参照してください。 Microsoft キー配布サービス (kdssvc.dll)、AD のルート キー。

新しいサーバー ファームの展開

gMSA 機能を使用するサーバー ファームを作成して管理するプロセスでは、通常、次のタスクが必要です。

  • 新しいサーバー ファームの展開

  • 既存のサーバー ファームへのメンバー ホストの追加

  • 既存のサーバー ファームからのメンバー ホストの使用停止

  • 既存のサーバー ファームの使用停止

  • セキュリティ侵害を受けているメンバー ホストのサーバー ファームからの削除 (必要な場合)

サービス管理者が新しいサーバー ファームをデプロイするときは、次の情報を確認する必要があります。

  • サービスが gMSA の使用をサポートしている

  • サービスが認証済みの受信接続または送信接続を必要としている

  • gMSA を使用するサービス用のメンバー ホストのコンピューター アカウント名

  • サービスの NetBIOS 名

  • サービスの DNS ホスト名

  • サービスのサービス プリンシパル名 (SPN)

  • パスワード変更間隔 (既定では 30 日)

グループの管理されたサービス アカウントの作成

gMSA を作成できるのは、フォレスト スキーマが Windows Server 2012 以降の場合のみです。 Active Directory の KDS ルート キーをデプロイして、gMSA を作成するドメインに Windows Server 2012 以降のドメイン コントローラーを少なくとも 1 つ配置する必要もあります。

重要

gMSA アカウント名は、ドメインだけでなく、フォレスト レベル内で一意である必要があります。 異なるドメインでも、名前が重複している gMSA アカウントを作成しようとすると失敗します。

次の手順を完了するには、Domain Admins のメンバーシップ、または msDS-GroupManagedServiceAccount オブジェクトを作成する権限が最低限必要です。

PowerShell を使用して gMSA を作成するには、次の手順に従います。

  1. Windows Server 2012 ドメイン コントローラーのタスク バーから Windows PowerShell を実行します。

  2. Windows PowerShell のコマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します (Active Directory モジュールが自動的に読み込まれます)

    New-ADServiceAccount [-Name] <string> -DNSHostName <string> [-KerberosEncryptionType <ADKerberosEncryptionType>] [-ManagedPasswordIntervalInDays <Nullable[Int32]>] [-PrincipalsAllowedToRetrieveManagedPassword <ADPrincipal[]>] [-SamAccountName <string>] [-ServicePrincipalNames <string[]>]

    Note

    -Name パラメーターの値は (-Name を指定しているかどうかに関係なく) 常に必要であり、-DNSHostName-RestrictToSingleComputer-RestrictToOutboundAuthentication は 3つのデプロイ シナリオの 2 番目の要件です。

    パラメーター String
    名前 アカウントの名前 ITFarm1
    DNSHostName サービスの DNS ホスト名 ITFarm1.contoso.com
    KerberosEncryptionType ホスト サーバーによってサポートされる暗号化の種類 None、RC4、AES128、AES256
    ManagedPasswordIntervalInDays 日単位のパスワード変更間隔 (指定がなければ既定では 30 日) 90
    PrincipalsAllowedToRetrieveManagedPassword メンバー ホストのコンピューター アカウントまたはメンバー ホストが属するセキュリティ グループ ITFarmHosts
    SamAccountName Name と同じでない場合はサービスの NetBIOS 名 ITFarm1
    ServicePrincipalNames サービスのサービス プリンシパル名 (SPN) http/ITFarm1.contoso.com/contoso.com、http/ITFarm1.contoso.com/contoso、http/ITFarm1/contoso.com、http/ITFarm1/contoso、MSSQLSvc/ITFarm1.contoso.com:1433、MSSQLSvc/ITFarm1.contoso.com:INST01

    重要

    パスワード変更間隔は作成時にしか設定できません。 パスワード変更間隔を変更する必要がある場合は、新しい gMSA を作成し、作成時にその間隔を設定してください。

    たとえば、グループに対して ITFarm1 という新しい gMSA を作成するには、次のコマンドを使用します。 gMSA を使用すると、サービスは Kerberos 暗号化の種類である RC4、AES128、および AES256 を使用できます。 このサービスでは、http/ITFarm1.contoso.com/contoso.comhttp/ITFarm1.contoso.com/contosohttp/ITFarm1/contoso.com、および http/ITFarm1/contoso という SPN を使用できます。

    コマンドレットを単一行に入力します。ただし、書式上の制約から複数行に改行されて表示される場合があります。

     New-ADServiceAccount ITFarm1 -DNSHostName ITFarm1.contoso.com -PrincipalsAllowedToRetrieveManagedPassword ITFarmHosts$ -KerberosEncryptionType RC4, AES128, AES256 -ServicePrincipalNames http/ITFarm1.contoso.com/contoso.com, http/ITFarm1.contoso.com/contoso, http/ITFarm1/contoso.com, http/ITFarm1/contoso
    

この手順を完了するには、ドメイン管理者またはアカウント オペレーターのメンバーシップ、あるいは msDS-GroupManagedServiceAccount オブジェクトを作成する機能が最低限必要です。 適切なアカウントおよびグループ メンバーシップの使用方法の詳細については、「Active Directory セキュリティ グループ」を参照してください。

PowerShell のみを使用して送信認証の gMSA を作成するには、次の手順に従います。

  1. Windows Server 2012 ドメイン コントローラーのタスク バーから Windows PowerShell を実行します。

  2. Windows PowerShell の Active Directory モジュールのコマンド プロンプトで、次のコマンドを使用します。

    New-ADServiceAccount [-Name] <string> -RestrictToOutboundAuthenticationOnly [-ManagedPasswordIntervalInDays <Nullable[Int32]>] [-PrincipalsAllowedToRetrieveManagedPassword <ADPrincipal[]>]

    次の例では、表のパラメーターを使用して gMSA を作成します。

    パラメーター String
    名前 アカウントの名前 ITFarm1
    ManagedPasswordIntervalInDays 日単位のパスワード変更間隔 (指定がなければ既定では 30 日) 75
    PrincipalsAllowedToRetrieveManagedPassword メンバー ホストのコンピューター アカウントまたはメンバー ホストが属するセキュリティ グループ ITFarmHosts

    重要

    パスワード変更間隔は作成時にしか設定できません。 パスワード変更間隔を変更する必要がある場合は、新しい gMSA を作成し、作成時にその間隔を設定してください。

    これらのパラメーターを使用したコマンドの例を次に示します。

    New-ADServiceAccount ITFarm1 -RestrictToOutboundAuthenticationOnly - PrincipalsAllowedToRetrieveManagedPassword ITFarmHosts$
    

サービス ID アプリケーション サービスの構成

Windows Server でサービスを構成するには、次の記事を参照してください。

gMSA をサポートするサービスが他に存在する場合があります。 それらのサービスを構成する方法の詳細については、適切な製品ドキュメントを参照してください。

既存のサーバー ファームにメンバー ホストを追加する

メンバー ホストの管理にセキュリティ グループを使用する場合は、次のいずれかの方法を使用して新しいメンバー ホストのコンピューター アカウントをセキュリティ グループ (gMSA のメンバー ホストがメンバーである) に追加します。

これらの手順を完了するには、[Domain Admins] のメンバーシップか、またはセキュリティ グループ オブジェクトにメンバーを追加する機能が最低限必要です。

コンピューター アカウントを使用する場合は、既存のアカウントを検索し、新しいコンピューター アカウントを追加します。

この手順を完了するには、[Domain Admins] または [Account Operators] のメンバーシップ、あるいは msDS-GroupManagedServiceAccount オブジェクトを管理する権利が最低限必要です。 適切なアカウントおよびグループ メンバーシップの使用方法の詳細については、「ローカルおよびドメインの既定のグループ」を参照してください。

PowerShell を使用してメンバー ホストを追加する

  1. Windows Server 2012 ドメイン コントローラーのタスク バーから Windows PowerShell を実行します。

  2. Windows PowerShell Active Directory モジュールのコマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します。

    Get-ADServiceAccount [-Identity] <string> -Properties PrincipalsAllowedToRetrieveManagedPassword

  3. Windows PowerShell Active Directory モジュールのコマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します。

    Set-ADServiceAccount [-Identity] <string> -PrincipalsAllowedToRetrieveManagedPassword <ADPrincipal[]>

次の例では、表のパラメーターを使用して、サーバー ファームにメンバーを追加します。

パラメーター String
名前 アカウントの名前 ITFarm1
PrincipalsAllowedToRetrieveManagedPassword メンバー ホストのコンピューター アカウントまたはメンバー ホストが属するセキュリティ グループ Host1、Host2、Host3

次の例では、ファーム (ITFarm1) の現在のメンバーを取得します。

Get-ADServiceAccount [-Identity] ITFarm1 -Properties PrincipalsAllowedToRetrieveManagedPassword

次の例では、既存のサーバー ファーム (ITFarm1) にメンバー ホストを追加します。

Set-ADServiceAccount [-Identity] ITFarm1 -PrincipalsAllowedToRetrieveManagedPassword Host1$,Host2$,Host3$

グループの管理されたサービス アカウント プロパティの更新

これらの手順を完了するには、[Domain Admins] または [Account Operators] のメンバーシップ、あるいは msDS-GroupManagedServiceAccount オブジェクトを書き込む権利が最低限必要です。

Windows PowerShell の Active Directory モジュールを開き、Set-ADServiceAccount コマンドレットを使用してプロパティを設定します。

これらのプロパティの設定方法の詳細については、TechNet ライブラリの「Set-ADServiceAccount」を参照してください。または、Windows PowerShell の Active Directory モジュールのコマンド プロンプトに「Get-Help Set-ADServiceAccount」と入力し、ENTER キーを押してください。

既存のサーバー ファームからメンバー ホストを削除する

これらの手順を完了するには、[Domain Admins] のメンバーシップか、またはセキュリティ グループ オブジェクトからメンバーを削除する権利が最低限必要です。

メンバー ホストの管理にセキュリティ グループを使用する場合は、次のいずれかの方法を使用してセキュリティ グループ (gMSA のメンバー ホストがメンバーである) から使用停止にされたメンバー ホストのコンピューター アカウントを削除します。

コンピューター アカウントを一覧する場合は、既存のコンピューター アカウントを検索し、削除されたものを除くすべてのコンピューター アカウントを追加します。

この手順を完了するには、[Domain Admins] または [Account Operators] のメンバーシップ、あるいは msDS-GroupManagedServiceAccount オブジェクトを管理する権利が最低限必要です。 適切なアカウントおよびグループ メンバーシップの使用方法の詳細については、「ローカルおよびドメインの既定のグループ」を参照してください。

PowerShell を使用してメンバー ホストを削除する

  1. Windows Server 2012 ドメイン コントローラーのタスク バーから Windows PowerShell を実行します。

  2. Windows PowerShell Active Directory モジュールのコマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します。

    Get-ADServiceAccount [-Identity] <string> -Properties PrincipalsAllowedToRetrieveManagedPassword

  3. Windows PowerShell Active Directory モジュールのコマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します。

    Set-ADServiceAccount [-Identity] <string> -PrincipalsAllowedToRetrieveManagedPassword <ADPrincipal[]>

次の例では、表のパラメーターを使用して、サーバー ファームのメンバーを削除します。

パラメーター String
名前 アカウントの名前 ITFarm1
PrincipalsAllowedToRetrieveManagedPassword メンバー ホストのコンピューター アカウントまたはメンバー ホストが属するセキュリティ グループ Host1、Host3

次の例では、ファーム (ITFarm1) の現在のメンバーを取得します。

Get-ADServiceAccount [-Identity] ITFarm1 -Properties PrincipalsAllowedToRetrieveManagedPassword

次の例では、既存のサーバー ファーム (ITFarm1) からメンバー ホストを削除します。

Set-ADServiceAccount [-Identity] ITFarm1 -PrincipalsAllowedToRetrieveManagedPassword Host1$,Host3$

システムからグループの管理されたサービス アカウントを削除する

ホスト システム上で Uninstall-ADServiceAccount または NetRemoveServiceAccount API を使用して、キャッシュされた gMSA 資格情報をメンバー ホストから削除します。

これらの手順を完了するには、[Administrators] のメンバーシップ、またはそれと同等のメンバーシップが最低限必要です。

PowerShell を使用して gMSA を削除する

  1. Windows Server 2012 ドメイン コントローラーのタスク バーから Windows PowerShell を実行します。

  2. Windows PowerShell Active Directory モジュールのコマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します。

    Uninstall-ADServiceAccount <ADServiceAccount>

    次の例では、Active Directory の管理されたサービス アカウントをコンピューターからアンインストールします。

    Uninstall-ADServiceAccount ITFarm1
    

Uninstall-ADServiceAccount コマンドレットの詳細については、Windows PowerShell の Active Directory モジュールのコマンド プロンプトで、「 Get-Help Uninstall-ADServiceAccount」と入力し、ENTER キーを押すか、または TechNet Web の「 Uninstall-ADServiceAccount」に掲載された情報を参照してください。