驗證委托給外部身份提供者。這種模式可以簡化開發(fā),最大限度地減少對用戶管理的要求,并提高了應用程序的用戶體驗。
用戶通常需要使用由提供,并通過與它們有商業(yè)關系的不同組織主持的多個應用程序一起工作。但是,這些用戶可能被迫使用特定的(和不同的)的憑證,每一個。這可以:
用戶會相反,通常期望使用相同的憑證用于這些應用。
實現(xiàn)了可以使用聯(lián)合身份的認證機制。從應用程序代碼中分離的用戶身份驗證和身份驗證委派到受信任的身份提供者,可以大大簡化開發(fā),讓用戶使用更廣泛的身份提供者(國內(nèi)流離失所者),同時最大限度地減少管理開銷進行身份驗證。它也可以讓你清楚地分離的授權認證。
可信身份提供者可能包括公司目錄,內(nèi)部部署聯(lián)合身份驗證服務,其他安全令牌服務(STS的)業(yè)務合作伙伴提供的,或社會身份提供者可以驗證誰擁有用戶,例如,微軟,谷歌,雅虎或Facebook帳戶。
圖1示出了當客戶端應用程序需要訪問要求身份驗證的服務的聯(lián)合身份模式的原理。該認證是通過身份提供者(IDP),在演唱其工作與安全令牌服務(STS)的執(zhí)行。境內(nèi)流離失所者問題的主張有關身份驗證的用戶的信息安全令牌。該信息被稱為權利要求中,包括用戶的身份,并且還可以包括其他信息,例如角色成員和更細粒度的訪問權限。
圖1 - 聯(lián)合身份驗證概述
該模型通常被稱為基于聲明的訪問控制。應用程序和服務授權訪問基于包含在令牌中的權利要求的特征和功能。要求身份驗證必須相信國內(nèi)流離失所者的服務??蛻舳藨贸绦虻穆?lián)系人執(zhí)行身份驗證境內(nèi)流離失所者。如果認證成功,則的 IdP 返回包含用于識別用戶于 STS 的權利要求書的令牌(注意的 IdP 和 STS 可以是相同的服務)。在 STS 可以改變和增大中根據(jù)預定義的規(guī)則,令牌中的權利要求書,將其返回到客戶端之前。然后,客戶端應用程序可以將此令牌傳遞給服務作為其身份證明。
注意 在某些情況下可能會有額外的 STS 的信任鏈。例如,在微軟 Azure 的場景描述后,內(nèi)部部署 STS 信任 STS 另一個是負責訪問的身份提供者對用戶進行認證。這種方法是在企業(yè)的情況普遍,其中有一個本地 STS 和目錄。
聯(lián)合身份驗證提供了一個基于標準的解決方案,在不同信任域身份的問題,并且可以支持單點登錄。它正在成為在所有類型的應用,特別是云托管的應用越來越普遍,因為它支持上,而不需要直接網(wǎng)絡連接到身份提供單點登錄。用戶不必輸入憑據(jù)為每一種應用。這增加了安全性,因為它阻止了訪問許多不同的應用程序所需的憑據(jù)的擴散,同時也隱藏了用戶的憑據(jù)所有,但原來的身份提供者。應用程序只看到包含的令牌中的身份驗證信息。
聯(lián)合身份也具有重大的優(yōu)點,即人的身份和憑證管理是身份提供者的責任。應用程序或服務并不需要提供身份管理功能。另外,在企業(yè)環(huán)境中,企業(yè)目錄不需要知道關于用戶(提供它信任的身份提供者),它去除了管理該目錄中的用戶身份的所有的管理開銷。
設計實現(xiàn)聯(lián)合身份驗證的應用程序時考慮以下因素:
此模式是非常適合的范圍內(nèi)的情況下,如:
這種模式可能不適合于下列情況:
組織舉辦了多租戶軟件即在 Azure 中的服務(SaaS)應用程序。該應用程序 incudes 一個網(wǎng)站,租戶可以用它來管理應用程序為自己的用戶。該應用程序允許租戶使用由活動目錄聯(lián)合服務(ADFS)產(chǎn)生的,當用戶通過該組織自己的 Active Directory 身份驗證的聯(lián)合身份訪問租戶的網(wǎng)站。圖2示出了該過程的概述。
圖2 - 用戶如何在大型企業(yè)用戶訪問應用程序
在圖 2 所示的場景中,商戶驗證自己的身份提供者(步驟1),在這種情況下 ADFS。在成功驗證租客,ADFS 發(fā)出的令牌??蛻舳藶g覽器轉發(fā)此令牌至 SaaS 應用的聯(lián)合提供者,其信任的租戶的 ADFS 發(fā)出令牌,以便取回的令牌是有效的 SaaS 的聯(lián)合提供者(步驟 2)。如果有必要,在 SaaS 聯(lián)合會提供商上執(zhí)行令牌中的權利要求書的權利要求到該應用程序識別的新令牌返回給客戶機瀏覽器之前(步驟3)的變換。應用程序信任的 SaaS 的聯(lián)合提供者發(fā)出的令牌,并使用在令牌中的權利要求書申請授權規(guī)則(步驟 4)。
租戶將不再需要記住不同的憑據(jù)來訪問應用程序,以及管理員租戶的公司將能夠在自己的 ADFS 配置可以訪問應用程序的用戶的列表。
更多建議: