Share via


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

本文提供使用主領域探索 (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 帳戶。 若您還沒有帳戶,可以免費建立帳戶
  • 下列其中一個角色:應用程式 管理員 istrator、Cloud Application 管理員 istrator 或服務主體的擁有者。
  • 最新的 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. 開始之前,請執行 連線 命令,以使用您的系統管理員帳戶登入 Microsoft Entra ID:

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

    Get-AzureADPolicy
    

如果沒有傳回任何專案,表示您沒有在租使用者中建立任何原則。

建立 HRD 原則

在此範例中,您會建立原則,如此一來,當您將它指派給應用程式時,它會:

  • 當使用者在租使用者中有單一網域時,自動加速使用者登入同盟身分識別提供者登入畫面。
  • 如果您的租使用者中有多個同盟網域,自動將使用者加速至同盟識別提供者登入畫面。
  • 為指派原則之應用程式的同盟使用者,直接啟用非互動式使用者名稱/密碼登入 Microsoft Entra 識別符。

下列原則會在租使用者中有單一網域時,自動將使用者加速至同盟身分識別提供者登入畫面。

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 總管工具 並登入您的 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 ,以及您想要從中移除它的應用程式服務主體。

  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 以更新現有的原則。

    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
    

下一步