網絡策略服務器 (NPS) 是 Microsoft 的遠程身份驗證撥入用戶服務 (RADIUS) 服務器的實現。NPS 為您的網絡提供集中式身份驗證、授權和記帳 (AAA)功能。在此設置下,您的網絡訪問服務器 (NAS) 充當 RADIUS 客戶端,并將來自用戶的所有連接請求發送到在 Windows 上運行 NPS 的 RADIUS 服務器,然后將身份驗證和授權信息提供回 NAS。當用戶連接到您的網絡時,NPS 會記錄他們的活動作為其 RADIUS 記帳角色的一部分。
什么是 RADIUS 協議?
RADIUS 是一種具有 AAA 管理功能的客戶端-服務器網絡協議,其傳輸層使用無連接用戶數據報協議 (UDP),并使用端口 1812 進行身份驗證,使用端口 1813 進行授權。
由于 UDP 不需要跨網絡的可靠連接,因此使用 RADIUS 意味著最小的網絡開銷。但是,在網絡質量差的情況下,這也可能導致請求超時。發生這種情況時,RADIUS 客戶端會向服務器發送另一個請求。為確保 RADIUS 在安全的網絡連接上運行,過去曾有過使其與傳輸控制協議 (TCP) 一起工作的舉措,但這些舉措并未超出實驗階段。
身份驗證過程
作為客戶端-服務器網絡協議,RADIUS 具有客戶端和服務器組件。在使用 RADIUS 的典型網絡中,身份驗證和授權過程如下:
- NAS 用作 RADIUS 客戶端,并將身份驗證請求傳遞到 RADIUS 服務器,該服務器在 Windows 或任何其他服務器操作系統上作為后臺進程運行。
- RADIUS 服務器驗證用戶憑據并根據其中央數據庫檢查用戶的訪問權限,中央數據庫可以采用平面文件格式或存儲在外部存儲源(例如 SQL Server 或 Active Directory Server)中。
- 當 RADIUS 服務器在其數據庫中找到用戶及其相關權限時,它會將身份驗證和授權消息傳回 NAS,然后允許用戶訪問網絡及其一系列應用程序和服務。
- NAS 仍然充當 RADIUS 客戶端,在用戶連接到網絡時將計費請求傳回 RADIUS 服務器。這些請求將所有用戶活動記錄到 RADIUS 服務器上。
RADIUS 支持多種身份驗證機制,包括:
- 質詢握手身份驗證協議 (CHAP)
- 密碼驗證協議 (PAP)
- 可擴展身份驗證協議 (EAP)
RADIUS 中的組合身份驗證和授權操作可最大限度地減少流量并提高網絡效率。RADIUS 還支持使用一次性密碼或某種其他機制的多重身份驗證 (MFA),這通常需要客戶端和服務器傳遞比正常情況下更多的消息。在較大的網絡中,RADIUS 服務器還可以充當其他 RADIUS 服務器的代理客戶端。
RADIUS 或 LDAP:哪個用于集中式身份驗證?
LDAP
與 RADIUS 一樣,輕量級目錄訪問協議 (LDAP) 用于用戶身份驗證和授權。LDAP 通過訪問和管理目錄服務(例如 Microsoft 專有的 Active Directory 服務)來執行此角色。至于哪個更好取決于你的具體要求。
由于 LDAP 使用 TLS,客戶端和服務器之間的連接和消息始終是加密的。此外,由于 LDAP 使用 TCP,丟棄請求的可能性為零,盡管這通常意味著更多的網絡開銷。LDAP 也比 RADIUS 更易于設置。
另一方面,LDAP 不支持用戶記帳,盡管這可以使用其他工具(例如 Syslog)來解決。它還不支持開箱即用的多因素身份驗證,但如果需要此功能,您可以使用其他解決方案。
半徑
默認情況下,RADIUS 不加密在客戶端和服務器之間傳遞的任何其他屬性,密碼除外。它確實支持其他身份驗證機制(例如 EAP),從而可以規避此弱點。您還可以使用 RADIUS 實施其他安全機制,例如將服務器和客戶端置于虛擬專用網絡 (VPN) 之后。雖然更復雜,但 RADIUS 支持用戶記帳和 MFA,非常適合在大型企業中使用。但是,它對于希望保護其網絡安全的小型組織也很有用。
作為 RADIUS 服務器的網絡策略服務器
NPS 在早期的 Windows 版本中被稱為 Internet 身份驗證服務 (IAS)。從 Windows 2008 開始,IAS 成為 NPS,Microsoft 向該組件添加了新功能,包括網絡訪問保護和 IPv6 支持。NPS 適用于多種類型的網絡。
為了驗證 Windows 網絡上的用戶憑據,NPS 依賴于 Active Directory 域服務 (AD DS) 域或本地安全帳戶管理器 (SAM) 用戶帳戶數據庫。當運行 NPS 的服務器屬于 AD DS 域時,您可以將 NPS 用作單一登錄解決方案的一部分。在這種情況下,NPS 通過目錄服務的用戶帳戶數據庫對用戶進行身份驗證,將經過身份驗證的用戶登錄到 AD DS 域中。
使用 RADIUS,NPS 代替 NAS 充當與身份驗證、授權和記帳相關的用戶數據的中心位置。如果將 NPS 與遠程訪問服務結合使用,則可以使用 RADIUS 對遠程訪問網絡中的用戶進行身份驗證和授權。運行 NPS 的 RADIUS 服務器為運行在 AWS 上的 Windows 服務器提供了最簡單的身份驗證機制。
作為 RADIUS 代理的網絡策略服務器
除了將 NPS 作為 Windows 上的 RADIUS 服務器之外,您還可以將 NPS 用作 RADIUS 代理客戶端,將身份驗證或記帳消息轉發到其他 RADIUS 服務器。
此用例有用的一些場景是:
- 提供外包網絡訪問服務。然后您可以將連接請求轉發到您的客戶維護的 RADIUS 服務器。
- 擁有不屬于與 Windows RADIUS 服務器相同的域或不屬于與 NPS RADIUS 服務器的域具有雙向信任關系的另一個域的用戶帳戶。
- 使用非 Windows 帳戶數據庫。
- 有大量用戶請求連接。
- 為您的供應商提供 RADIUS 身份驗證和授權。
RADIUS 服務器的計費如何工作?
RADIUS 服務器也用于計費目的。RADIUS 記帳收集數據用于網絡監控、計費或統計目的。計費過程通常在用戶被授予訪問 RADIUS 服務器的權限時開始。但是,RADIUS 計費也可以獨立于 RADIUS 身份驗證和授權使用。
一個基本的 RADIUS 計費過程包括以下步驟:
- 當用戶被授予訪問 RADIUS 服務器的權限時,該過程開始。
- RADIUS 客戶端向 RADIUS 服務器發送稱為計費開始的 RADIUS 計費請求數據包。請求數據包包括用戶 ID、網絡地址、會話標識符和訪問點。
- 在會話期間,客戶端可以向 RADIUS 服務器發送稱為臨時更新的額外計費請求數據包。這些數據包包括當前會話持續時間和數據使用情況等詳細信息。此數據包用于更新有關用戶會話的信息到 RADIUS 服務器。
- 一旦用戶對 RADIUS 服務器的訪問結束,RADIUS 客戶端將向 RADIUS 服務器發送另一個計費請求數據包,稱為計費停止。該數據包包括總時間、數據、傳輸的數據包、斷開連接的原因以及與用戶會話相關的其他信息。