這很重要
自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。
開始之前,請使用此頁面頂端的 [選擇原則類型] 選取器,選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先定義的使用者流程,或透過完全可設定的自訂原則。 此文章中所需的步驟隨各方法而異。
條件式存取可以新增至您的 Azure Active Directory B2C (Azure AD B2C) 使用者流程或自定義原則,以管理對應用程式有風險的登入。 Microsoft Entra 條件式存取是 Azure AD B2C 用來將訊號結合在一起、做出決策並強制執行組織原則的工具。
使用原則條件自動化風險評估表示會立即識別具風險的登入,然後補救或封鎖。
服務概觀
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 條件式存取 原則可供使用。
先決條件
- 完成開始使用 Active Directory B2C 中的自定義原則中的步驟。 本教學課程會引導您更新自定義原則檔案,以使用您的 Azure AD B2C 租用戶設定。
- 如果您尚未註冊 Web 應用程式,請使用 註冊 Web 應用程式中的步驟來註冊一個 Web 應用程式。
定價層
建立具風險的登入原則需要 Azure AD B2C Premium P2,但該功能自 2025 年 5 月 1 日起已不再支援。 進階 P1 租戶可以建立以位置、應用程式、使用者或群組為基礎的原則。
準備 Azure AD B2C 租使用者
若要新增條件式存取原則,請停用安全性預設值:
登入 Azure 入口網站。
如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
在 [Azure 服務] 底下,選取 [Microsoft Entra ID]。 或使用搜尋方塊來尋找並選取 [Microsoft Entra ID]。
選取 [屬性],然後選取 [管理安全性預設值]。
在 [啟用安全性預設值] 底下,選取 [否]。
新增條件式存取原則
條件式存取政策是描述條件和存取控制的「如果...則...」語句。 條件式存取原則會將訊號結合在一起,以做出決策並強制執行組織原則。
小提示
在此步驟中,您會設定條件式存取原則。 我們建議您使用下列其中一個範本 :範本 1:以風險為基礎的條件式存取、 範本 2:用戶風險型條件式存取,或 範本 3:封鎖具有條件式存取的位置。 您可以透過 Azure 入口網站或 MS Graph API 來設定條件式存取原則。
指派之間的邏輯運算子為 And。 每個指派中的運算子為 Or。
若要新增條件式存取原則:
在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
在 [安全性] 底下,選取 [條件式存取]。 [ 條件式存取原則] 頁面隨即開啟。
選取+ 新增策。
輸入原則的名稱,例如 [封鎖有風險的登入]。
在 [ 指派] 下,選擇 [ 使用者和群組],然後選取下列其中一個支援的組態:
包括 許可證 註釋 所有使用者 P1、P2 此原則會影響您的所有使用者。 若要確定不要自行鎖定,請選取 [排除]、選取 [目錄角色],然後在清單中選取 [全域管理員] 來排除您的系統管理帳戶。 您也可以選取 [使用者和群組 ],然後在 [ 選取排除的使用者 ] 列表中選取您的帳戶。 選取 [雲端應用程式或動作],然後 選取 [應用程式]。 流覽 您的信任方應用程式。
選取 [條件],然後從下列條件中選取 。 例如,選取 [登入風險 ] 和 [ 高]、[ 中] 和 [ 低 風險層級]。
狀況 許可證 註釋 使用者風險 P2 使用者風險代表特定的身分識別或帳戶遭入侵的可能性。 登入風險 P2 登入風險代表識別擁有者未授權指定驗證要求的機率。 裝置平臺 不支援 以裝置上執行的作業系統為特徵。 如需詳細資訊,請參閱 裝置平臺。 地點 P1、P2 具名位置可能包含公用 IPv4 網路資訊、國家或地區,或未對應至特定國家或地區的未知區域。 如需詳細資訊,請參閱 位置。 在 [存取控制] 下,選取 [授與]。 然後選取是否要封鎖或授與存取權:
選項 許可證 註釋 封鎖存取 P1、P2 根據此條件式存取原則中指定的條件,防止存取。 授予存取權並使用需要多重要素驗證 P1、P2 根據此條件式存取原則中指定的條件,用戶必須經過 Azure AD B2C 多重要素驗證。 在 [啟用原則] 底下,選取下列其中一項:
選項 許可證 註釋 僅報告模式 P1、P2 僅限報表可讓系統管理員在環境中啟用條件式存取原則之前評估條件式存取原則的影響。 建議您根據該州的規定檢查政策,並在不需要多重身份驗證或阻擋使用者的情況下,判斷其對終端用戶的影響。 如需詳細資訊,請參閱 稽核報告中的檢閱條件式存取結果 在 P1、P2 會評估存取原則,而不會強制執行。 關閉 P1、P2 存取原則未啟用,且對用戶沒有任何影響。 選取 [ 建立],以啟用測試條件式存取原則。
範本 1:風險為基礎的存取控制
大部分使用者都有可追蹤的正常行為,而當他們超出此標準範圍時,光是允許他們登入就可能會有風險。 您可能想要封鎖該使用者,或可能只是要求他們執行多重要素驗證,以證明他們確實是他們所說的人。 登入風險表示特定的驗證要求未獲身分識別擁有者授權的可能性。 具有 P2 授權的 Azure AD B2C 租使用者可以建立條件式存取原則,併入Microsoft Entra ID Protection 登入風險偵測。
請注意 B2C 的 Identity Protection 偵測限制。 如果偵測到風險,使用者可以執行多重要素驗證來自我補救並關閉有風險的登入事件,以避免系統管理員受到不必要的干擾。
透過 Azure 入口網站或 Microsoft Graph API 設定條件式存取,以啟用登入風險型條件式存取原則,要求在登入風險為中或高時需要 MFA。
- 在[包含]下,選取[所有使用者]。
- 在 排除 下,選擇 使用者和群組,然後選擇您組織的緊急存取帳戶或「破窗」帳戶。
- 選擇 完成。
- 在 [雲端應用程式或動作>包含] 下,選取 [所有雲端應用程式]。
- 在 [條件]> [登入風險] 底下,將 [設定] 設為 [是]。 在 [選取登入風險層級] 下,此原則將套用至
- 選取 [高 ] 和 [ 中]。
- 選擇 完成。
- 在 [存取控制]>[授權] 底下,選擇 [授予存取]、[需要多重要素驗證],然後選擇 [選擇]。
- 確認您的設定,並將 [啟用原則] 設定為 [開啟]。
- 選取建立以創建並啟用您的策略。
使用條件式存取 API 啟用樣本 1 (選擇性)
使用 MS Graph API 建立以風險為基礎的條件式存取原則。 如需詳細資訊,請參閱 條件式存取 API。 下列範本可在僅限報表模式中用來建立名稱為 "範本一:要求中等以上登入風險的多因素驗證 (MFA)" 的條件式存取政策。
{
"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) 和密碼變更。
若要設定以使用者為基礎的條件式存取:
- 登入 Azure 入口網站。
- 流覽至 Azure AD B2C>安全性>條件式存取。
- 選擇 新政策。
- 請為您的政策命名。 建議組織針對其原則的名稱建立有意義的標準。
- 在 [指派] 下,選取 [使用者和群組]。
- 在[包含]下,選取[所有使用者]。
- 在 排除 下,選擇 使用者和群組,然後選擇您組織的緊急存取帳戶或「破窗」帳戶。
- 選擇 完成。
- 在 [雲端應用程式或動作>包含] 下,選取 [所有雲端應用程式]。
- 在 [條件]> [使用者風險] 底下,將 [設定] 設為 [是]。 在 [設定強制執行原則所需的用戶風險等級] 下
- 選取 [高 ] 和 [ 中]。
- 選擇 完成。
- 在 [訪問控制>授與] 底下,選取 [授與存取]、[需要變更密碼],然後選取 [選取]。 根據預設,也需要多重要素驗證。
- 確認您的設定,並將 [啟用原則] 設定為 [開啟]。
- 選取建立以創建並啟用您的策略。
使用條件式存取 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 設定條件式存取,以啟用條件式存取原則封鎖特定位置的存取。 如需詳細資訊,請參閱 在條件式存取原則中使用位置條件
定義位置
- 登入 Azure 入口網站。
- 流覽至 Azure AD B2C>安全性>條件式存取>具名位置。
- 選取 國家/地區位置 或 IP範圍位置
- 給你的地點取個名字吧。
- 提供IP範圍,或選取您所指定位置的國家/地區。 如果您選擇 [國家/地區],則可以選擇是否要包含未知的區域。
- 選擇儲存。
若要啟用條件存取原則:
- 登入 Azure 入口網站。
- 流覽至 Azure AD B2C>安全性>條件式存取。
- 選擇 新政策。
- 請為您的政策命名。 建議組織針對其原則的名稱建立有意義的標準。
- 在 [指派] 下,選取 [使用者和群組]。
- 在[包含]下,選取[所有使用者]。
- 在 排除 下,選擇 使用者和群組,然後選擇您組織的緊急存取帳戶或「破窗」帳戶。
- 選擇 完成。
- 在 [雲端應用程式或動作>包含] 下,選取 [所有雲端應用程式]。
- 在 條件>位置 中
- 將 [設定] 設定為 [是]。
- 在 [包含] 底下,選取 [選取的位置]
- 選取您建立的已命名的位置。
- 點擊 [選取]
- 在 [訪問控制]> 下,選取 [ 封鎖存取],然後選取 [ 選取]。
- 確認您的設定,並將 [啟用原則] 設定為 [開啟]。
- 選取建立以創建並啟用您的策略。
使用條件式存取 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 方法中註冊。 您在正式運作前建立的任何註冊使用者流程都不會自動反映這個新行為,但您可以藉由建立新的使用者流程來包含該行為。
若要啟用使用者流程的條件式存取,請確定版本支援條件式存取。 這些使用者流程版本會標示為 建議。
- 登入 Azure 入口網站。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
- 在 [Azure 服務] 底下,選取 [Azure AD B2C]。 或使用搜尋方塊來尋找並選取 [Azure AD B2C]。
- 在原則底下,選擇使用者流程。 然後選取使用者流程。
- 選取 [屬性 ],並確定使用者流程支持條件式存取,方法是尋找標示為 條件式存取的設定。
- 在 [ 多重要素驗證 ] 區段中,選取所需的 方法類型,然後在 [MFA 強制執行] 底下,選取 [ 條件式]。
- 在 [ 條件式存取 ] 區段中,選取 [ 強制執行條件式存取原則 ] 複選框。
- 選取 [儲存]。
將條件式存取新增至您的原則
- 取得 GitHub 上條件式存取原則的範例。
- 在每個檔案中,將字串
yourtenant取代為您的 Azure AD B2C 租用戶名稱。 例如,如果 B2C 租使用者的名稱是 contosob2c,則的所有實例yourtenant.onmicrosoft.com都會變成contosob2c.onmicrosoft.com。 - 上傳原則檔案。
設定用於 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>
測試您的自定義原則
- 選取
B2C_1A_signup_signin_with_ca或B2C_1A_signup_signin_with_ca_whatif原則以開啟其概觀頁面。 然後選取 [ 執行使用者流程]。 在 [應用程式] 底下,選取 [webapp1]。 Reply URL 應顯示https://jwt.ms。 - 複製「執行使用者流程端點」 之下的 URL。
- 若要模擬有風險的登入,請開啟 Tor Browser ,並使用您在上一個步驟中複製的 URL 來登入已註冊的應用程式。
- 在登入頁面中輸入要求的信息,然後嘗試登入。 令牌會傳送回
https://jwt.ms並顯示給您。 在 jwt.ms 譯碼的令牌中,您應該會看到登入遭到封鎖。
測試您的使用者流程
- 選取您所建立的使用者流程以開啟其概觀頁面,然後選取 [ 執行使用者流程]。 在 [應用程式] 底下,選取 [webapp1]。
Reply URL 應顯示
https://jwt.ms。 - 複製「執行使用者流程端點」 之下的 URL。
- 若要模擬有風險的登入,請開啟 Tor Browser ,並使用您在上一個步驟中複製的 URL 來登入已註冊的應用程式。
- 在登入頁面中輸入要求的信息,然後嘗試登入。 令牌會傳送回
https://jwt.ms並顯示給您。 在 jwt.ms 譯碼的令牌中,您應該會看到登入遭到封鎖。
檢閱稽核報告中的條件式存取結果
若要檢閱條件式存取事件的結果:
- 登入 Azure 入口網站。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
- 在 [Azure 服務] 底下,選取 [Azure AD B2C]。 或使用搜尋方塊來尋找並選取 [Azure AD B2C]。
- 在 [活動] 底下,選取 [ 稽核記錄]。
- 將 [類別 ] 設定為 B2C 並將 [活動資源類型 ] 設定為 IdentityProtection,以篩選稽核記錄。 接著選取套用。
- 檢閱過去七天的稽核活動。 包含下列型態的活動:
- 評估條件式存取原則:此稽核記錄專案表示條件式存取評估是在驗證期間執行。
- 補救使用者:此專案表示使用者已符合條件式存取原則的授與或需求,且此活動已向風險引擎回報,以減輕(降低用戶的風險)。
- 選取清單中的 [評估條件式存取原則 記錄] 專案,以開啟 [ 活動詳細數據:稽核記錄 ] 頁面,其中顯示稽核記錄標識符,以及 [其他詳細 數據] 區段中的這項資訊:
- ConditionalAccessResult:條件式原則評估所需的授權要求。
- AppliedPolicies:符合條件且原則為 ON 的所有條件式存取原則清單。
- ReportingPolicies:設定為僅限報告模式的條件式存取原則清單,以及符合條件的位置。