通常、Kerberos 委任を使用する場合は、setspn.exe コマンドを使用するか、Active Directory ユーザーとコンピューター で属性エディターを使用して手動でサービス プリンシパル名 (SPN) を設定します。 さらに、Active Directory ユーザーとコンピューターで ビュー>Advanced 機能 を有効にすると、ユーザーまたはコンピューター アカウントの [委任] タブから Kerberos 委任 を構成する別の方法が追加されます。
ただし、スタンドアロンおよびグループ管理サービス アカウントの場合、これらのアカウントに SPN を追加したり、ビュー>を有効にした後でも、[委任] タブは表示されません。
これらの特別なアカウントの委任を構成するには、正しい属性を手動で設定する必要があります。 これらのアカウントには、次の 2 つの属性を変更する必要があります:
- userAccountControl は委任の種類を定義します
- msDS-AllowedToDelegateTo は、委任の SPN が追加される場所を定義します
これらの属性は、さまざまな方法で設定できます:
- PowerShell の使用
- userAccountControl 値を手動で更新する
PowerShell コマンドを使う
より安全で便利な方法は、PowerShell コマンドを使用してそれらの属性を更新する方法です。 PowerShell を使用する場合、最終的な userAccountControl 値を計算する必要はありません。 さまざまな種類の委任を有効にするコマンドを次に示します:
委任のためにこのコンピューターを信頼しないでください
Set-ADAccountControl -Identity TestgMSA$ -TrustedForDelegation $false -TrustedToAuthForDelegation $false Set-ADServiceAccount -Identity TestgMSA$ -Clear 'msDS-AllowedToDelegateTo'
制約のない委任/任意のサービスへの委任に対してこのコンピューターを信頼する
Set-ADAccountControl -Identity TestgMSA$ -TrustedForDelegation $true -TrustedToAuthForDelegation $false Set-ADServiceAccount -Identity TestgMSA$ -Clear 'msDS-AllowedToDelegateTo'
Kerberos の制約付き委任/指定されたサービスへの委任に対してのみこのコンピューターを信頼する (Kerberos のみ使用)
Set-ADAccountControl -Identity TestgMSA$ -TrustedForDelegation $false -TrustedToAuthForDelegation $false
msDS-AllowedToDelegateTo 属性でバックエンド サービス SPN を更新します。
Kerberos の制約付き委任とプロトコルの移行/指定されたサービスへの委任に対してのみこのコンピューターを信頼する (任意の認証プロトコルを使用)
Set-ADAccountControl -Identity TestgMSA$ -TrustedForDelegation $false -TrustedToAuthForDelegation $true
msDS-AllowedToDelegateTo 属性でバックエンド サービス SPN を更新します。
userAccountControl 値を手動で更新する
属性を変更する最も簡単な方法の一部は、Active Directory ユーザーとコンピューターで View>Advanced 機能 を有効にするか、ADSIEdit.msc を使用することです。
さまざまな種類の委任に追加できる userAccountControl 値を次に示します。 この属性値を編集する際は注意し、TRUSTED_FOR_DELEGATION フラグまたは TRUSTED_TO_AUTH_FOR_DELEGATION フラグだけが追加され、その他のプロパティが変更されない必要があります。 また、両方のフラグが管理されたサービス アカウントの userAccountControl 値に追加されていないか確認してください。
委任の種類 | プロパティのフラグ | 16 進数の値 | 10 進数の値 |
---|---|---|---|
制約なしの委任/このコンピューターを任意のサービスに委任するために信頼する | 委任のために信頼されています | 0x80000 | 524288 |
Kerberos の制約付き委任/指定されたサービスへの委任にのみこのコンピューターを信頼する (Kerberos のみ使用) | 変更なし | 変更なし | 変更なし |
Kerberos のプロトコル遷移による制約付き委任/指定されたサービスへの委任にのみこのコンピューターを信頼する (任意の認証プロトコルを使用) | TRUSTED_TO_AUTH_FOR_DELEGATION | 0x1000000 | 16777216 |
userAccountControl の値を手動で更新する場合は、新しい値が既存の値と一緒に追加されますが、置き換えは行えない必要があります。 たとえば、UAC の現在の値が 4096 (16 進数 0x1000)、つまり WORKSTATION_TRUST_ACCOUNT であると考えてください。
制約のない委任 (セキュリティで保護されていない) を有効にするには、TRUSTED_FOR_DELEGATIONの userAccountControl 値と既存の値を追加する必要があります。 UAC の値は、0x81000 (0x1000 + 0x80000)、つまり WORKSTATION_TRUST_ACCOUNT および TRUSTED_FOR_DELEGATION である必要があります。
間違っていくつかの SPN を追加した場合、またはアカウントの委任リストから一部の SPN を削除する場合は、アカウントの 属性 msDS-AllowedToDelegateTo を手動で編集できます。 この方法は、任意のユーザーまたはコンピューター アカウントに適用できます。