SharePoint 2010 和 Azure 存取控制服務的同盟 SAML 驗證 - 第 2 部分
英文原文已於 2011 年 5 月 7 日星期六發佈
在這個系列的第一篇文章 (https://blogs.technet.com/b/speschka/archive/2011/05/05/federated-saml-authentication-with-sharepoint-2010-and-azure-access-control-service-part-1.aspx (可能為英文網頁)) 中,我說明了如何設定 SharePoint,以便使用 Azure 存取控制服務 (ACS) 直接建立信任,並且供您 ADFS、Yahoo、Google 和 Windows Live 之間的同盟驗證,然後使用同盟驗證進入 SharePoint。在第 2 部分中,我會使用類似的案例,而且是幾乎回溯到第 1 部分的實際實作,我們將在 SharePoint 和 ADFS 之間設定一般信任,並且將 ACS 設定做為 ADFS 中的識別提供者,然後使用該提供者重新導向登入,接著再次返回 SharePoint。至少在 SharePoint 和 ADFS 之間,這種信任是我認為較多 SharePoint 使用者熟悉的信任,而且也是我認為現今可以更容易打入許多公司較常使用的案例。
如同在第 1 部分的做法,我不會說明如何設定 ACS 的細節,而是將那部分留給負責的團隊。至於第 2 部分,下列是執行步驟:
1. 在以 ADFS 設定的情況下,設定您的 SharePoint Web 應用程式和網站集合
-
- 首先,您應該建立 SPTrustedIdentityTokenIssuer,這是 ADFS 中的信賴憑證者,以及 SharePoint Web 應用程式和網站集合。請確定您可以使用 ADFS 認證登入網站。如需有關如何執行這項操作的詳細資訊,請參閱我先前的文章:https://blogs.msdn.com/b/sharepoint_cht/archive/2010/11/26/sharepoint-2010-adfs-v2.aspx。
2. 開啟 [存取控制管理] (Access Control Management) 頁面
-
- 登入 Windows Azure 管理入口網站。按一下左窗格中的 [服務匯流排] (Service Bus)、[存取控制] (Access Control) 和 [快取] (Caching) 功能表。按一下左窗格頂端的 [存取控制] (Access Control) (在 AppFabric 之下),按一下右窗格中您的命名空間,然後按一下功能區 [管理] (Manage) 部分中的 [存取控制服務] (Access Control Service) 按鈕。隨即會出現 [存取控制管理] (Access Control Management) 頁面。
3. 建立 ADFS 和 ACS 之間的信任
-
- 在這個步驟中,我們會設定 ACS 做為 ADFS 中的識別提供者。若要開始,請移至您的 ADFS 伺服器並開啟 AD FS 2.0 管理主控台
- 移至 AD FS 2.0…[信任關係] (Trust Relationships)…[宣告提供者信任] (Claims Provider Trusts) 節點並按一下右窗格的 [新增宣告提供者信任] (Add Claims Provider Trust) 連結
- 按一下 [啟動] (Start) 按鈕開始精靈
- 使用預設選項匯入有關線上所發佈之信賴憑證者的資料。您需要使用的 URL 是在 ACS 管理入口網站內。返回已開啟入口網站的瀏覽器,並按一下左窗格中 [信任關係] (Trust Relationships) 功能表底下的 [應用程式整合] (Application Integration ) 連結
- 複製顯示 WS 同盟中繼資料的 URL,並貼到 ADFS 精靈中的 [同盟中繼資料位址 (主機名稱或 URL):] (Federation metadata address (host name or URL):) 編輯方塊,然後按 [下一步] (Next) 按鈕
- 輸入顯示名稱以及一些附註 (選擇性),然後按 [下一步] (Next) 按鈕
- 保留允許使用者存取識別提供者的預設選項,並按 [下一步] (Next) 按鈕。
- 按 [下一步] (Next) 按鈕,以便建立識別提供者,並將方塊保持核取狀態以開啟規則編輯器對話方塊。本章節其餘內容會與我在這篇 https://blogs.technet.com/b/speschka/archive/2010/11/24/configuring-adfs-trusts-for-multiple-identity-providers-with-sharepoint-2010.aspx (可能為英文網頁) 說明如何設定兩部 ADFS 伺服器之間信任的內容非常類似:
您必須建立規則,才能傳遞從 IP ADFS 伺服器取得的所有宣告。因此,請在規則對話方塊中,針對您要傳送至 SharePoint 的每個宣告執行下列步驟:
- 按一下 [新增規則] (Add Rule)。
- 在 [宣告規則範本] (Claim Rule Template) 下拉式清單中選取 [傳遞] (Pass Through) 或 [篩選內送宣告] (Filter an Incoming Claim),然後按 [下一步] (Next) 按鈕。
- 為它命名宣告名稱 - 包含要傳遞的宣告名稱可能會很有用。在 [內送宣告類型] (Incoming Claim Type) 下拉式清單中,選取您要傳遞的宣告類型,例如 [電子郵件地址] (E-Mail Address)。我通常會將 [傳遞所有宣告值] (Pass through all claim values) 的預設選項保持選取狀態,但是如果您有不同的商務規則,可以選擇適用的選項,然後按一下 [完成] (Finish) 按鈕。請注意,如果您選擇傳遞所有宣告值,則 ADFS 會向您顯示警告對話方塊。
一旦為 SharePoint 中每個需要的宣告新增傳遞宣告之後,您就可以關閉規則對話方塊。現在,對於 ADFS 設定的最後一部分,您必須找到 SharePoint 信賴憑證者。請按一下 [編輯宣告規則] (Edit Claim Rules) 對話方塊,針對您在上一個步驟中制定的每個傳遞宣告規則,ALSO 需要為 SharePoint 信賴憑證者新增傳遞宣告規則。如此,將允許宣告經由信任的宣告提供者從 ACS 流到 ADFS,接著經由信任的信賴憑證者流出至 SharePoint。
您的 ADFS 設定現已完成。
4. 加入 ADFS 做為 ACS 中的信賴憑證者
-
- 返回已開啟入口網站的瀏覽器,並按一下左窗格中 [信任關係] (Trust Relationships) 功能表底下的 [信賴憑證者應用程式] (Relying party applications) 連結
- 按一下 [新增] (Add) 連結
- 填寫 [信賴憑證者應用程式設定] (Relying Party Application Settings) 區段
- 輸入顯示名稱,例如 “ADFS to ACS”
- 使用 [手動輸入設定] (Enter settings manually) 預設模式
- 在 [領域] (Realm) 編輯方塊中,您必須輸入 ADFS 將與要求一起傳送的領域。您會發現,ADFS 具有特定的領域清單,會在重新導向至其他識別提供者時傳送,因此,請「不要」使用在 SharePoint 中建立 SPTrustedIdentityTokenIssuer 時使用的領域。相反地,我建議您使用 https://yourFullyQualifiedAdfsServerName/adfs/services/trust。
- 對於傳回 URL,請使用 https:// yourFullyQualifiedAdfsServerName /adfs/ls/。
- Token 格式降級應為 SAML 2.0 或 1.1。由於 Token 會傳送到 ADFS 而非 SharePoint,並且 ADFS 支援 SAML 2.0 Token,因此,您不需要像直接連線到 SharePoint 時般降級為 SAML 1.1
- 您可以將 Token 週期 (秒) 設定為任何想要的值。預設為 10 分鐘;我將我的設定為 3600,也就是 1 小時。
- 填寫 [驗證設定] (Authentication Settings) 區段
- 若是識別提供者,您可以將它們全選,除非您已經加入與先前的識別提供者相同的 ADFS 伺服器 (就像您依照這個系列的第一篇文章的步驟執行一樣)。如果您真的加入了,則可以檢查所有項目,除了指回您現在設定為信賴憑證者的相同 ADFS 伺服器的識別提供者以外。
- 在 [規則] (Rule) 群組底下,由於時間緊迫,我要建議您針對我在第 1 部分解釋的規則群組遵循指引,或者如果您完成第 1 部分,則只要從清單中選取該規則群組即可。
- 在 [Token 簽署設定] (Token Signing Settings) 中,您可以將預設選項保持選取狀態,亦即 [使用服務命名空間憑證 (標準)] (Use service namespace certificate (standard))。
按一下 [儲存] (Save) 按鈕儲存您的變更並建立信賴憑證者。
您現在應該可以使用 ADFS 或 ACS 登入您的 SharePoint 網站。不過,請記住一件事,ADFS 會寫入 Cookie 以記住您上次使用的識別提供者。從那時候開始,它將會提示您識別提供者,除非您使用如 IE 中 [InPrivate 瀏覽] 視窗之類的工具 (我之所以特別用粗體字型強調,是因為它很容易被遺忘或搞混)。例如,下圖是您第一次被重新導向到 ADFS 伺服器或者您使用 InPrivate 瀏覽器工作階段時會看到的視窗:
其餘的部分就如同這個系列的第 1 部分所述 (包括使用 Windows Live ID 的電子郵件地址時出現的警告),因此我不再張貼螢幕擷取畫面,因為它們幾乎是一樣的。透過完成這個系列,您現在應該可以成功地將 ADFS、ACS 和所有 ACS 支援的識別提供者整合到 SharePoint 2010 環境。
這是翻譯後的部落格文章。英文原文請參閱 Federated SAML Authentication with SharePoint 2010 and Azure Access Control Service Part 2