將條件式存取新增至 Azure Active Directory B2C 中的使用者流程

開始之前,請使用 [選擇原則類型 選取器] 來選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先 定義的使用者流程 ,或透過完全可設定 的自定義原則。 本文中每個方法所需的步驟都不同。

條件式存取可以新增至您的 Azure Active Directory B2C (Azure AD B2C) 使用者流程或自定義原則,以管理對應用程式有風險的登入。 Microsoft Entra 條件式存取是 Azure AD B2C 用來將訊號結合在一起、做出決策並強制執行組織原則的工具。 Conditional access flow 使用原則條件自動化風險評估表示會立即識別具風險的登入,然後補救或封鎖。

服務預覽

Azure AD B2C 會評估每個登入事件,並確保在授與使用者存取權之前符合所有原則需求。 在此 評估 階段,條件式存取服務會評估身分識別保護風險偵測在登入事件期間收集的訊號。 此評估程序的結果是一組宣告,指出是否應授與或封鎖登入。 Azure AD B2C 原則會使用這些宣告在使用者流程內運作。 例如,封鎖存取或挑戰使用者的特定補救,例如多重要素驗證 (MFA)。 「封鎖存取」會覆寫所有其他設定。

下列範例顯示用來評估登入威脅的條件式存取技術配置檔。

<TechnicalProfile Id="ConditionalAccessEvaluation">
  <DisplayName>Conditional Access Provider</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ConditionalAccessProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="OperationType">Evaluation</Item>
  </Metadata>
  ...
</TechnicalProfile>

為了確保已正確評估 Identity Protection 訊號,您要呼叫 ConditionalAccessEvaluation 所有用戶的技術配置檔,包括 本機和社交帳戶。 否則,Identity Protection 會指出與使用者相關聯的風險程度不正確。

在後續的補救階段中,使用者會受到 MFA 的挑戰。 完成之後,Azure AD B2C 會通知 Identity Protection 已補救已識別的登入威脅,以及依何種方法進行補救。 在此範例中,Azure AD B2C 會發出使用者已成功完成多重要素驗證挑戰的訊號。 補救也可能透過其他通道進行。 例如,當帳戶的密碼重設時,由系統管理員或使用者重設。 您可以在有風險的使用者報告中檢查用戶風險狀態

重要

若要在旅程中成功補救風險,請確定在執行評估技術配置文件之後呼叫補救技術配置檔。 如果 叫用評估 而不 使用補救,風險狀態將會是 風險當評估技術配置文件建議傳Block回 時,不需要呼叫評估技術配置檔。 風險狀態設定為 [有風險]。 下列範例顯示用來補救已識別威脅的條件式存取技術配置檔:

<TechnicalProfile Id="ConditionalAccessRemediation">
  <DisplayName>Conditional Access Remediation</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ConditionalAccessProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
  <Metadata>
    <Item Key="OperationType">Remediation</Item>
  </Metadata>
  ...
</TechnicalProfile>

解決方案的元件

以下是在 Azure AD B2C 中啟用條件式存取的元件:

  • 引導使用者完成登入和註冊程序的使用者流程自定義 原則。
  • 條件式存取原則 ,可將訊號結合在一起,以做出決策並強制執行組織原則。 當使用者透過 Azure AD B2C 原則登入您的應用程式時,條件式存取原則會使用 Microsoft Entra ID Protection 訊號來識別有風險的登入,並呈現適當的補救動作。
  • 將用戶導向至適當的 Azure AD B2C 使用者流程或自定義原則的已註冊應用程式
  • TOR Browser 模擬有風險的登入。

服務限制和考慮

使用 Microsoft Entra 條件式存取時,請考慮下列事項:

  • Identity Protection 適用於本機和社交身分識別,例如 Google 或 Facebook。 針對社交身分識別,您必須手動啟用條件式存取。 偵測有限,因為社交帳戶認證是由外部識別提供者所管理。
  • 在 Azure AD B2C 租使用者中,只有一部分 Microsoft Entra 條件式存取 原則可供使用。

必要條件

定價層

需要 Azure AD B2C 進階版 P2 才能建立具風險的登入原則。 進階版 P1 租使用者可以建立以位置、應用程式、使用者或群組為基礎的原則為基礎的原則。 如需詳細資訊,請參閱 變更您的 Azure AD B2C 定價層

準備 Azure AD B2C 租使用者

若要新增條件式存取原則,請停用安全性預設值:

  1. 登入 Azure 入口網站

  2. 如果您有多個租使用者的存取權,請選取頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。

  3. 在 [Azure 服務] 底下,選取 [Microsoft Entra ID]。 或使用搜尋方塊來尋找並選取 [Microsoft Entra ID]。

  4. 選取 [ 屬性],然後選取 [ 管理安全性預設值]。

    Disable the security defaults

  5. 在 [啟用安全性預設值] 底下,選取 []。

    Set the Enable security defaults toggle to No

新增條件式存取原則

條件式存取原則是指派和訪問控制的 if-then 語句。 條件式存取原則會將訊號結合在一起,以做出決策並強制執行組織原則。

提示

在此步驟中,您會設定條件式存取原則。 我們建議您使用下列其中一個範本:範本 1:以風險為基礎的條件式存取範本 2:用戶風險型條件式存取,或範本 3:封鎖具有條件式存取的位置。 您可以透過 Azure 入口網站 或 MS Graph API 來設定條件式存取原則。

指派之間的邏輯運算子為 And。 每個指派中的運算子為 Or

Conditional access assignments 若要新增條件式存取原則:

  1. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]

  2. 在 [安全性] 底下,選取 [條件式存取]。 [ 條件式存取原則] 頁面隨即開啟。

  3. 選取 [+ 新增原則]。

  4. 輸入原則的名稱,例如 [封鎖有風險的登入]。

  5. 在 [指派],選擇 [使用者和群組],然後選取下列其中一個支援的組態:

    包括​​ 授權 備註
    所有使用者 P1、P2 此原則會影響您的所有使用者。 若要確定不要自行鎖定,請選取 [排除]、選取 [目錄角色],然後在清單中選取 [全域 管理員 istrator],以排除您的系統管理帳戶。 您也可以選取 [使用者和群組 ],然後在 [ 選取排除的使用者 ] 列表中選取您的帳戶。
  6. 選取 [ 雲端應用程式或動作],然後 選取 [應用程式]。 流覽您的 信賴憑證者應用程式

  7. 選取 [ 條件],然後從下列條件中選取 。 例如,選取 [登入風險] 和 []、[中] 和 [風險層級]。

    條件 授權 備註
    用戶風險 P2 使用者風險代表特定的身分識別或帳戶遭入侵的可能性。
    登入風險 P2 登入風險表示特定的驗證要求未獲身分識別擁有者授權的可能性。
    裝置平台 不支援 其特徵是裝置上執行的作業系統。 如需詳細資訊,請參閱 裝置平臺
    位置 P1、P2 具名位置可能包含公用 IPv4 網路資訊、國家或地區,或未對應至特定國家或地區的未知區域。 如需詳細資訊,請參閱 位置
  8. 在 [存取控制] 下,選取 [授與]。 然後選取是否要封鎖或授與存取權:

    選項 授權 備註
    封鎖存取 P1、P2 根據此條件式存取原則中指定的條件,防止存取。
    使用需要多重要素驗證來授與存取 P1、P2 根據此條件式存取原則中指定的條件,用戶必須經過 Azure AD B2C 多重要素驗證。
  9. 在 [啟用原則]下,選取下列其中一項:

    選項 授權 備註
    僅限報表 P1、P2 僅限報表可讓系統管理員在環境中啟用條件式存取原則之前評估條件式存取原則的影響。 建議您檢查具有此狀態的原則,並判斷對終端用戶的影響,而不需要多重要素驗證或封鎖使用者。 如需詳細資訊,請參閱 稽核報告中的檢閱條件式存取結果
    開啟 P1、P2 會評估存取原則,而不會強制執行。
    關閉 P1、P2 存取原則未啟用,且對用戶沒有任何影響。
  10. 選取 [建立],以啟用測試條件式存取原則。

範本 1:以風險為基礎的條件式存取

大部分的使用者都有可追蹤的正常行為,當他們超出此規範時,允許他們只登入可能會有風險。 您可以封鎖該使用者,或是要求他們執行多重要素驗證,證明他們的真實身分。 登入風險表示特定的驗證要求未獲身分識別擁有者授權的可能性。 具有 P2 授權的 Azure AD B2C 租使用者可以建立條件式存取原則,併入 Microsoft Entra ID Protection 登入風險偵測。

請注意 B2C 的 Identity Protection 偵測限制。 如果偵測到風險,使用者可以執行多重要素驗證來自我補救並關閉有風險的登入事件,以防止系統管理員產生不必要的雜訊。

透過 Azure 入口網站 或 Microsoft Graph API 設定條件式存取,以啟用登入風險型條件式存取原則,要求在登入風險為中或高時需要 MFA。

  1. 在 [包含] 下,選取 [所有使用者]
  2. 在 [排除] 下,選取 [使用者和群組],然後選擇您組織的緊急存取或急用帳戶。
  3. 選取完成
  4. 在 [雲端應用程式或動作]>[包含] 下,選取 [所有雲端應用程式]
  5. 在 [條件>登入風險] 下,將 [設定] 設定為 [是]。 在 [選取登入風險層級] 下 ,此原則將套用至
    1. 選取 [高] 和 []。
    2. 選取完成
  6. 在 [訪問控制>與] 底下,選取 [授與存取權]、[需要多重要素驗證],然後選取 [選取]。
  7. 確認您的設定,並將 [啟用原則] 設定為 [開啟]
  8. 選取 [建立] 以建立並啟用您的原則。

使用條件式存取 API 啟用樣本 1 (選擇性)

使用 MS Graph API 建立以風險為基礎的條件式存取原則。 如需詳細資訊,請參閱 條件式存取 API。 下列範本可用來在僅限報表模式中建立顯示名稱為 “Template 1: Require MFA for medium+ sign-in risk” 的條件式存取原則。

{
    "displayName": "Template 1: Require MFA for medium+ sign-in risk",
    "state": "enabledForReportingButNotEnforced",
    "conditions": {
        "signInRiskLevels": [ "high" ,
            "medium"
        ],
        "applications": {
            "includeApplications": [
                "All"
            ]
        },
        "users": {
            "includeUsers": [
                "All"
            ],
            "excludeUsers": [
                "f753047e-de31-4c74-a6fb-c38589047723"
            ]
        }
    },
    "grantControls": {
        "operator": "OR",
        "builtInControls": [
            "mfa"
        ]
    }
}

範本 2:用戶風險型條件式存取

Identity Protection 可以計算出其所認為的使用者正常行為,並使用該結果作為判斷使用者風險的基礎。 使用者風險是身分識別遭入侵的機率計算。 具有 P2 授權的 B2C 租使用者可以建立合併用戶風險的條件式存取原則。 當偵測到使用者處於風險時,您可以要求他們安全地變更其密碼,以補救風險並取得其帳戶的存取權。 強烈建議設定用戶風險原則,以要求進行安全密碼變更,讓使用者可以自行修復。

深入瞭解 Identity Protection 中的用戶風險,並考慮 B2C 的 Identity Protection 偵測限制。

透過 Azure 入口網站 或 Microsoft Graph API 設定條件式存取,以啟用用戶風險型條件式存取原則,在用戶風險為中或高時需要多重要素驗證 (MFA) 和密碼變更。

若要設定以使用者為基礎的條件式存取:

  1. 登入 Azure 入口網站
  2. 流覽至 Azure AD B2C> 安全性>條件式存取。
  3. 選取 [新增原則]
  4. 為您的原則命名。 建議組織針對其原則的名稱建立有意義的標準。
  5. 在 [指派] 下,選取 [使用者和群組]
    1. 在 [包含] 下,選取 [所有使用者]
    2. 在 [排除] 下,選取 [使用者和群組],然後選擇您組織的緊急存取或急用帳戶。
    3. 選取完成
  6. 在 [雲端應用程式或動作]>[包含] 下,選取 [所有雲端應用程式]
  7. 在 [條件>用戶風險],將 [設定] 設定為 [是]。 在 [設定強制執行原則所需的用戶風險等級] 下
    1. 選取 [高] 和 []。
    2. 選取完成
  8. 在 [訪問控制>與] 底下,選取 [授與存取權]、[需要變更密碼],然後選取 [選取]。 根據預設,也需要多重要素驗證
  9. 確認您的設定,並將 [啟用原則] 設定為 [開啟]
  10. 選取 [建立] 以建立並啟用您的原則。

使用條件式存取 API 啟用樣本 2 (選擇性)

若要使用條件式存取 API 建立用戶風險型條件式存取原則,請參閱條件式存取 API 的檔

下列範本可用來在僅限報表模式中建立顯示名稱為 “Template 2: Require secure password change for medium+ user risk” 的條件式存取原則。

{
    "displayName": "Template 2: Require secure password change for medium+ user risk",
    "state": "enabledForReportingButNotEnforced",
    "conditions": {
        "userRiskLevels": [ "high" ,
            "medium"
        ],
        "applications": {
            "includeApplications": [
                "All"
            ]
        },
        "users": {
            "includeUsers": [
                "All"
            ],
            "excludeUsers": [
                "f753047e-de31-4c74-a6fb-c38589047723"
            ]
        }
    },
    "grantControls": {
        "operator": "AND",
        "builtInControls": [
            "mfa",
            "passwordChange"
        ]
    }
}

範本 3:封鎖具有條件式存取的位置

透過條件式存取中的位置條件,您可以根據使用者的網路位置來控制對雲端應用程式的存取。 透過 Azure 入口網站 或 Microsoft Graph API 設定條件式存取,以啟用條件式存取原則封鎖特定位置的存取。 如需詳細資訊,請參閱 在條件式存取原則中使用位置條件

定義位置

  1. 登入 Azure 入口網站
  2. 流覽至 Azure AD B2C>安全性>條件式存取>具名位置。
  3. 選取 國家/地區位置IP範圍位置
  4. 為您的位置命名。
  5. 提供 [IP 範圍],或選取您要指定之位置的 [國家/地區]。 如果您選擇 [國家/地區],則可以選擇是否要包含未知的區域。
  6. 選擇儲存

若要啟用條件存取原則:

  1. 登入 Azure 入口網站
  2. 流覽至 Azure AD B2C> 安全性>條件式存取。
  3. 選取 [新增原則]
  4. 為您的原則命名。 建議組織針對其原則的名稱建立有意義的標準。
  5. 在 [指派] 下,選取 [使用者和群組]
    1. 在 [包含] 下,選取 [所有使用者]
    2. 在 [排除] 下,選取 [使用者和群組],然後選擇您組織的緊急存取或急用帳戶。
    3. 選取完成
  6. 在 [雲端應用程式或動作]>[包含] 下,選取 [所有雲端應用程式]
  7. 在條件>位置下
    1. 將 [設定] 設定為 [是]
    2. 在 [包含] 底下,選取 [選取的位置]
    3. 選取您建立的具名位置。
    4. 按一下 [選取]
  8. 在 [訪問控制]>,選取 [封鎖存取],然後選取 [選取]。
  9. 確認您的設定,並將 [啟用原則] 設定為 [開啟]
  10. 選取 [建立] 以建立並啟用您的原則。

使用條件式存取 API 啟用樣本 3 (選擇性)

若要使用條件式存取 API 建立以位置為基礎的條件式存取原則,請參閱條件式存取 API 的檔。 若要設定具名位置,請參閱具名位置的檔

下列範本可用來在僅限報表模式中建立顯示名稱為 “Template 3: Block unallowed locations” 的條件式存取原則。

{
    "displayName": "Template 3: Block unallowed locations",
    "state": "enabledForReportingButNotEnforced",
    "conditions": {
        "applications": {
            "includeApplications": [
                "All"
            ]
        },
        "users": {
            "includeUsers": [
                "All"
            ],
            "excludeUsers": [
                "f753047e-de31-4c74-a6fb-c38589047723"
            ]
        },
        "locations": {
            "includeLocations": [
                "b5c47916-b835-4c77-bd91-807ec08bf2a3"
          ]
        }
    },
    "grantControls": {
        "operator": "OR",
        "builtInControls": [
            "block"
        ]
    }
}

將條件式存取新增至使用者流程

新增 Microsoft Entra 條件式存取原則之後,請在使用者流程或自定義原則中啟用條件式存取。 當您啟用條件式存取時,不需要指定原則名稱。 多個條件式存取原則可以隨時套用至個別使用者。 在此情況下,最嚴格的訪問控制原則優先。 例如,如果其中一個原則需要 MFA,而另一個原則會封鎖存取權,則會封鎖使用者。

開啟多重要素驗證 (選擇性)

將條件式存取新增至使用者流程時,請考慮使用 Multi-Factor Authentication (MFA)。 用戶可以透過SMS或語音、透過電子郵件使用一次性密碼,或透過驗證器應用程式透過驗證器應用程式進行多重要素驗證的一次性密碼(TOTP) 程式代碼。 MFA 設定會與條件式存取設定分開設定。 您可以從下列 MFA 選項中選擇:

  • 關閉 - 在登入期間永遠不會強制執行 MFA,而且不會在註冊或登入期間提示用戶註冊 MFA。
  • 永遠開啟 - 不論條件式存取設定為何,一律需要 MFA。 註冊期間,系統會提示用戶註冊 MFA。 在登入期間,如果使用者尚未在 MFA 中註冊,系統會提示他們註冊。
  • 條件 式 - 在註冊和登入期間,系統會提示用戶註冊 MFA(新使用者和未在 MFA 中註冊的現有使用者)。 在登入期間,只有在作用中的條件式存取原則評估需要時,才會強制執行 MFA:
    • 如果結果是沒有風險的 MFA 挑戰,則會強制執行 MFA。 如果使用者尚未在 MFA 中註冊,系統會提示他們註冊。
    • 如果結果是由於風險 而造成 MFA 挑戰,且 使用者未在 MFA 中註冊,則會封鎖登入。

    注意

    隨著 Azure AD B2C 中條件式存取的正式運作,用戶現在會在註冊期間提示在 MFA 方法中註冊。 您在正式運作前建立的任何註冊使用者流程都不會自動反映這個新行為,但您可以藉由建立新的使用者流程來包含該行為。

若要啟用使用者流程的條件式存取,請確定版本支援條件式存取。 這些使用者流程版本會標示為 建議

  1. 登入 Azure 入口網站
  2. 如果您有多個租使用者的存取權,請選取頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
  3. 在 [Azure 服務] 底下,選取 [Azure AD B2C]。 或使用搜尋方塊來尋找並選取 [Azure AD B2C]。
  4. 在 [原則] 底下,選取 [使用者流程]。 然後選取使用者流程。
  5. 選取 [屬性],並確定使用者流程支持條件式存取,方法是尋找標示為條件式存取設定。 Configure MFA and Conditional Access in Properties
  6. 在 [多重要素驗證] 區段中,選取所需的方法類型,然後在 [MFA 強制執行] 底下,選取 [條件式]。
  7. 在 [ 條件式存取 ] 區段中,選取 [ 強制執行條件式存取原則 ] 複選框。
  8. 選取 [儲存]。

將條件式存取新增至您的原則

  1. 取得 GitHub條件式存取原則的範例。
  2. 在每個檔案中,將字串 yourtenant 取代為您的 Azure AD B2C 租用戶名稱。 例如,如果 B2C 租使用者的名稱是 contosob2c,則的所有實例 yourtenant.onmicrosoft.com 都會變成 contosob2c.onmicrosoft.com
  3. 上傳原則檔案。

設定用於 MFA 的電話號碼以外的宣告

在上述條件式存取原則中 DoesClaimExist ,宣告轉換方法會檢查宣告是否包含值,例如 strongAuthenticationPhoneNumber 宣告是否包含電話號碼。 宣告轉換不限於 strongAuthenticationPhoneNumber 宣告。 視案例而定,您可以使用任何其他宣告。 在下列 XML 代碼段中, strongAuthenticationEmailAddress 會改為檢查宣告。 您選擇的宣告必須具有有效的值,否則 IsMfaRegistered 宣告會設定為 False。 當設定為 False時,條件式存取原則評估會 Block 傳回授與類型,以防止使用者完成使用者流程。

 <ClaimsTransformation Id="IsMfaRegisteredCT" TransformationMethod="DoesClaimExist">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="IsMfaRegistered" TransformationClaimType="outputClaim" />
  </OutputClaims>
 </ClaimsTransformation>

測試您的自定義原則

  1. 選取 或 B2C_1A_signup_signin_with_ca_whatif 原則B2C_1A_signup_signin_with_ca以開啟其概觀頁面。 然後選取 [ 執行使用者流程]。 在 [應用程式] 底下,選取 [webapp1]。 回覆 URL 應該會顯示 https://jwt.ms
  2. 複製 [執行使用者流程端點] 底下的 URL。
  3. 若要模擬有風險的登入,請開啟 Tor Browser ,並使用您在上一個步驟中複製的 URL 來登入已註冊的應用程式。
  4. 在登入頁面中輸入要求的信息,然後嘗試登入。 令牌會傳回 , https://jwt.ms 而且應該會顯示給您。 在 jwt.ms 譯碼的令牌中,您應該會看到登入遭到封鎖。

測試您的使用者流程

  1. 選取您所建立的使用者流程以開啟其概觀頁面,然後選取 [ 執行使用者流程]。 在 [應用程式] 底下,選取 [webapp1]。 回覆 URL 應該會顯示 https://jwt.ms
  2. 複製 [執行使用者流程端點] 底下的 URL。
  3. 若要模擬有風險的登入,請開啟 Tor Browser ,並使用您在上一個步驟中複製的 URL 來登入已註冊的應用程式。
  4. 在登入頁面中輸入要求的信息,然後嘗試登入。 令牌會傳回 , https://jwt.ms 而且應該會顯示給您。 在 jwt.ms 譯碼的令牌中,您應該會看到登入遭到封鎖。

檢閱稽核報告中的條件式存取結果

若要檢閱條件式存取事件的結果:

  1. 登入 Azure 入口網站
  2. 如果您有多個租使用者的存取權,請選取頂端功能表中的 [設定] 圖示,以從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。
  3. 在 [Azure 服務] 底下,選取 [Azure AD B2C]。 或使用搜尋方塊來尋找並選取 [Azure AD B2C]。
  4. 在 [活動] 底下,選取 [稽核記錄]。
  5. 將 [類別] 設定為 B2C 並將 [活動資源類型] 設定IdentityProtection,以篩選稽核記錄。 然後選取 [套用]。
  6. 檢閱過去七天的稽核活動。 包含下列型態的活動:
    • 評估條件式存取原則:此稽核記錄專案表示條件式存取評估是在驗證期間執行。
    • 補救使用者:此專案表示使用者已符合條件式存取原則的授與或需求,且此活動已向風險引擎回報,以減輕(降低用戶的風險)。
  7. 選取清單中的 [評估條件式存取原則記錄] 專案,以開啟 [活動詳細數據:稽核記錄] 頁面,其中顯示稽核記錄標識符,以及 [其他詳細數據] 區段中的這項資訊
    • ConditionalAccessResult:條件式原則評估所需的授與。
    • AppliedPolicies:符合條件且原則為 ON 的所有條件式存取原則清單。
    • ReportingPolicies:設定為僅限報告模式的條件式存取原則清單,以及符合條件的位置。

下一步

自定義 Azure AD B2C 使用者流程中的使用者介面