共用方式為


使用主領域探索設定登入行為

本文提供使用主領域探索 (HRD) 原則設定同盟使用者的 Microsoft Entra 驗證行為的簡介。 其中涵蓋使用自動加速登入來略過使用者名稱輸入畫面,並自動將使用者轉寄給同盟登入端點。 若要深入了解 HRD 原則,請查看主領域探索一文。

自動加速登入

某些組織會將其 Microsoft Entra 租用戶中的網域設為與另一個識別提供者 (IDP) 同盟,例如用於使用者驗證的 Active Directory 同盟服務 (ADFS)。 使用者在登入應用程式時將會先看到 Microsoft Entra 登入頁面。 如果使用者是在同盟網域中,則在輸入使用者主體名稱 (UPN) 後,系統便會將其導向提供該網域的 IDP 登入頁面。 在某些情況下,系統管理員在使用者登入特定應用程式時可能會想要將其導向至登入頁面。 因此,使用者可以跳過初始的 Microsoft Entra ID 頁面。 此程序稱為「登入自動加速」。

針對已啟用雲端認證的同盟使用者,例如 SMS 登入或 FIDO 金鑰,您應該避免登入自動加速。 請參閱停用自動加速登入,以了解如何使用 HRD 來防止網域提示。

重要

從 2023 年 4 月開始,使用自動加速或智慧連結的組織可能會開始看到已新增至登入 UI 的新畫面。 此畫面稱為「網域確認對話方塊」,是Microsoft 安全性強化一般承諾的一部分,需要使用者確認其登入的租用戶網域。 如果您看到網域確認對話方塊,且無法辨識所列出的租用戶網域,您應該取消驗證流程,並連絡 IT 系統管理員。

如需詳細資訊,請造訪網域確認對話方塊

必要條件

若要為 Microsoft Entra ID 中的應用程式設定 HRD 原則,您需要:

  • 具有有效訂用帳戶的 Azure 帳戶。 若您還沒有帳戶,可以免費建立帳戶
  • 下列其中一個角色:應用程式系統管理員、雲端應用程式管理員或服務主體的擁有者。
  • 最新的 Azure AD PowerShell Cmdlet 預覽版。

在應用程式上設定 HRD 原則

我們會使用 Azure AD PowerShell Cmdlet 逐步解說一些案例,包括:

我們會使用 Microsoft Graph 來逐步解說一些案例,包括:

  • 設定 HRD 原則讓應用程式在具有單一同盟網域的租用戶中執行自動加速。

  • 設定 HRD 原則讓應用程式在租用戶已驗證的多個網域之一執行自動加速。

  • 設定 HRD 原則,讓繼承應用程式向 Microsoft Entra ID 針對同盟使用者執行直接的使用者名稱/密碼驗證。

  • 列出已設定原則的應用程式。

在下列範例中,您將建立、更新、連結和刪除 Microsoft Entra ID 中應用程式服務主體上的 HRD 原則。

注意

自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模組已被淘汰。 若要深入了解,請閱讀淘汰更新。 在此日期之後,對這些模組的支援僅限於對 Microsoft Graph PowerShell SDK 的移轉協助和安全性修正。 淘汰的模組將繼續運作至 2025 年 3 月 30 日。

我們建議移轉至 Microsoft Graph PowerShell 以與 Microsoft Entra ID (以前稱為 Azure AD) 互動。 如需了解常見的移轉問題,請參閱移轉常見問題注意:MSOnline 1.0.x 版可能會在 2024 年 6 月 30 日之後發生中斷。

  1. 開始之前,請執行 Connect 命令以使用您的系統管理員帳戶登入 Microsoft Entra ID:

    Connect-AzureAD -Confirm
    
  2. 執行下列命令以查看您組織中的所有原則:

    Get-AzureADPolicy
    

如果沒有傳回任何內容,表示您的租用戶中未建立任何原則。

建立 HRD 原則

在此範例中,您建立的原則在指派給應用程式時可執行以下功能:

  • 如果您的租用戶中有單一網域,則可讓使用者在登入應用程式時,自動加速前往同盟身分識別登入畫面。
  • 如果您的租用戶中有多個同盟網域,則可讓使用者自動加速前往同盟身分識別登入畫面。
  • 已具有指派原則的應用程式可讓同盟使用者直接透過非互動式使用者名稱/密碼登入至 Microsoft Entra ID。

如果您的租用戶中有單一網域,則下列原則可讓使用者在登入應用程式時,自動加速前往同盟身分識別登入畫面。

New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"AccelerateToFederatedDomain`":true}}") -DisplayName BasicAutoAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy
POST /policies/homeRealmDiscoveryPolicies

"HomeRealmDiscoveryPolicy": {
    "AccelerateToFederatedDomain": true
}

當您的租用戶中有多個同盟網域時,則下列原則可讓使用者自動加速前往同盟身分識別登入畫面。 如果您有多個同盟網域都會進行應用程式使用者驗證,則您必須指定要自動加速的網域。

New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"AccelerateToFederatedDomain`":true, `"PreferredDomain`":`"federated.example.edu`"}}") 
    -DisplayName MultiDomainAutoAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy
POST /policies/homeRealmDiscoveryPolicies

"HomeRealmDiscoveryPolicy": {
    "AccelerateToFederatedDomain": true,
    "PreferredDomain": [
      "federated.example.edu"
    ]
}

下列原則可讓同盟使用者直接使用特定應用程式的 Microsoft Entra ID 來進行使用者名稱/密碼驗證:

New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"AllowCloudPasswordValidation`":true}}") 
    -DisplayName EnableDirectAuthPolicy 
    -Type HomeRealmDiscoveryPolicy
POST /policies/homeRealmDiscoveryPolicies

"EnableDirectAuthPolicy": {
    "AllowCloudPasswordValidation": true
}

若要查看您的新原則並取得其 ObjectID,請執行下列命令:

Get-AzureADPolicy

建立 HRD 原則後若要套用,可將其指派給多個應用程式服務主體。

尋找服務主體以對其指派原則

您需要原則要指派到之服務主體的 ObjectID。 有幾種方式可尋找服務主體的 ObjectID

您可以使用 Microsoft Entra 系統管理中心或查詢 Microsoft Graph。 您可以移至 Graph Explorer 工具並登入您的 Microsoft Entra 帳戶,以查看您所有組織的服務主體。

由於您使用 PowerShell,您可以使用下列 Cmdlet 列出服務主體及其識別碼。

Get-AzureADServicePrincipal

將原則指派給服務主體

在您取得要設定自動加速之應用程式的服務主體 ObjectID 後,請執行下列命令。 此命令會將您在步驟 1 中建立的 HRD 原則與步驟 2 中找到的服務主體產生關聯。

Add-AzureADServicePrincipalPolicy 
    -Id <ObjectID of the Service Principal> 
    -RefObjectId <ObjectId of the Policy>

您可以為要新增原則的每個服務主體重複此命令。

如果指派給應用程式的是 HomeRealmDiscovery 原則,則您無法新增第二個原則。 如為此情況,請變更指派給應用程式的 HRD 原則定義,以新增額外的參數。

檢查您的 HRD 原則指派給哪些服務主體

若要檢查哪些應用程式已設定 HRD 原則,請使用 Get-AzureADPolicyAppliedObject cmdlet。 將您想檢查之原則的 ObjectID 傳遞給它。

Get-AzureADPolicyAppliedObject -id <ObjectId of the Policy>

要檢查新原則是否正常運作,請嘗試應用程式。

列出已設定 HRD 原則的應用程式

  1. 列出您組織中建立的所有原則

    Get-AzureADPolicy
    

請記下要列出指派之原則的 ObjectID

  1. 列出已被指派原則的服務主體

    Get-AzureADPolicyAppliedObject -id <ObjectId of the Policy>
    

從應用程式移除 HRD 原則

  1. 取得 ObjectID

    使用前一個範例來取得原則的 ObjectId,以及要移除該原則之應用程式服務主體的 ObjectID

  2. 從應用程式服務主體移除原則指派

    Remove-AzureADServicePrincipalPolicy -id <ObjectId of the Service Principal>  -PolicyId <ObjectId of the policy>
    
  3. 列出已被指派原則的服務主體,檢查移除是否成功

    Get-AzureADPolicyAppliedObject -id <ObjectId of the Policy>
    

透過 Graph 總管設定原則

從 Microsoft Graph 總管視窗:

  1. 使用必要條件一節中列出的其中一個角色來登入。

  2. 授與同意 Policy.ReadWrite.ApplicationConfiguration 權限。

  3. 使用主領域探索原則來建立新原則。

  4. 張貼新原則或修補檔以更新現有的原則。

    PATCH /policies/homeRealmDiscoveryPolicies/{id}
        {
            "definition": [
            "{\"HomeRealmDiscoveryPolicy\":
            {\"AccelerateToFederatedDomain\":true,
            \"PreferredDomain\":\"federated.example.edu\",
            \"AlternateIdLogin\":{\"Enabled\":true}}}"
        ],
            "displayName": "Home Realm Discovery auto acceleration",
            "isOrganizationDefault": true
        }
    
  5. 若要檢視您的新原則,請執行下列查詢:

    GET /policies/homeRealmDiscoveryPolicies/{id}
    
  6. 若要將新原則指派給應用程式:

    POST /servicePrincipals/{id}/homeRealmDiscoveryPolicies/$ref
    

    或者,

    POST /servicePrincipals(appId='{appId}')/homeRealmDiscoveryPolicies/$ref
    
  7. 列出已被指派原則的服務主體

    GET /policies/homeRealmDiscoveryPolicies/{ObjectId of the policy}/appliesTo
    
  8. 若要刪除您所建立的 HRD 原則,請執行查詢:

    DELETE /policies/homeRealmDiscoveryPolicies/{id}
    
  9. 從服務主體移除原則指派

    DELETE /servicePrincipals/{id}/homeRealmDiscoveryPolicies/{policyId}/$ref
    

    DELETE /servicePrincipals(appId='{appId}')/homeRealmDiscoveryPolicies/{policyId}/$ref
    
  10. 列出已被指派原則的服務主體,檢查移除是否成功

    GET /policies/homeRealmDiscoveryPolicies/{ObjectId of the policy}/appliesTo
    

下一步