次の方法で共有


代替ログイン ID としてメール アドレスを使用して Microsoft Entra ID にサインインする (プレビュー)

注意

メールを代替ログイン ID としてMicrosoft Entra ID にサインインすることは、Microsoft Entra ID のパブリック プレビュー機能です。 詳細については、「Microsoft Azure プレビューの使用条件に関する補足」を参照してください。

多くの組織では、ユーザーがオンプレミス ディレクトリ環境と同じ認証情報を使用して Microsoft Entra ID にサインインできるようにしたいと考えています。 ハイブリッド認証と呼ばれるこの方法では、ユーザーは 1 組の認証情報を記憶しておくだけでよくなります。

一部の組織では、次の理由によりハイブリッド認証に移行していません。

  • 既定で、Microsoft Entra のユーザー プリンシパル名 (UPN) が、オンプレミス UPN と同じ値に設定されている。
  • Microsoft Entra UPN を変更すると、オンプレミス環境と Microsoft Entra 環境の間で不一致が生じ、特定のアプリケーションやサービスで問題が発生する可能性がある。
  • ビジネスまたはコンプライアンス上の理由により、組織では、Microsoft Entra ID へのサインインにオンプレミスの UPN を使用したくないと考えている。

ハイブリッド認証に移行するために、ユーザーが代替ログイン ID として各自のメール アドレスでサインインできるように、Microsoft Entra ID を設定できます。 たとえば、ContosoFabrikam にブランド変更した場合、従来の ana@contoso.com UPN でのサインインを続行するのではなく、代替ログイン ID としてメール アドレスを使用できます。 アプリケーションまたはサービスにアクセスするために、ユーザーは、UPN 以外のメール アドレス (ana@fabrikam.com など) を使用して Microsoft Entra ID にサインインします。

代替ログイン ID としてのメール アドレスの図。

この記事では、代替ログイン ID として電子メールを有効にして使用する方法について説明します。

開始する前に

代替ログイン ID としてのメール アドレスについて知る必要がある情報を次に示します。

  • この機能は、Microsoft Entra ID Free エディション以降で使用できます。

  • この機能を使用すると、クラウドで認証された Microsoft Entra ユーザーに対して、UPN に加え、ProxyAddresses を使用したサインインを有効にすることができます。 これが Microsoft Entra 企業間 (B2B) コラボレーションに適用される方法については、B2B のセクションで詳しく説明します。

  • ユーザーが UPN 以外のメール アドレスを使用してサインインすると、ID トークン内の unique_namepreferred_username のクレーム (存在する場合) では UPN 以外のメール アドレスが返されます。

    • 使用中の UPN 以外のメール アドレスが古くなった (ユーザーに属さなくなった) 場合、これらの要求は代わりに UPN を返します。
  • この機能では、パスワード ハッシュ同期 (PHS) またはパススルー認証 (PTA) による、マネージド認証がサポートされています。

  • この機能を設定するには、2 つのオプションがあります。

    • ホーム領域検出 (HRD) ポリシー - テナント全体に対して機能を有効にするには、このオプションを使用します。 少なくともアプリケーション管理者ロールが必要です。
    • 段階的ロールアウト ポリシー - 特定の Microsoft Entra グループで機能をテストするには、このオプションを使用します。 段階的なロールアウトで、セキュリティ グループを初めて追加する時点では、UX タイムアウトを回避するために、200 ユーザーに制限されます。グループを追加した後、必要に応じて、そのグループにさらにユーザーを直接追加できます。

    この機能を管理するには、全体管理者が必要です。

プレビューの制限事項

現在のプレビュー状態では、代替ログイン ID としてのメール アドレスに次の制限が適用されます。

  • ユーザー エクスペリエンス - UPN 以外のメール アドレスを使用してサインインした場合でも、ユーザーに UPN が表示される場合があります。 次のような動作の例が表示されます。

    • login_hint=<non-UPN email> を使用して Microsoft Entra サインインに誘導されたとき、UPN でサインインすることがユーザーに求められます。
    • ユーザーが UPN 以外のメール アドレスを使用してサインインし、間違ったパスワードを入力すると、[パスワードの入力] ページが UPN の表示に変わります。
    • Microsoft Office など、一部のマイクロソフトのサイトおよびアプリでは、右上に通常表示される [アカウント マネージャー] コントロールに、サインインに使用された UPN 以外のメール アドレスではなく、ユーザーの UPN が表示される場合があります。
  • 非対応のフロー - 現在、次のような一部のフローは、UPN 以外のメール アドレスとは互換性がありません。

    • Microsoft Entra ID 保護では、UPN 以外のメール アドレスは漏洩した資格情報のリスク検出と照合されません。 このリスク検出では、UPN を使用して、漏洩した認証情報を照合します。 詳細については、「方法: リスクを調査する方法」を参照してください。
    • ユーザーが UPN 以外のメール アドレスを使用してサインインしている場合、ユーザーは自分のパスワードを変更できません。 Microsoft Entra セルフサービス パスワード リセット (SSPR) は想定どおりに機能します。 SSPR 中に、ユーザーが UPN 以外のメール アドレスを使用して自分の ID を確認すると、UPN が表示される場合があります。
  • サポートされていないシナリオ - 次のシナリオはサポートされていません。 UPN 以外のメール アドレスを使用した次へのサインイン:

  • サポートされていないアプリ - unique_name または preferred_username クレームが不変であると想定する場合、または UPN などの特定のユーザー属性に常に一致する場合は、一部のサードパーティアプリケーションが期待どおりに動作しないことがあります。

  • ログ記録 - HRD ポリシーで機能の設定に加えた変更は、監査ログに明示的には表示されません。

  • 段階的ロールアウト ポリシー -次の制限は、段階的ロールアウト ポリシーを使用して機能が有効になっている場合にのみ適用されます。

    • この機能は、他の段階的ロールアウト ポリシーに含まれているユーザーに対しては想定どおりに機能しません。
    • 段階的ロールアウト ポリシーでは、機能ごとに最大 10 個のグループがサポートされます。
    • 段階的ロールアウト ポリシーでは、入れ子になったグループはサポートされていません。
    • 段階的ロールアウト ポリシーでは、動的メンバーシップ グループはサポートされていません。
    • グループ内の連絡先オブジェクトによって、段階的ロールアウト ポリシーへのグループの追加がブロックされます。
  • 重複値 - テナント内では、クラウド専用ユーザーの UPN が、オンプレミスのディレクトリから同期された別のユーザーのプロキシ アドレスと同じ値になる場合があります。 このシナリオでは、機能を有効にすると、クラウド専用のユーザーは UPN でサインインできなくなります。 この問題の詳細については、「トラブルシューティング」セクションを参照してください。

代替ログイン ID オプションの概要

Microsoft Entra ID にサインインするために、ユーザーは自分のアカウントを一意に識別する値を入力します。 これまでは、サインイン ID として使用できるのは Microsoft Entra UPN のみでした。

オンプレミスの UPN がユーザーの推奨されるサインイン メールである組織の場合、この方法は優れていました。 そうした組織では、Microsoft Entra UPN をオンプレミスの UPN とまったく同じ値に設定することで、ユーザーの一貫したサインイン環境を実現しています。

AD FS の代替ログイン ID

ただし、組織によっては、オンプレミスの UPN をサインイン ID として使用していません。 オンプレミス環境では、代替ログイン ID を使用してサインインできるようにローカル AD DS を構成しています。 Microsoft Entra ID でユーザーはその値を使用してサインインするよう求められるため、Microsoft Entra UPN をオンプレミスの UPN と同じ値に設定することはできません。

Microsoft Entra Connect の代替ログイン ID

この問題の一般的な回避策は、Microsoft Entra UPN を、ユーザーがサインインに使用することを想定しているメール アドレスに設定することでした。 この方法は有効ですが、結果的にオンプレミスの AD と Microsoft Entra ID で UPN が違うものになります。また、この構成はすべての Microsoft 365 ワークロードと互換性があるわけではありません。

代替ログイン ID としてのメール アドレス

別の方法は、Microsoft Entra ID とオンプレミスの UPN を同じ値に同期し、ユーザーが検証済みの電子メールで Microsoft Entra ID にサインインできるように Microsoft Entra ID を設定することです。 この機能を実現するには、オンプレミス ディレクトリ内のユーザーの ProxyAddresses 属性で 1 つ以上のメール アドレスを定義します。 ProxyAddresses は、Microsoft Entra Connect を使用して自動的にMicrosoft Entra ID に同期されます。

オプション 説明
AD FS の代替ログイン ID AD FS ユーザーの代替属性 (Mail など) を使用したサインインを有効にします。
Microsoft Entra Connect の代替ログイン ID 代替属性 (Mail など) を Microsoft Entra UPN として同期します。
代替ログイン ID としてのメール アドレス Microsoft Entra ユーザーに対して、検証済みドメインの ProxyAddresses を使用したサインインを有効にします。

サインイン電子メール アドレスを Microsoft Entra ID に同期する

従来の Active Directory Domain Services (AD DS) 認証または Active Directory フェデレーションサービス (AD FS) 認証は、ネットワーク上で直接行われ、AD DS インフラストラクチャによって処理されます。 ハイブリッド認証では、ユーザーは代わりに Microsoft Entra ID に直接サインインすることができます。

このハイブリッド認証アプローチをサポートするには、オンプレミスの AD DS 環境を、Microsoft Entra Connect を使用して Microsoft Entra ID に同期させ、PHS または PTA を使用するように設定します。 詳細については、「Microsoft Entra ハイブリッド ID ソリューションの適切な認証方法を選択する」をご覧ください。

どちらの設定オプションでも、ユーザーはユーザー名とパスワードを Microsoft Entra ID に送信し、ここで認証情報が検証され、チケットが発行されます。 ユーザーが Microsoft Entra ID にサインインすると、組織が AD FS インフラストラクチャをホストし管理する必要性はなくなります。

Microsoft Entra Connect によって自動的に同期されるユーザー属性の 1 つが ProxyAddresses です。 オンプレミスの AD DS 環境で ProxyAddresses 属性の一部として定義されているメール アドレスをユーザーが持っている場合は、Microsoft Entra ID と自動的に同期されます。 このメール アドレスは、直接 Microsoft Entra サインイン プロセスで、代替ログイン ID として使用できます。

重要

テナントの確認済みドメインのメールのみが Microsoft Entra ID に同期されます。 それぞれの Microsoft Entra テナントには、1 つ以上の確認済みドメインがあり、これらは所有権が実証され、テナントに一意にバインドされます。

詳細については、Microsoft Entra ID でのカスタム ドメイン名の追加と確認を参照してください。

メール アドレスを使用した B2B ゲスト ユーザーのサインイン

B2B ゲスト ユーザーのサインイン用の代替ログイン ID としてのメール アドレスの図。

代替ログイン ID としてのメール アドレスは、「サインイン識別子持ち込み」モデルの下で Microsoft Entra B2B Collaborationに適用されます。 代替ログイン ID としてのメール アドレスがホーム テナントで有効になっている場合、Microsoft Entra ユーザーは、UPN 以外のメール アドレスを使用して、リソース テナント エンドポイントでゲスト サインインを実行できます。 この機能を有効にするために、リソース テナントで要求される操作はありません。

注意

機能が有効になっていないリソース テナント エンドポイントで代替ログイン ID を使用すると、サインイン プロセスはシームレスに動作しますが、SSO は中断されます。

メール アドレスを使用してユーザーのサインインを有効にする

注意

この構成オプションには HRD ポリシーを使用します。 詳細については、「homeRealmDiscoveryPolicy リソースの種類」を参照してください。

ProxyAddresses 属性を適用したユーザーが Microsoft Entra Connect を使用して Microsoft Entra ID に同期された後、ユーザーがテナントの代替ログイン ID としてメールを使用してサインインできるようにする機能を有効にする必要があります。 この機能を使用することで、UPN 値に対してだけでなく、メール アドレスの ProxyAddresses 値に対してサインイン ID を確認するように、Microsoft Entra ログイン サーバーに指示します。

Microsoft Entra 管理センターか Graph PowerShell 使用し、機能を設定できます。

この機能を管理するには、全体管理者が必要です。

Microsoft Entra 管理センター

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

  1. Microsoft Entra 管理センターグローバル管理者としてサインインします。

  2. Microsoft Entra ウィンドウの左側にあるナビゲーション メニューから、Microsoft Entra Connect > 代替ログイン ID としてのメール アドレス を選択します。

    Microsoft Entra 管理センターの代替ログイン ID オプションとしてのメール アドレスのスクリーンショット。

  3. [代替ログイン ID としてのメール アドレス] の横にあるチェックボックスをオンにします。

  4. [保存] をクリックします。

    Microsoft Entra 管理センターの代替ログイン ID ブレードとしてのメール アドレスのスクリーンショット。

ポリシーが適用されている場合は、伝達されて、ユーザーが代替ログイン ID を使用してサインインできるようになるまでに、最大 1 時間かかることがあります。

PowerShell

注意

この構成オプションには HRD ポリシーを使用します。 詳細については、「homeRealmDiscoveryPolicy リソースの種類」を参照してください。

ProxyAddresses 属性を適用したユーザーが Microsoft Entra Connect を使用して Microsoft Entra ID に同期された後、ユーザーがテナントの代替ログイン ID としてメールを使用してサインインできるようにする機能を有効にする必要があります。 この機能を使用することで、UPN 値に対してだけでなく、メール アドレスの ProxyAddresses 値に対してサインイン ID を確認するように、Microsoft Entra ログイン サーバーに指示します。

この機能を管理するには、全体管理者が必要です。

  1. 管理者として PowerShell セッションを開き、Install-Module コマンドレットを使用して、Microsoft.Graph モジュールをインストールします。

    Install-Module Microsoft.Graph
    

    インストールの詳細については、「Microsoft Graph PowerShell SDK のインストール」を参照してください。

  2. Connect-MgGraph コマンドレットを使用して、Microsoft Entra テナントにサインインします:

    Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration" -TenantId organizations
    

    このコマンドにより、Web ブラウザーを使用して認証するよう求められます。

  3. 次のように Get-MgPolicyHomeRealmDiscoveryPolicy コマンドレットを使用して、HomeRealmDiscoveryPolicy がテナントに既に存在しているかどうかを確認します。

    Get-MgPolicyHomeRealmDiscoveryPolicy
    
  4. 現在設定されているポリシーがない場合、コマンドは何も返しません。 ポリシーが返された場合は、この手順をスキップし、次の手順に進んで、既存のポリシーを更新します。

    HomeRealmDiscoveryPolicy をテナントに追加するには、次の例に示すように、New-MgPolicyHomeRealmDiscoveryPolicy コマンドレットを使用し、AlternateIdLogin 属性を "Enabled": true に設定します。

    $AzureADPolicyDefinition = @(
      @{
         "HomeRealmDiscoveryPolicy" = @{
            "AlternateIdLogin" = @{
               "Enabled" = $true
            }
         }
      } | ConvertTo-JSON -Compress
    )
    
    $AzureADPolicyParameters = @{
      Definition            = $AzureADPolicyDefinition
      DisplayName           = "BasicAutoAccelerationPolicy"
      AdditionalProperties  = @{ IsOrganizationDefault = $true }
    }
    
    New-MgPolicyHomeRealmDiscoveryPolicy @AzureADPolicyParameters
    

    ポリシーが正常に作成されると、次の出力例に示すように、コマンドによってポリシー ID が返されます。

    Definition                                                           DeletedDateTime Description DisplayName                 Id            IsOrganizationDefault
    ----------                                                           --------------- ----------- -----------                 --            ---------------------
    {{"HomeRealmDiscoveryPolicy":{"AlternateIdLogin":{"Enabled":true}}}}                             BasicAutoAccelerationPolicy HRD_POLICY_ID True
    
  5. 既にポリシーが設定されている場合は、次のポリシー出力の例に示すように、AlternateIdLogin 属性が有効になっているかどうかを確認します。

    Definition                                                           DeletedDateTime Description DisplayName                 Id            IsOrganizationDefault
    ----------                                                           --------------- ----------- -----------                 --            ---------------------
    {{"HomeRealmDiscoveryPolicy":{"AlternateIdLogin":{"Enabled":true}}}}                             BasicAutoAccelerationPolicy HRD_POLICY_ID True
    

    ポリシーが存在していても、AlternateIdLogin 属性が存在していないか有効になっていない場合、または保持したいと考えているポリシーに他の属性が存在している場合は、Update-MgPolicyHomeRealmDiscoveryPolicy コマンドレットを使用して既存のポリシーを更新します。

    重要

    ポリシーを更新するときには、必ず古い設定と新しい AlternateIdLogin 属性を含めます。

    次の例では、AlternateIdLogin 属性を追加し、既に設定されている AllowCloudPasswordValidation 属性を保持します。

    $AzureADPolicyDefinition = @(
      @{
         "HomeRealmDiscoveryPolicy" = @{
            "AllowCloudPasswordValidation" = $true
            "AlternateIdLogin" = @{
               "Enabled" = $true
            }
         }
      } | ConvertTo-JSON -Compress
    )
    
    $AzureADPolicyParameters = @{
      HomeRealmDiscoveryPolicyId = "HRD_POLICY_ID"
      Definition                 = $AzureADPolicyDefinition
      DisplayName                = "BasicAutoAccelerationPolicy"
      AdditionalProperties       = @{ "IsOrganizationDefault" = $true }
    }
    
    Update-MgPolicyHomeRealmDiscoveryPolicy @AzureADPolicyParameters
    

    更新されたポリシーによって変更が表示され、AlternateIdLogin 属性が有効になっていることを確認します。

    Get-MgPolicyHomeRealmDiscoveryPolicy
    

注意

ポリシーが適用されている場合は、伝達されて、ユーザーが代替ログイン ID としてメールを使用してサインインできるようになるまでに、最大 1 時間かかることがあります。

ポリシーの削除

HRD ポリシーを削除するには、Remove-MgPolicyHomeRealmDiscoveryPolicy コマンドレットを使用します。

Remove-MgPolicyHomeRealmDiscoveryPolicy -HomeRealmDiscoveryPolicyId "HRD_POLICY_ID"

メール アドレスを使用したユーザー サインインをテストするために段階的ロールアウトを有効にする

注意

この構成オプションには、段階的ロールアウト ポリシーを使用します。 詳細については、「featureRolloutPolicy リソースの種類」を参照してください。

段階的ロールアウト ポリシーを使用すると、テナント管理者は特定の Microsoft Entraグループに対して各機能を有効にすることができます。 テナント管理者が段階的ロールアウトを使用して、メール アドレスでのユーザー サインインをテストすることをおすすめします。 管理者は、この機能をテナント全体にデプロイする準備ができたら、HRD ポリシーを使用する必要があります。

この機能を管理するには、全体管理者が必要です。

  1. 管理者として PowerShell セッションを開き、Install-Module コマンドレットを使用して、Microsoft.Graph.Beta モジュールをインストールします。

    Install-Module Microsoft.Graph.Beta
    

    メッセージが表示されたら、[Y] を選択して NuGet をインストールするか、非信頼のリポジトリからインストールします。

  2. Connect-MgGraph コマンドレットを使って Microsoft Entra テナントにサインインします。

    Connect-MgGraph -Scopes "Directory.ReadWrite.All"
    

    このコマンドは、アカウント、環境、およびテナント ID に関する情報を返します。

  3. 次のコマンドレットを使用して、既存の段階的ロールアウト ポリシーをすべて一覧表示します。

    Get-MgBetaPolicyFeatureRolloutPolicy
    
  4. この機能について既存の段階的ロールアウト ポリシーが存在しない場合は、段階的ロールアウト ポリシーを新たに作成し、ポリシー ID を書き留めておきます。

    $MgPolicyFeatureRolloutPolicy = @{
    Feature    = "EmailAsAlternateId"
    DisplayName = "EmailAsAlternateId Rollout Policy"
    IsEnabled   = $true
    }
    New-MgBetaPolicyFeatureRolloutPolicy @MgPolicyFeatureRolloutPolicy
    
  5. 段階的ロールアウト ポリシーに追加されるグループの directoryObject ID を検索します。 次の手順で使用するため、Id パラメーターに返される値をメモに記録します。

    Get-MgBetaGroup -Filter "DisplayName eq 'Name of group to be added to the staged rollout policy'"
    
  6. 次の例に示すように、グループを段階的ロールアウト ポリシーに追加します。 -FeatureRolloutPolicyId パラメーターの値を、手順 4 でポリシー ID に対して返された値に置き換え、-OdataId パラメーターの値を、手順 5 でメモした Id に置き換えます。 グループ内のユーザーが代替ログイン ID としてメール アドレスを使用して Microsoft Entra ID にサインインできるようになるまで、最大 1 時間かかることがあります。

    New-MgBetaDirectoryFeatureRolloutPolicyApplyToByRef `
       -FeatureRolloutPolicyId "ROLLOUT_POLICY_ID" `
       -OdataId "https://graph.microsoft.com/v1.0/directoryObjects/{GROUP_OBJECT_ID}"
    

新しいメンバーをグループに追加した場合、代替ログイン ID としてメール アドレスを使用して Microsoft Entra ID にサインインできるようになるまで、最大で 24 時間かかることがあります。

グループの削除

段階的ロールアウト ポリシーからグループを削除するには、次のコマンドを実行します。

Remove-MgBetaPolicyFeatureRolloutPolicyApplyToByRef -FeatureRolloutPolicyId "ROLLOUT_POLICY_ID" -DirectoryObjectId "GROUP_OBJECT_ID"

ポリシーの削除

段階的ロールアウト ポリシーを削除するには、まずポリシーを無効にして、システムから削除します。

Update-MgBetaPolicyFeatureRolloutPolicy -FeatureRolloutPolicyId "ROLLOUT_POLICY_ID" -IsEnabled:$false 
Remove-MgBetaPolicyFeatureRolloutPolicy -FeatureRolloutPolicyId "ROLLOUT_POLICY_ID"

メール アドレスを使用してユーザーのサインインをテストする

ユーザーがメール アドレスを使用してサインインできるかどうかをテストするには、https://myprofile.microsoft.com に移動し、UPN 以外のメール アドレス (balas@fabrikam.com など) を使用してサインインします。 サインイン環境は、UPN を使用したサインインと同じ外観になります。

トラブルシューティング

ユーザーがメール アドレスを使用してサインインするときに問題が発生した場合は、次のトラブルシューティングの手順を確認してください。

  1. メール アドレスが代替ログイン ID として有効になってから少なくとも 1 時間が経過していることを確認します。 段階的ロールアウト ポリシーの適用対象であるグループにユーザーが最近追加された場合は、グループに追加されてから少なくとも 24 時間が経過していることを確認します。

  2. HRD ポリシーを使用している場合は、Microsoft Entra ID HomeRealmDiscoveryPolicyAlternateIdLogin 定義プロパティが "Enabled": true に設定され、IsOrganizationDefault プロパティが True に設定されていることを確認します:

    Get-MgBetaPolicyHomeRealmDiscoveryPolicy | Format-List *
    

    段階的ロールアウト ポリシーを使用している場合は、Microsoft Entra ID FeatureRolloutPolicyIsEnabled プロパティが True に設定されていることを確認します:

    Get-MgBetaPolicyFeatureRolloutPolicy
    
  3. Microsoft Entra ID で、ProxyAddresses 属性にユーザー アカウントのメール アドレスが設定されていることを確認します。

サインイン ログ

代替ログイン ID アクティビティとしてのメール アドレスを示す Microsoft Entra サインイン ログのスクリーンショット。

詳細については、Microsoft Entra ID のサインイン ログを確認してください。 代替ログイン ID としてメールを使用したサインインでは、[サインイン識別子の種類] フィールドに proxyAddress が出力され、[サインイン識別子] フィールドにユーザー名が入力されます。

クラウド専用ユーザーと同期されたユーザーの間で競合する値

テナント内では、クラウド専用ユーザーの UPN が、オンプレミス ディレクトリから同期された別のユーザーのプロキシ アドレスと同じ値になる場合があります。 このシナリオでは、機能を有効にすると、クラウド専用のユーザーは UPN でサインインできなくなります。 この問題が発生している場合を検出する手順を次に示します。

  1. 管理者として PowerShell セッションを開き、Install-Module コマンドレットを使用して、AzureADPreview モジュールをインストールします。

    Install-Module Microsoft.Graph.Beta
    

    メッセージが表示されたら、[Y] を選択して NuGet をインストールするか、非信頼のリポジトリからインストールします。

  2. この機能を管理するには、全体管理者が必要です。

    Connect-MgGraph コマンドレットを使って Microsoft Entra テナントにログインします。

    Connect-MgGraph -Scopes "User.Read.All"
    
  3. 影響を受けるユーザーを取得します。

    # Get all users
    $allUsers = Get-MgUser -All
    
    # Get list of proxy addresses from all synced users
    $syncedProxyAddresses = $allUsers |
        Where-Object {$_.ImmutableId} |
        Select-Object -ExpandProperty ProxyAddresses |
        ForEach-Object {$_ -Replace "smtp:", ""}
    
    # Get list of user principal names from all cloud-only users
    $cloudOnlyUserPrincipalNames = $allUsers |
        Where-Object {!$_.ImmutableId} |
        Select-Object -ExpandProperty UserPrincipalName
    
    # Get intersection of two lists
    $duplicateValues = $syncedProxyAddresses |
        Where-Object {$cloudOnlyUserPrincipalNames -Contains $_}
    
  4. 影響を受けるユーザーを出力するには:

    # Output affected synced users
    $allUsers |
        Where-Object {$_.ImmutableId -And ($_.ProxyAddresses | Where-Object {($duplicateValues | ForEach-Object {"smtp:$_"}) -Contains $_}).Length -GT 0} |
        Select-Object ObjectId, DisplayName, UserPrincipalName, ProxyAddresses, ImmutableId, UserType
    
    # Output affected cloud-only users
    $allUsers |
        Where-Object {!$_.ImmutableId -And $duplicateValues -Contains $_.UserPrincipalName} |
        Select-Object ObjectId, DisplayName, UserPrincipalName, ProxyAddresses, ImmutableId, UserType
    
  5. 影響を受けるユーザーを CSV に出力するには:

    # Output affected users to CSV
    $allUsers |
        Where-Object {
            ($_.ImmutableId -And ($_.ProxyAddresses | Where-Object {($duplicateValues | ForEach-Object {"smtp:$_"}) -Contains $_}).Length -GT 0) -Or
            (!$_.ImmutableId -And $duplicateValues -Contains $_.UserPrincipalName)
        } |
        Select-Object ObjectId, DisplayName, UserPrincipalName, @{n="ProxyAddresses"; e={$_.ProxyAddresses -Join ','}}, @{n="IsSyncedUser"; e={$_.ImmutableId.Length -GT 0}}, UserType |
        Export-Csv -Path .\AffectedUsers.csv -NoTypeInformation
    

次のステップ

Microsoft Entra アプリケーション プロキシや Microsoft Entra Domain Services などのハイブリッド ID の詳細については、「オンプレミス ワークロードへのアクセスと管理のための Microsoft Entra ハイブリッド ID」を参照してください。

ハイブリッド ID 操作の詳細については、パスワード ハッシュ同期方法またはパススルー認証の同期をご覧ください。