Microsoft Entra ハイブリッド参加を手動で構成する

Microsoft Entra Connect の使用がオプションの場合は、「Microsoft Entra ハイブリッド参加を構成する」のガイダンスを参照してください。 Microsoft Entra Connect で自動化を使用すると、Microsoft Entra ハイブリッド参加の構成が大幅に簡略化されます。

この記事では、マネージドおよびフェデレーション ドメインのための手順を含め、Microsoft Entra ハイブリッド参加の要件の手動構成について説明します。

前提条件

  • Microsoft Entra Connect
    • デバイス登録構成の過程でデバイス登録の同期参加を成功させるには、Microsoft Entra Connect 同期構成から既定のデバイスの属性を除外しないでください。 Microsoft Entra ID と同期される既定のデバイス属性について詳しくは、Microsoft Entra Connect によって同期される属性に関するセクションを参照してください。
    • Microsoft Entra ハイブリッド参加にしたいデバイスのコンピューター オブジェクトが、特定の組織単位 (OU) に属している場合は、Microsoft Entra Connect で同期する正しい OU を構成します。 Microsoft Entra Connect を使用してコンピューター オブジェクトを同期する方法の詳細については、「組織単位ベースのフィルタリング」を参照してください。
  • オンプレミスの Active Directory Domain Services フォレストごとの、エンタープライズ管理者の資格情報。
  • (フェデレーション ドメインの場合) Active Directory フェデレーション サービス (AD FS) がインストールされた Windows Server。
  • ユーザーは、Microsoft Entra ID を使用してデバイスを登録できます。 この設定の詳細情報については、デバイス設定の構成に関する記事の「デバイス設定の構成」の見出しの下にあります。

Microsoft Entra ハイブリッドの参加では、デバイスが組織のネットワーク内から次の Microsoft リソースにアクセスできる必要があります。

  • https://enterpriseregistration.windows.net
  • https://login.microsoftonline.com
  • https://device.login.microsoftonline.com
  • https://autologon.microsoftazuread-sso.com (シームレス シングル サインオンを使用しているか、使用する予定の場合)
  • 組織のセキュリティ トークン サービス (STS) (フェデレーション ドメインの場合)

警告

データ損失防止や Microsoft Entra テナントの制限などのシナリオで SSL トラフィックを傍受するプロキシ サーバーを組織で使用している場合、それらの URL へのトラフィックが TLS の中断と検査から除外されていることを確認してください。 これらの URL を除外しないと、クライアント証明書の認証に干渉し、デバイス登録とデバイスベースの条件付きアクセスに問題が発生する可能性があります。

組織がアウトバウンド プロキシ経由でのインターネットへのアクセスを必要とする場合は、Windows 10 以降のコンピューターを Microsoft Entra ID にデバイス登録できるように、Web プロキシ自動発見 (WPAD) を使用することができます。 WPAD の構成と管理の問題に対処するには、「自動検出のトラブルシューティング」を参照してください。

WPAD を使用しない場合は、Windows 10 1709 以降のコンピューター上で WinHTTP プロキシ設定を構成できます。 詳細については、グループ ポリシー オブジェクト (GPO) によってデプロイされる WinHTTP プロキシ設定に関する記事を参照してください。

Note

WinHTTP 設定を使用して自分のコンピューター上でプロキシ設定を構成すると、構成されたプロキシに接続できないコンピューターは、インターネットに接続できなくなります。

組織が認証されたアウトバウンド プロキシ経由でのインターネットへのアクセスを必要とする場合、お使いの Windows 10 以降のコンピューターがアウトバウンド プロキシに対して正常に認証されることを確認してください。 Windows 10 以降のコンピューターではマシン コンテキストを使用してデバイス登録が実行されるため、マシン コンテキストを使用してアウトバウンド プロキシ認証を構成します。 構成要件については、送信プロキシ プロバイダーに確認してください。

デバイス登録接続のテストのスクリプトを使用して、デバイスがシステム アカウントで必要な Microsoft リソースにアクセスできることを確認します。

構成

Microsoft Entra ハイブリッド参加済みデバイスは、さまざまな種類の Windows デバイス プラットフォームで構成できます。

これらの構成が完了したら、ガイダンスに従って登録を確認します

サービス接続ポイントの構成

デバイスでは、登録中に Microsoft Entra テナント情報を検出するために、サービス接続ポイント (SCP) オブジェクトを使用します。 オンプレミスの Active Directory インスタンスでは、Microsoft Entra ハイブリッド参加済みデバイスの SCP オブジェクトが、コンピューターのフォレストの構成名前付けコンテキストのパーティションに存在する必要があります。 各フォレストには、構成名前付けコンテキストが 1 つだけあります。 複数フォレストの Active Directory 構成では、ドメイン参加済みコンピューターが含まれているすべてのフォレストにサービス接続ポイントが存在している必要があります。

SCP オブジェクトには、2 つのキーワード値 azureADid:<TenantID>azureADName:<verified domain> が含まれています。 azureADName キーワードの <verified domain> 値は、オンプレミスの Active Directory インスタンスから SCP 値を読み取った後にデバイスが従うデバイス登録フローの種類 (フェデレーションまたはマネージド) を指定します。 マネージド フローとフェデレーション フローの詳細については、Microsoft Entra デバイスの登録のしくみに関する記事を参照してください。

フォレストの構成名前付けコンテキストを取得するには、Get-ADRootDSE コマンドレットを使用することができます。

Active Directory ドメイン名が fabrikam.com であるフォレストの場合、構成名前付けコンテキストは次のようになります。

CN=Configuration,DC=fabrikam,DC=com

フォレストで、ドメイン参加済みデバイスの自動登録の SCP オブジェクトは、次の場所にあります。

CN=62a0ff2e-97b9-4513-943f-0d221bd30080,CN=Device Registration Configuration,CN=Services,[Your Configuration Naming Context]

Microsoft Entra Connect のデプロイ方法によっては、SCP オブジェクトが既に構成されている場合があります。 次の PowerShell スクリプトを使って、オブジェクトの存在を確認し、検出値を取得することができます。

$scp = New-Object System.DirectoryServices.DirectoryEntry;

$scp.Path = "LDAP://CN=62a0ff2e-97b9-4513-943f-0d221bd30080,CN=Device Registration Configuration,CN=Services,CN=Configuration,DC=fabrikam,DC=com";

$scp.Keywords;

$scp.Keywords の出力は、Microsoft Entra テナント情報を示します。 次に例を示します。

azureADName:microsoft.com
azureADId:72f988bf-86f1-41af-91ab-2d7cd011db47

要求の発行の設定

Microsoft Entra のフェデレーション構成では、Microsoft Entra ID に対するデバイスの認証に AD FS または Microsoft パートナーが提供するオンプレミスのフェデレーション サーバーが使用されます。 デバイスは、Microsoft Entra Device Registration Service (Azure DRS) に登録するためのアクセス トークンを取得するために、認証を行います。

最新の Windows デバイスは、統合 Windows 認証を使用して、オンプレミス フェデレーション サービスによってホストされているアクティブな WS-Trust エンドポイント (1.3 または 2005 バージョン) に対する認証を行います。

AD FS を使用している場合は、次の WS-Trust エンドポイントを有効にする必要があります。

  • /adfs/services/trust/2005/windowstransport
  • /adfs/services/trust/13/windowstransport
  • /adfs/services/trust/2005/usernamemixed
  • /adfs/services/trust/13/usernamemixed
  • /adfs/services/trust/2005/certificatemixed
  • /adfs/services/trust/13/certificatemixed

警告

adfs/services/trust/2005/windowstransportadfs/services/trust/13/windowstransport はどちらも、イントラネットに接続するエンドポイントとしてのみ有効にする必要があります。Web アプリケーション プロキシを介してエクストラネットに接続するエンドポイントとしては公開しないでください。 WS-Trust WIndows エンドポイントを無効にする方法の詳細については、プロキシの WS-Trust Windows エンドポイントを無効にする方法に関するセクションを参照してください。 どのエンドポイントが有効になっているかは、AD FS 管理コンソールの [サービス]>[エンドポイント] で確認できます。

Note

オンプレミス フェデレーション サービスとして AD FS を使用していない場合は、ベンダーの指示に従って、WS-Trust 1.3 または 2005 のエンドポイントがサポートされていることと、それらが Metadata Exchange ファイル (MEX) を通じて公開されていることを確認してください。

デバイス登録を完了するには、Azure DRS で受信されるトークンに次の要求が存在する必要があります。 Azure DRS は、この情報の一部を使用して Microsoft Entra ID にデバイス オブジェクトを作成します。 その後、この情報は、新たに作成されたデバイス オブジェクトをオンプレミスのコンピューター アカウントに関連付けるために、Microsoft Entra Connect によって使用されます。

  • http://schemas.microsoft.com/ws/2012/01/accounttype
  • http://schemas.microsoft.com/identity/claims/onpremobjectguid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid

複数の検証済みドメイン名が必要な場合は、コンピューターに次の要求を提供する必要があります。

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid

既に ImmutableID 要求 (たとえば、ImmutableID のソース値として mS-DS-ConsistencyGuid または別の属性を使用して) を発行している場合は、コンピューターに対応する要求を 1 つ提供する必要があります。

  • http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID

以降のセクションでは、以下のものについて説明します。

  • 各要求に必要な値。
  • AD FS で定義がどのように表示されるか。

定義によって、値が存在しているかどうかや、値を作成する必要があるかどうかを確認することができます。

Note

オンプレミスのフェデレーション サーバーに AD FS を使用しない場合は、ベンダーの指示に従って、これらの要求を発行するための適切な構成を作成してください。

アカウントの種類の要求を発行する

http://schemas.microsoft.com/ws/2012/01/accounttype 要求には、DJ という値が含まれている必要があります。この値により、デバイスがドメイン参加済みコンピューターと識別されます。 AD FS では、次のような発行変換規則を追加できます。

@RuleName = "Issue account type for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "DJ"
);

オンプレミスのコンピューター アカウントの objectGUID を発行する

http://schemas.microsoft.com/identity/claims/onpremobjectguid 要求には、オンプレミスのコンピューター アカウントの objectGUID 値が含まれている必要があります。 AD FS では、次のような発行変換規則を追加できます。

@RuleName = "Issue object GUID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$", 
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/identity/claims/onpremobjectguid"),
   query = ";objectguid;{0}",
   param = c2.Value
);

オンプレミスのコンピューター アカウントの objectSid を発行する

http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid 要求には、オンプレミスのコンピューター アカウントの objectSid 値が含まれている必要があります。 AD FS では、次のような発行変換規則を追加できます。

@RuleName = "Issue objectSID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(claim = c2);

Microsoft Entra ID に複数の検証済みドメイン名があるときにコンピューターの issuerID を発行する

http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid 要求には、トークンを発行しているオンプレミスのフェデレーション サービス (AD FS またはパートナー) と接続するいずれかの検証済みドメイン名の Uniform Resource Identifier (URI) が含まれている必要があります。 AD FS では、次のような発行変換規則を、上記の規則の後に特定の順序で追加できます。 ユーザーに対する規則を明示的に発行する、1 つの規則が必要です。 次の規則では、コンピューターの認証ではなく、ユーザーを識別する最初の規則が追加されます。

@RuleName = "Issue account type with the value User when its not a computer"
NOT EXISTS(
[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "DJ"
]
)
=> add(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "User"
);

@RuleName = "Capture UPN when AccountType is User and issue the IssuerID"
c1:[
   Type == "http://schemas.xmlsoap.org/claims/UPN"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "User"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = regexreplace(
   c1.Value,
   ".+@(?<domain>.+)",
   "http://${domain}/adfs/services/trust/"
   )
);

@RuleName = "Issue issuerID for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = "http://<verified-domain-name>/adfs/services/trust/"
);

上記の要求にある <verified-domain-name> はプレースホルダーです。 これを、Microsoft Entra ID の検証済みドメイン名のいずれかに置き換えます。 たとえば、 Value = "http://contoso.com/adfs/services/trust/"を使用します。

検証済みドメイン名の詳細については、「Microsoft Entra ID へのカスタム ドメイン名の追加」を参照してください。

確認済みの会社のドメインの一覧を取得するには、Get-MgDomain コマンドレットを使用できます。

会社のドメインの一覧

ユーザーの ImmutableID が存在する場合は、コンピューターの ImmutableID を発行します (たとえば、mS-DS-ConsistencyGuid を ImmutableID のソースとして使用します)

http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID 要求には、コンピューターに有効な値が含まれている必要があります。 AD FS では、次のような発行変換規則を作成することができます。

@RuleName = "Issue ImmutableID for computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID"),
   query = ";objectguid;{0}",
   param = c2.Value
);

AD FS 発行変換規則を作成するヘルパー スクリプト

次のスクリプトは、前に説明した発行変換規則の作成に役立ちます。

$multipleVerifiedDomainNames = $false
$immutableIDAlreadyIssuedforUsers = $false
$oneOfVerifiedDomainNames = 'example.com'   # Replace example.com with one of your verified domains

$rule1 = '@RuleName = "Issue account type for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "DJ"
);'

$rule2 = '@RuleName = "Issue object GUID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/identity/claims/onpremobjectguid"),
   query = ";objectguid;{0}",
   param = c2.Value
);'

$rule3 = '@RuleName = "Issue objectSID for domain-joined computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(claim = c2);'

$rule4 = ''
if ($multipleVerifiedDomainNames -eq $true) {
$rule4 = '@RuleName = "Issue account type with the value User when it is not a computer"
NOT EXISTS(
[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "DJ"
]
)
=> add(
   Type = "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value = "User"
);

@RuleName = "Capture UPN when AccountType is User and issue the IssuerID"
c1:[
   Type == "http://schemas.xmlsoap.org/claims/UPN"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2012/01/accounttype",
   Value == "User"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = regexreplace(
   c1.Value,
   ".+@(?<domain>.+)",
   "http://${domain}/adfs/services/trust/"
   )
);

@RuleName = "Issue issuerID for domain-joined computers"
c:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid",
   Value = "http://' + $oneOfVerifiedDomainNames + '/adfs/services/trust/"
);'
}

$rule5 = ''
if ($immutableIDAlreadyIssuedforUsers -eq $true) {
$rule5 = '@RuleName = "Issue ImmutableID for computers"
c1:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid",
   Value =~ "-515$",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
&&
c2:[
   Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
   Issuer =~ "^(AD AUTHORITY|SELF AUTHORITY|LOCAL AUTHORITY)$"
]
=> issue(
   store = "Active Directory",
   types = ("http://schemas.microsoft.com/LiveID/Federation/2008/05/ImmutableID"),
   query = ";objectguid;{0}",
   param = c2.Value
);'
}

$existingRules = (Get-ADFSRelyingPartyTrust -Identifier urn:federation:MicrosoftOnline).IssuanceTransformRules

$updatedRules = $existingRules + $rule1 + $rule2 + $rule3 + $rule4 + $rule5

$crSet = New-ADFSClaimRuleSet -ClaimRule $updatedRules

Set-AdfsRelyingPartyTrust -TargetIdentifier urn:federation:MicrosoftOnline -IssuanceTransformRules $crSet.ClaimRulesString

解説

  • このスクリプトは、既存の規則に規則を追加します。 このスクリプトは 2 回実行しないでください。規則のセットが 2 回追加されてしまいます。 スクリプトを再実行する前に、これらの要求に対応する規則が (対応する条件の下に) ないことを確認してください。

  • 複数の検証済みドメイン名がある場合は、スクリプトで $multipleVerifiedDomainNames の値を $true に設定します。 また、Microsoft Entra Connect やその他の方法で作成された既存の issuerid 要求を必ず削除します。 この規則の例を次に示します。

    c:[Type == "http://schemas.xmlsoap.org/claims/UPN"]
    => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)",  "http://${domain}/adfs/services/trust/")); 
    

ユーザー アカウントの ImmutableID 要求を発行した場合は、スクリプトの $immutableIDAlreadyIssuedforUsers の値を $true に設定します。

実装のトラブルシューティング

ドメイン参加済み Windows デバイスの Microsoft Entra ハイブリッド参加を行うときに問題が発生した場合は、以下を参照してください。