Service Principal Names (SPNs)
Service Principal Names (SPNs) 是 Microsoft Active Directory 中用於識別特定服務實體(通常是應用程式或服務)的唯一名稱。SPNs是用來建立和管理Kerberos驗證的一種機制。當用戶或應用程式需要與某個服務進行安全通信時,它們使用SPNs來定位和識別該服務。
以下是一些關於SPNs的重要概念和使用方式:
1. **唯一識別服務實體:** SPN是用來唯一識別特定的服務實體的名稱。它通常針對一個特定的應用程式或服務而存在,確保在Active Directory中是唯一的。
2. **Kerberos驗證:** SPNs主要用於支援Kerberos驗證協定。當用戶或應用程式需要訪問某個服務時,它們會使用SPN進行身份驗證,以獲得安全的票據(Ticket-Granting Ticket,TGT)。
3. **格式:** 一個SPN的格式通常是 `serviceclass/host:port/service-name`,其中 `serviceclass` 是服務的類別(例如,HTTP、SQL、MSSQL),`host:port` 是主機名稱和端口,`service-name` 是服務的名稱。例如,HTTP服務的SPN可能是 `HTTP/server.example.com`。
4. **設定和創建:** SPNs通常由系統管理員在Active Directory中設定或創建。這可以在服務帳戶上完成,該帳戶用於執行相應的應用程式或服務。
5. **Delegation:** SPNs也與委派(Delegation)有關。委派允許服務帳戶代表用戶向其他服務發出請求。SPNs在進行委派時起到關鍵的角色。
使用SPNs的主要優勢是提供了一種標準的方式,讓用戶和應用程式通過Kerberos進行安全身份驗證。這有助於提高系統的安全性,同時還簡化了管理和維護的工作。