[ SharePoint ADFS 開發部署系列 (一)]

任澤華Ryan發表於2017-04-24

前言

本文完全原創,轉載請說明出處,希望對大家有用。

隨著企業資訊化建設逐漸成熟,基於微軟體系的企業內部系統架構在眾多企業中得到應用,隨之而來的使用者統一身份認證(SSO)問題成為企業IT部門急需解決的問題。本期主題圍繞Active Directory Federation Services與SharePoint Server 2013整合,理解ADFS的實現方式,同時實現以SharePoint企業門戶為中心的企業級辦公平臺,解決基於微軟AD身份驗證的統一身份認證問題。接下來我們從ADFS的安裝、部署、整合等方面,以三篇部落格完成整個系列。

閱讀目錄

  1. 什麼是ADFS
  2. 如何安裝部署
  3. 與SharePoint整合中所用的證書

正文

ADFS介紹

Active Directory Federation Services是一種標準的基礎服務, 它允許在外部網路之間安全共享可信任夥伴的身份資訊。ADFS是基於Web的單點登入(Single Sign-On (SSO))的標準, 它通過實現了foreast間的claim based authentication而了開啟了聯合身份(federated identity).Claim based authentication是一種認證使用者的過程, 它的實現基於裝在trusted token中的關於使用者身份的一系列claims。這樣的一個token通常是由一個能夠通過其他途徑來認證使用者的一個實體來生成並賦予的, 並且這個實體還得被實現了claim based authentication的實體所信任。在ADFS中, 身份的聯合(identity federation )是通過在兩個組織的安全邊界間建立信任關係來實現的. 在一端(account side)的federation server 負責通過在Active Directory domain services中的標準方式認證一個使用者, 然後生成一個包含一系列包含有關這個使用者的claims的token, 包括federation server的實體本身. 另一端(resource side), 另一個federation server會校驗這個token, 然後生成另一個token供本地伺服器接受claimd identify所用. 這允許系統為它的資源提對另外一個安全邊界的某使用者供可控制的訪問許可權, 而不需要讓這個使用者直接登入系統, 也不需要兩個系統共享使用者的identify和密碼。此方式下需要在客戶環境安裝ADFS服務,同時需要第三方應用整合ADFS認證,從而實現使用者的單點登入。ADFS驗證流程如下:

ADFS驗證方式下的身份資訊傳遞步驟:

  1. 使用者開啟瀏覽器訪問Web資源
  2. Web應用根據當前使用者資訊返回是否已登陸的識別符號
  3. 如未登陸,則頁面跳轉至ADFS驗證頁面,要求使用者輸入憑據(AD賬號密碼)
  4. 驗證通過,則返回有效的Token到客戶端
  5. 客戶端攜帶該Token的請求再次傳送到Web資源,Web應用程式成功返回請求的資源資訊

如何安裝部署

ADFS 3.0的安裝官方提供了完整的安裝部署文件:

https://msdn.microsoft.com/en-us/library/azure/dn528857.aspx

以Windows Server 2012 R2為例,開啟ADFS功能,並連線相應的資料庫即可。安裝完成後,通過瀏覽器訪問https://your_adfs_server_url/federationmetadata/2007-06/federationmetadata.xml檢視後設資料檔案:

本次主題圍繞與SharePoint Server 2013的整合,秉承前人栽樹後人乘涼的原則,同時配置也不是本文的重點內容,所以請參考以下配置文件:

https://technet.microsoft.com/zh-cn/library/hh305235.aspx(官方文件)

http://sharepointpals.com/post/Configuring-ADFS-as-Authentication-Provider-For-SharePoint-2013-Web-Application

http://blog.csdn.net/duanchuanttao/article/details/51374678


與SharePoint整合中所用的證書

在安裝和部署過程中,我們參考上面的安裝配置文件即可以正常的完成,但經常會遇到證書的各種問題,如無法信任、匯入版本異常等。下面我們針對配置過程中使用到的證書逐一進行分析講解。

1. ADFS Signing證書

ADFS Signing證書是用於驗證令牌頒發者的身份是否合法,ADFS所支援的SSL傳輸協議,為了保證正確解碼,我們需要將Signing證書匯入到SharePoint中。在使用過程中,請注意證書的有效期限,如果在使用中證書過期,SharePoint會報無法解析令牌的錯誤。證書在繫結前,請注意將該證書所屬證書鏈上的所有證書都匯入計算機證書管理中。比如根證書匯入到根證書信任機構,中間證書匯入到中間證書信任機構。如果匯入的證書鏈不正確,會導致系統請求證書驗證錯誤,具體錯誤我們會在系統優化時來講解。

2. SharePoint 前端伺服器SSL證書

ADFS 3.0支援的信任夥伴必須使用SSL協議,故我們安裝的SharePoint Server 2013中Web伺服器必須安裝私有或共有的SSL證書。證書在繫結前,請注意將該證書所屬證書鏈上的所有證書都匯入計算機證書管理中。比如根證書匯入到根證書信任機構,中間證書匯入到中間證書信任機構。

3. SharePoint Root Authority certificate

這個證書是SharePoint自動生成的根證書,在Windows 驗證下,我們無需使用到該證書。當SharePoint 與 ADFS整合後,系統會使用該證書,並驗證其有效性,具體使用方式,我們在後續系統優化時講解。


結束語

先簡單開個頭,下一篇寫由ADFS返回的Claims,SharePoint又如何使用和儲存這些Claims,請繼續關注後續部落格。

 

相關文章