受信信頼ベースのフローで Microsoft Entra ID の Windows 認証を設定する方法
この記事では、Windows 10、Windows Server 2012、またはそれ以降のバージョンのWindowsを実行している Active Directory (AD) 参加クライアントが、Windows 認証を使用して Azure SQL Managed Instance に認証するための受信信頼ベースの認証フローの実装方法について説明します。
また、この記事では、Microsoft Entra ID (旧 Azure Active Directory) のサービスアカウントと信頼されたドメイン オブジェクト向けに Kerberos Key をローテーションする手順、および必要に応じて、信頼されたドメインオブジェクトとすべての Kerberos 設定を削除する手順についても説明します。
受信信頼ベースの認証フローを有効にするのは、Microsoft Entra ID と Kerberos を使用した Azure SQL Managed Instance の Windows 認証を設定するステップの 1 つです。 最新の対話型フローは、Windows 10 20H1、Windows Server 2022、またはそれ以降のバージョンの Windows を実行している対応クライアントで使用できます。
Note
Microsoft Entra ID の、旧称は Azure Active Directory(Azure AD)です。
アクセス許可
この記事の手順を完了するには、次のものが必要です。
- オンプレミスの Active Directory 管理者のユーザー名とパスワード。
- Microsoft Entra グローバル管理者アカウントのユーザー名とパスワード。
前提条件
受信信頼ベースの認証フローを実装するには、まず次の前提条件が満たされていることを確認します。
前提条件 | 説明 |
---|---|
クライアントは、Windows 10、Windows Server 2012、またはそれ以降のバージョンの Windows を実行している必要があります。 | |
クライアントは AD に参加している必要があります。 ドメインの機能レベルは Windows Server 2012 以上である必要があります。 | dsregcmd コマンドを実行して、クライアントが AD に参加しているかどうかを確認できます。dsregcmd.exe /status |
Azure AD ハイブリッド認証管理モジュール。 | この PowerShell モジュールは、オンプレミスのセットアップのための管理機能を提供します。 |
Azure テナント。 | |
認証に使用する予定の同じ Microsoft Entra テナントにある Azure サブスクリプション。 | |
Microsoft Entra Connect がインストールされていること。 | Microsoft Entra ID と AD の両方に ID が存在するハイブリッド環境。 |
Azure AD Kerberos 信頼されたドメイン オブジェクトの作成と構成
Azure AD Kerberos 信頼されたドメイン オブジェクトを作成し構成するには、Azure AD ハイブリッド認証管理 PowerShell モジュールをインストールします。
次に、Azure AD ハイブリッド認証管理 PowerShell モジュールを使用して、オンプレミスの AD ドメインに信頼されたドメイン オブジェクトを設定し、Microsoft Entra ID に信頼情報を登録します。 これにより、オンプレミスの AD に対する受信方向の信頼関係が作成され、Microsoft Entra ID がオンプレミスの AD を信頼できるようになります。
信頼されたドメイン オブジェクトを設定する
信頼されたドメイン オブジェクトを設定するには、まず Azure AD ハイブリッド認証管理 PowerShell モジュールをインストールします。
Azure AD ハイブリッド認証管理 PowerShell モジュールをインストールします
[管理者として実行] オプションを使用して Windows PowerShell セッションを開始します。
次のスクリプトを使用して Azure AD ハイブリッド認証管理 PowerShell モジュールをインストールします。 スクリプトは次のようになります。
- 通信に対して TLS 1.2 を有効にします。
- NuGet パッケージ プロバイダーをインストールします。
- PSGallery リポジトリを登録します。
- PowerShellGet モジュールをインストールします。
- Azure AD ハイブリッド認証管理 PowerShell モジュールをインストールします。
- Azure AD ハイブリッド認証管理 PowerShell は、高度なMicrosoft Entra 管理機能を提供する AzureADPreview モジュールを使用します。
- Azure AD PowerShell モジュールとの不必要なインストールの競合を防ぐために、このコマンドには – AllowClobber option フラグが含まれています。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -Force
if (@(Get-PSRepository | Where-Object { $_.Name -eq "PSGallery" }).Count -eq -1) {
Register-PSRepository -Default
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
}
Install-Module -Name PowerShellGet -Force
Install-Module -Name AzureADHybridAuthenticationManagement -AllowClobber
信頼されたドメイン オブジェクトを作成する
[管理者として実行] オプションを使用して Windows PowerShell セッションを開始します。
共通のパラメーターを設定します。 次のスクリプトを実行する前にカスタマイズします。
$domain
パラメーターをオンプレミスの Active Directory ドメイン名に設定します。Get-Credential
のダイアログが表示された場合、オンプレミスの Active Directory 管理者のユーザー名とパスワードを入力します。$cloudUserName
パラメーターを Microsoft Entra クラウドアクセス用のグローバル管理者特権のあるアカウントのユーザー名に設定します。
Note
オンプレミスの Active Directory アクセスに現在の Windows ログインアカウントを使用する場合は、資格情報が
$domainCred
パラメーターに割り当てられる手順を省略できます。 このアプローチを採用する場合は、この手順の後の PowerShell コマンドに-DomainCredential
パラメーターを含めないでください。$domain = "your on-premesis domain name, for example contoso.com" $domainCred = Get-Credential $cloudUserName = "Azure AD user principal name, for example admin@contoso.onmicrosoft.com"
現在の Kerberos ドメイン設定を確認してください。
次のコマンドを実行して、ドメインの現在の Kerberos 設定を確認します。
Get-AzureAdKerberosServer -Domain $domain ` -DomainCredential $domainCred ` -UserPrincipalName $cloudUserName
Microsoft Entra Kerberos コマンドを初めて呼び出す場合は、Microsoft Entra クラウド へのアクセスを求められます。
- Microsoft Entra テナントのグローバル管理者アカウントのパスワードを入力します。
- 組織で Microsoft Entra 多要素認証やスマートカードなどの他の最新の認証方法を使用している場合は、要求された手順に従ってサインインしてください。
Microsoft Entra Kerberos 設定を初めて構成する場合は、次のサンプル出力に示すように、 Get-AzureAdKerberosServer コマンドレットによって空の情報が表示されます。
ID : UserAccount : ComputerAccount : DisplayName : DomainDnsName : KeyVersion : KeyUpdatedOn : KeyUpdatedFrom : CloudDisplayName : CloudDomainDnsName : CloudId : CloudKeyVersion : CloudKeyUpdatedOn : CloudTrustDisplay :
ドメインが既に FIDO 認証をサポートしている場合は、次のサンプル出力のように、
Get-AzureAdKerberosServer
コマンドレットによって Microsoft Entra サービス アカウント情報が表示されます。CloudTrustDisplay
フィールドが空の値を返します。ID : 25614 UserAccount : CN=krbtgt-AzureAD, CN=Users, DC=aadsqlmi, DC=net ComputerAccount : CN=AzureADKerberos, OU=Domain Controllers, DC=aadsqlmi, DC=net DisplayName : krbtgt_25614 DomainDnsName : aadsqlmi.net KeyVersion : 53325 KeyUpdatedOn : 2/24/2022 9:03:15 AM KeyUpdatedFrom : ds-aad-auth-dem.aadsqlmi.net CloudDisplayName : krbtgt_25614 CloudDomainDnsName : aadsqlmi.net CloudId : 25614 CloudKeyVersion : 53325 CloudKeyUpdatedOn : 2/24/2022 9:03:15 AM CloudTrustDisplay :
信頼されたドメイン オブジェクトを追加してください。
Set-AzureAdKerberosServer PowerShell コマンドレットを実行して、信頼されたドメイン オブジェクトを追加します。
-SetupCloudTrust
パラメーターを必ず含めてください。 Microsoft Entra サービス アカウントがない場合、このコマンドは新しい Microsoft Entra サービス アカウントを作成します。 このコマンドは、Microsoft Entra サービス アカウントがある場合にのみ、要求された信頼される側のドメイン オブジェクトを作成します。Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $cloudUserName -DomainCredential $domainCred -SetupCloudTrust
Note
複数ドメイン フォレストで、子ドメインでコマンドを実行するときにエラー LsaCreateTrustedDomainEx 0x549 を回避するには:
- ルート ドメインでコマンドを実行します (
-SetupCloudTrust
パラメーターを含めます)。 - 子ドメインで、
-SetupCloudTrust
パラメーターを指定せずに同じコマンドを実行します。
信頼されたドメイン オブジェクトを作成した後、前の手順で示したように、
Get-AzureAdKerberosServer
PowerShell コマンドレットを使用して、更新された Kerberos 設定を確認できます。-SetupCloudTrust
パラメーターを指定したSet-AzureAdKerberosServer
コマンドレットが正常に実行された場合、CloudTrustDisplay
フィールドは、次のサンプル出力のように、Microsoft.AzureAD.Kdc.Service.TrustDisplay
を返します。ID : 25614 UserAccount : CN=krbtgt-AzureAD, CN=Users, DC=aadsqlmi, DC=net ComputerAccount : CN=AzureADKerberos, OU=Domain Controllers, DC=aadsqlmi, DC=net DisplayName : krbtgt_25614 DomainDnsName : aadsqlmi.net KeyVersion : 53325 KeyUpdatedOn : 2/24/2022 9:03:15 AM KeyUpdatedFrom : ds-aad-auth-dem.aadsqlmi.net CloudDisplayName : krbtgt_25614 CloudDomainDnsName : aadsqlmi.net CloudId : 25614 CloudKeyVersion : 53325 CloudKeyUpdatedOn : 2/24/2022 9:03:15 AM CloudTrustDisplay : Microsoft.AzureAD.Kdc.Service.TrustDisplay
Note
Azure ソブリン クラウドの場合、
TopLevelNames
プロパティを設定する必要があります。これは既定ではwindows.net
に設定されています。 SQL Managed Instance の Azure ソブリン クラウド デプロイには、Azure US Government のusgovcloudapi.net
のように、異なる最上位レベル ドメイン名が使われます。 次の PowerShell コマンドを使って、信頼されるドメイン オブジェクトをその最上位レベル ドメイン名に設定します:Set-AzureADKerberosServer -Domain $domain -DomainCredential $domainCred -CloudCredential $cloudCred -SetupCloudTrust -TopLevelNames "usgovcloudapi.net,windows.net"
。 次の PowerShell コマンドを使って設定を確認することができます:Get-AzureAdKerberosServer -Domain $domain -DomainCredential $domainCred -UserPrincipalName $cloudUserName | Select-Object -ExpandProperty CloudTrustDisplay
。- ルート ドメインでコマンドを実行します (
グループ ポリシー オブジェクト (GPO) を構成する
Microsoft Entra テナント ID を確認します。
受信信頼ベースのフローを使用して、次のグループポリシー設定をクライアントマシンにデプロイします。
「管理用テンプレート\システム\KERBEROS\Kerberos クライアントのKDC プロキシ サーバーの指定」ポリシー設定を編集します。
[Enabled] を選択します。
[オプション] で [表示] を選択すると、[内容の表示] ダイアログ ボックスが開きます。
次のように、マッピングを使用して KDC プロキシサーバーの設定を定義します。
your_Azure_AD_tenant_id
プレースホルダーを Microsoft Entra テナント ID に置き換えます。 値のマッピングにおいて、https
に続くスペースと末尾の/
の前のスペースに注意してください。値の名前 値 KERBEROS.MICROSOFTONLINE.COM <https login.microsoftonline.com:443: your_Azure_AD_tenant_id
/kerberos />[OK] を選択して [内容の表示] ダイアログ ボックスを閉じます。
[Kerberos クライアントの KDC プロキシサーバーを指定する] ダイアログボックスで [適用] を選択します。
Kerberos Key のローテーション
管理目的で、作成した Microsoft Entra サービス アカウントと信頼される側のドメイン オブジェクトの Kerberos キーを定期的にローテーションする場合があります。
Set-AzureAdKerberosServer -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName -SetupCloudTrust `
-RotateServerKey
キーがローテーションされると、Kerberos KDC サーバー間で変更されたキーが伝達されるまでに数時間かかります。 このキー配布のタイミングにより、24時間以内に 1 回のみキーをローテーションすることができます。 信頼されたドメイン オブジェクトを作成した直後など、何らかの理由で24時間以内にキーをもう一度ローテーションする必要がある場合は、-Force
パラメーターを追加します。
Set-AzureAdKerberosServer -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName -SetupCloudTrust `
-RotateServerKey -Force
信頼されたドメイン オブジェクトを削除する
次のコマンドを使用して、追加された信頼されたドメイン オブジェクトを削除できます。
Remove-AzureADKerberosServerTrustedDomainObject -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName
このコマンドは、信頼されたドメインオブジェクトのみを削除します。 ドメインが FIDO 認証をサポートしている場合は、FIDO 認証サービスに必要な Microsoft Entra サービス アカウントを維持したまま、信頼されたドメイン オブジェクトを削除できます。
すべての Kerberos 設定を削除する
次のコマンドを使用して、Microsoft Entra サービス アカウントと信頼されたドメイン オブジェクトの両方を削除できます。
Remove-AzureAdKerberosServer -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName