使用驗證原則

在 AD FS 中,在 Windows Server 2012 R2 中,存取控制和驗證機制都會以包含使用者、裝置、位置和驗證資料的多個因素來增強。 這些增強功能可讓您透過使用者介面或 Windows PowerShell,透過多重要素存取控制和多重要素驗證,以使用者身分識別或群組成員資格、網路位置、已加入工作場所的裝置資料,以及執行多重要素驗證 (MFA) 時的驗證狀態,來管理將存取權限授與 AD FS 安全應用程式的風險。

如需 Windows Server 2012 R2 中 Active Directory 同盟服務 (AD FS) 之 MFA 和多重要素存取控制的詳細資訊,請參閱下列主題:

透過 AD FS 管理嵌入式管理單元設定驗證原則

若要完成這些程序,至少需要本機電腦上之 Administrators 群組的成員資格或同等權限。 請參閱 本機與網域預設群組使用適當帳戶和群組成員資格的詳細資料。

在 AD FS 的 Windows Server 2012 R2 中,您可以在全域範圍指定驗證原則,此原則適用于所有受 AD FS 保護的應用程式和服務。 您也可以針對依賴合作物件信任且受 AD FS 保護的特定應用程式和服務,設定驗證原則。 針對每個信賴憑證者信任指定特定應用程式的驗證原則,並不會覆寫全域驗證原則。 如果全域或每個信賴憑證者信任驗證原則需要 MFA,當使用者嘗試向此信賴憑證者信任進行驗證時,就會觸發 MFA。 全域驗證原則是針對沒有特定設定驗證原則的應用程式和服務,信賴憑證者信任的信賴憑證者信任。

在 Windows Server 2012 R2 全域設定主要驗證

  1. 在 [伺服器管理員] 中按一下 [工具],然後選取 [AD FS 管理]。

  2. 在 AD FS] 嵌入式管理單元中,按一下 [ 驗證原則]。

  3. 在 [主要驗證] 區段中,按一下 [全域設定旁的 [編輯]。 您也可以用滑鼠右鍵按一下 [ 驗證原則],然後選取 [ 編輯全域主要驗證],或是在 [ 動作 ] 窗格下,選取 [ 編輯全域主要驗證]。 Screenshot that highlights Edit Global Primary Authentication option.

  4. 在 [ 編輯全域驗證原則 ] 視窗中,您可以在 [ 主要 ] 索引標籤上,將下列設定設定為全域驗證原則的一部分:

設定每個信賴憑證者信任的主要驗證

  1. 在 [伺服器管理員] 中按一下 [工具],然後選取 [AD FS 管理]。

  2. 在 AD FS] 嵌入式管理單元中,按一下 [每個信賴憑證者信任的驗證原則] ,然後按一下您要設定驗證原則的信賴憑證者信任。

  3. 以滑鼠右鍵按一下您要設定驗證原則的信賴憑證者信任,然後選取 [ 編輯自訂主要驗證],或在 [ 動作 ] 窗格中,選取 [ 編輯自訂主要驗證]。 Screenshot that highlights the Edit Custom Primary Authentication menu option.

  4. relying_party_trust_name > 的 [編輯驗證原則] 視窗中,您可以在 [>] 索引標籤下,將下列設定設定為每個信賴憑證者信任驗證原則的一部分:

    • 使用者每次登入時都必須提供其認證,每次登入時 都必須提供他們 的認證核取方塊。 Screenshot that shows how to configure settings as part of the Per Relying Party Trust authentication policy.

全域設定多重要素驗證

  1. 在 [伺服器管理員] 中按一下 [工具],然後選取 [AD FS 管理]。

  2. 在 AD FS] 嵌入式管理單元中,按一下 [ 驗證原則]。

  3. 在 [多重要素驗證] 區段中,按一下 [全域設定旁的 [編輯]。 您也可以用滑鼠右鍵按一下 [ 驗證原則],然後選取 [ 編輯全域多重要素驗證],或在 [ 動作 ] 窗格中,選取 [ 編輯全域多重要素驗證]。 Screenshot that highlights the Edit Global Multi-factor Authentication option.

  4. 在 [ 編輯全域驗證原則 ] 視窗的 [ 多重要素 ] 索引標籤下,您可以將下列設定設定為全域多重要素驗證原則的一部分:

警告

您只能設定全域的其他驗證方法。 auth policies

設定每個信賴憑證者信任的多重要素驗證

  1. 在 [伺服器管理員] 中按一下 [工具],然後選取 [AD FS 管理]。

  2. 在 AD FS] 嵌入式管理單元中,按一下 [每個信賴憑證者信任的驗證原則] ,然後按一下您要設定 MFA 的信賴憑證者信任。

  3. 以滑鼠右鍵按一下您要設定 MFA 的信賴憑證者信任,然後選取 [ 編輯自訂多因素驗證],或在 [ 動作 ] 窗格中,選取 [ 編輯自訂多因素驗證]。

  4. 在 [ Relying_party_trust_name > 的編輯驗證原則] 視窗中,您可以在 [>] 索引標籤底下,將下列設定設定為每個信賴憑證者信任驗證原則的一部分:

    • 透過 [使用者/群組]、[裝置] 和 [位置] 區段底下可用選項的 MFA 設定或條件。

透過 Windows PowerShell 設定驗證原則

Windows PowerShell 可讓您更靈活地使用各種不同的存取控制因素,以及 Windows Server 2012 R2 中 AD FS 所提供的驗證機制,來設定必要的驗證原則和授權規則,以針對 AD FS 保護的資源執行真正的條件式存取。

若要完成這些程序,至少需要本機電腦上之 Administrators 群組的成員資格或同等權限。 請參閱 本機與網域預設群組 使用適當帳戶和群組成員資格的詳細資料 (

透過 Windows PowerShell 設定其他驗證方法

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。
`Set-AdfsGlobalAuthenticationPolicy –AdditionalAuthenticationProvider CertificateAuthentication  `

警告

若要確認是否已順利執行此命令,可以執行 Get-AdfsGlobalAuthenticationPolicy 命令。

根據使用者的群組成員資格資料來設定 MFA 的每一信賴憑證者信任

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,並執行下列命令:
`$rp = Get-AdfsRelyingPartyTrust –Name relying_party_trust`

警告

請務必以您的信賴憑證者信任名稱取代 relying_party_trust >

  1. 在相同的 Windows PowerShell 命令視窗中,執行下列命令。
$MfaClaimRule = "c:[Type == '"https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid'", Value =~ '"^(?i) <group_SID>$'"] => issue(Type = '"https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod'", Value '"https://schemas.microsoft.com/claims/multipleauthn'");"

Set-AdfsRelyingPartyTrust –TargetRelyingParty $rp –AdditionalAuthenticationRules $MfaClaimRule

注意

請務必將 < group_SID 取代 > 為 ACTIVE DIRECTORY (AD) 群組的安全識別碼 (SID) 的值。

根據使用者的群組成員資格資料來全域設定 MFA

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。
$MfaClaimRule = "c:[Type == '" https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid'", Value == '"group_SID'"]
 => issue(Type = '"https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod'", Value = '"https://schemas.microsoft.com/claims/multipleauthn'");"

Set-AdfsAdditionalAuthenticationRule $MfaClaimRule

注意

請務必將 group_SID >取代為 AD 群組的 SID 值。

根據使用者的位置全域設定 MFA

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。
$MfaClaimRule = "c:[Type == '" https://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork'", Value == '"true_or_false'"]
 => issue(Type = '"https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod'", Value = '"https://schemas.microsoft.com/claims/multipleauthn'");"

Set-AdfsAdditionalAuthenticationRule $MfaClaimRule

注意

請務必將 true_or_false >取代為 truefalse 。 此值取決於您的特定規則條件,該條件是根據存取要求是來自外部網路或內部網路所決定。

根據使用者的裝置資料來全域設定 MFA

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。
$MfaClaimRule = "c:[Type == '" https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser'", Value == '"true_or_false"']
 => issue(Type = '"https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod'", Value = '"https://schemas.microsoft.com/claims/multipleauthn'");"

Set-AdfsAdditionalAuthenticationRule $MfaClaimRule

注意

請務必將 true_or_false >取代為 truefalse 。 此值取決於您的特定規則條件,該條件是根據裝置是否已加入工作地點而定。

如果存取要求來自外部網路,而不是從工作地點加入的裝置,則設定全域 MFA

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。
`Set-AdfsAdditionalAuthenticationRule "c:[Type == '"https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser'", Value == '"true_or_false'"] && c2:[Type == '"https://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork'", Value == '" true_or_false '"] => issue(Type = '"https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod'", Value ='"https://schemas.microsoft.com/claims/multipleauthn'");" `

注意

請務必以或來取代 true_or_false >的兩個實例 truefalse ,這取決於您的特定規則條件。 規則條件取決於裝置是否已加入工作地點,以及存取要求是來自外部網路或內部網路。

如果存取來自屬於特定群組的外部網路使用者,則設定全域 MFA

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。
Set-AdfsAdditionalAuthenticationRule "c:[Type == `"https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid`", Value == `"group_SID`"] && c2:[Type == `"https://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork`", Value== `"true_or_false`"] => issue(Type = `"https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod`", Value =`"https://schemas.microsoft.com/claims/

注意

請務必以群組 SID 的值取代 group_SID > ,並使用或來>truefalse ,這取決於根據存取要求來自外部網路或內部網路的特定規則條件。

根據使用者資料,授與應用程式存取權給 Windows PowerShell

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。

    $rp = Get-AdfsRelyingPartyTrust –Name relying_party_trust
    
    

注意

請務必以您的信賴憑證者信任值取代 relying_party_trust >

  1. 在相同的 Windows PowerShell 命令視窗中,執行下列命令。

    
      $GroupAuthzRule = "@RuleTemplate = `"Authorization`" @RuleName = `"Foo`" c:[Type == `"https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid`", Value =~ `"^(?i)<group_SID>$`"] =>issue(Type = `"https://schemas.microsoft.com/authorization/claims/deny`", Value = `"DenyUsersWithClaim`");"
    Set-AdfsRelyingPartyTrust –TargetRelyingParty $rp –IssuanceAuthorizationRules $GroupAuthzRule
    

注意

請務必將 group_SID >取代為 AD 群組的 SID 值。

只有當此使用者的身分識別已通過 MFA 驗證時,才授與受 AD FS 保護之應用程式的存取權

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。
`$rp = Get-AdfsRelyingPartyTrust –Name relying_party_trust `

注意

請務必以您的信賴憑證者信任值取代 relying_party_trust >

  1. 在相同的 Windows PowerShell 命令視窗中,執行下列命令。

    $GroupAuthzRule = "@RuleTemplate = `"Authorization`"
    @RuleName = `"PermitAccessWithMFA`"
    c:[Type == `"https://schemas.microsoft.com/claims/authnmethodsreferences`", Value =~ `"^(?i)https://schemas\.microsoft\.com/claims/multipleauthn$`"] => issue(Type = `"https://schemas.microsoft.com/authorization/claims/permit`", Value = '"PermitUsersWithClaim'");"
    
    

若要授與存取權給受 AD FS 保護的應用程式,只有當存取要求來自註冊給使用者的已加入工作場所裝置時

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。

    $rp = Get-AdfsRelyingPartyTrust –Name relying_party_trust
    
    

注意

請務必以您的信賴憑證者信任值取代 relying_party_trust >

  1. 在相同的 Windows PowerShell 命令視窗中,執行下列命令。
$GroupAuthzRule = "@RuleTemplate = `"Authorization`"
@RuleName = `"PermitAccessFromRegisteredWorkplaceJoinedDevice`"
c:[Type == `"https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser`", Value =~ `"^(?i)true$`"] => issue(Type = `"https://schemas.microsoft.com/authorization/claims/permit`", Value = `"PermitUsersWithClaim`");

若要授與存取權給受 AD FS 保護的應用程式,只有當存取要求來自已註冊的裝置,且該裝置註冊至其身分識別已通過 MFA 驗證的使用者時

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。
`$rp = Get-AdfsRelyingPartyTrust –Name relying_party_trust `

注意

請務必以您的信賴憑證者信任值取代 relying_party_trust >

  1. 在相同的 Windows PowerShell 命令視窗中,執行下列命令。

    $GroupAuthzRule = '@RuleTemplate = "Authorization"
    @RuleName = "RequireMFAOnRegisteredWorkplaceJoinedDevice"
    c1:[Type == `"https://schemas.microsoft.com/claims/authnmethodsreferences`", Value =~ `"^(?i)http://schemas\.microsoft\.com/claims/multipleauthn$`"] &&
    c2:[Type == `"https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser`", Value =~ `"^(?i)true$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit`", Value = `"PermitUsersWithClaim`");"
    
    

只有當存取要求來自其身分識別已通過 MFA 驗證的使用者時,才能將外部網路存取授與受 AD FS 保護的應用程式

  1. 在您的同盟伺服器上,開啟 Windows PowerShell 命令視窗,然後執行下列命令。
`$rp = Get-AdfsRelyingPartyTrust –Name relying_party_trust`

注意

請務必以您的信賴憑證者信任值取代 relying_party_trust >

  1. 在相同的 Windows PowerShell 命令視窗中,執行下列命令。
$GroupAuthzRule = "@RuleTemplate = `"Authorization`"
@RuleName = `"RequireMFAForExtranetAccess`"
c1:[Type == `"https://schemas.microsoft.com/claims/authnmethodsreferences`", Value =~ `"^(?i)http://schemas\.microsoft\.com/claims/multipleauthn$`"] &&
c2:[Type == `"https://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork`", Value =~ `"^(?i)false$`"] => issue(Type = `"https://schemas.microsoft.com/authorization/claims/permit`", Value = `"PermitUsersWithClaim`");"

其他參考資料

AD FS 操作