RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是單點(diǎn)登錄?解讀單點(diǎn)登錄兩個(gè)協(xié)議:SAML、OAuth2

jf_ro2CN3Fa ? 來(lái)源:jdon./banq ? 作者:jdon./banq ? 2022-11-14 14:44 ? 次閱讀

什么是單點(diǎn)登錄?

SSO 的類型

單點(diǎn)登錄 SSO 的好處

什么是 SAML(安全斷言標(biāo)記語(yǔ)言)?

SAML 術(shù)語(yǔ)

什么是 OAuth2?

什么是 OpenID Connect (OIDC)?

OIDC 用于對(duì)用戶進(jìn)行身份驗(yàn)證

啟用 OAuth2 和 OIDC 的示例登錄頁(yè)面

OAuth2 流與 OIDC 集成

何時(shí)使用 SAML 以及何時(shí)使用 OAuth2(使用 OIDC)

在本文中,我們將了解單點(diǎn)登錄 (SSO) 和 SSO 廣泛使用的兩種協(xié)議,即 SAML 和OAuth2。這是任何程序員都需要理解的復(fù)雜領(lǐng)域之一。

什么是單點(diǎn)登錄?

單點(diǎn)登錄 (SSO) 是用戶可以使用一組憑據(jù)登錄多個(gè)應(yīng)用程序的過(guò)程??紤]到如今網(wǎng)站的數(shù)量以及其中大多數(shù)都要求進(jìn)行身份驗(yàn)證,這是一個(gè)方便且高效的功能。我們都知道,我們無(wú)法為每個(gè)應(yīng)用程序跟蹤如此多的憑據(jù)集。SSO 來(lái)救援了!??!用戶無(wú)需一遍又一遍地建立身份,只需對(duì)用戶進(jìn)行一次身份驗(yàn)證,然后就可以訪問(wèn)多個(gè)不同的服務(wù)和應(yīng)用程序。一個(gè)這樣的功能的例子是谷歌。只需一次登錄,您就可以訪問(wèn)他們的所有服務(wù),例如 Gmail、照片、云端硬盤(pán)等等。其他應(yīng)用程序還允許用戶使用 Google 登錄進(jìn)行身份驗(yàn)證,前提是他們的系統(tǒng)與 Google、Facebook 等身份提供商集成

SSO 的類型

提供 SSO 的標(biāo)準(zhǔn)和協(xié)議有很多,其中一些著名的是

安全訪問(wèn)標(biāo)記語(yǔ)言 (SAML)

開(kāi)放授權(quán) (OAuth)

開(kāi)放 ID 連接 (OIDC)

Web 服務(wù)聯(lián)合 (WS-Federation)

Kerberos

在本文的后面部分,我們將詳細(xì)介紹 SAML、OAuth2 和 OIDC。

單點(diǎn)登錄 SSO 的好處

SSO 有很多好處,如下所示

降低訪問(wèn)第三方網(wǎng)站的風(fēng)險(xiǎn)

減少為同一身份重新輸入密碼所花費(fèi)的時(shí)間

更簡(jiǎn)單的審計(jì)管理和使用

更好的行政控制

提高用戶生產(chǎn)力

更好的網(wǎng)絡(luò)安全

減少攻擊面

無(wú)縫且安全的用戶訪問(wèn)

什么是 SAML(安全斷言標(biāo)記語(yǔ)言)?

SAML 是一種基于 XML 的標(biāo)準(zhǔn),用于在 IdP 和服務(wù)提供商之間交換身份驗(yàn)證和授權(quán)數(shù)據(jù),以驗(yàn)證用戶的身份和權(quán)限,然后授予或拒絕他們對(duì)服務(wù)的訪問(wèn)權(quán)限。SAML 是一種開(kāi)放標(biāo)準(zhǔn),已成為 SSO 的核心標(biāo)準(zhǔn)之一。SAML 使用身份提供者發(fā)送給服務(wù)提供者的稱為斷言(包含用戶授權(quán))的 XML 文檔。SAML 2.0 于 2005 年推出,并且仍然是該標(biāo)準(zhǔn)的當(dāng)前版本。SAML 2.0 專門(mén)針對(duì) Web 應(yīng)用程序進(jìn)行了優(yōu)化,使信息能夠通過(guò) Web 瀏覽器傳輸

SAML 術(shù)語(yǔ)

IdP——身份提供者

SP - 服務(wù)提供商

用戶——使用系統(tǒng)訪問(wèn)服務(wù)提供商服務(wù)的用戶

典型的 SAML 工作流由 IdP、SP 和用戶組成。用戶信息作為斷言發(fā)送。讓我們假設(shè)用戶有一個(gè) Idp 帳戶并擁有有效的憑據(jù)

d5c48db2-6238-11ed-8abf-dac502259ad0.png

讓我們將上圖分解為多個(gè)步驟,以便于理解

用戶轉(zhuǎn)到服務(wù)提供商并單擊 SAML 登錄

SP 將請(qǐng)求重定向到身份提供者

身份提供者向用戶顯示登錄頁(yè)面以輸入憑據(jù)

輸入憑據(jù)后,SAML IdP 會(huì)驗(yàn)證其 Active Directory 或數(shù)據(jù)庫(kù)中的憑據(jù)

驗(yàn)證后,SAML 響應(yīng)會(huì)以 XML 格式發(fā)送帶有斷言,如上所示

然后用戶將登錄到應(yīng)用程序

什么是 OAuth2?

OAuth 是比 SAML 更新的標(biāo)準(zhǔn),由 Google 和 Twitter 于 2006 年開(kāi)始聯(lián)合開(kāi)發(fā)。它的開(kāi)發(fā)部分是為了彌補(bǔ) SAML 在移動(dòng)平臺(tái)上的不足,并且基于JSON而不是 XML。OAuth2 廣泛使用 JWT 令牌,因此比 SAML 更輕、更快。

在深入探討 OAuth2 和 OIDC 之前,讓我們先看看使用的術(shù)語(yǔ)OAuth2 術(shù)語(yǔ)

授權(quán)服務(wù)器——(例如:谷歌)

資源服務(wù)器——(例如:Bitbucket)

資源所有者——使用系統(tǒng)從資源服務(wù)器訪問(wèn)服務(wù)的用戶(例如:Bitbucket 用戶)

OAuth2 協(xié)議允許授權(quán)服務(wù)器在獲得資源所有者(用戶)的同意后向第三方應(yīng)用程序頒發(fā)訪問(wèn)令牌這些訪問(wèn)令牌被 Bitbucket、Slack 等第三方應(yīng)用程序用于訪問(wèn)資源提供的資源服務(wù)器。

如果您已注冊(cè)新應(yīng)用程序并同意從 Google/Facebook 等導(dǎo)入聯(lián)系人,則您必須已經(jīng)使用過(guò) OAuth2。您可能使用了要求您在 Facebook/Instagram 等上分享您的帖子或照片的功能。這是OAuth2 協(xié)議,提供安全的委托訪問(wèn),無(wú)需共享憑據(jù)OAuth2 僅用于授權(quán)而不用于身份驗(yàn)證

什么是 OpenID Connect (OIDC)?

使用 OpenID,用戶的憑據(jù)僅在瀏覽器路由請(qǐng)求后由授權(quán)服務(wù)器使用。驗(yàn)證后,將向用戶頒發(fā)訪問(wèn)令牌,用戶可以通過(guò)該令牌訪問(wèn)多個(gè)應(yīng)用程序,而無(wú)需與每個(gè)應(yīng)用程序共享其憑據(jù)。如果您已使用 Google / Facebook / Twitter 登錄名登錄應(yīng)用程序,則您必須已經(jīng)使用過(guò) OIDC。OpenID Connect 是組織用來(lái)驗(yàn)證用戶身份的開(kāi)放標(biāo)準(zhǔn)。

OIDC 用于對(duì)用戶進(jìn)行身份驗(yàn)證

將 OIDC 與 OAuth2 結(jié)合使用OAuth 是一種開(kāi)放標(biāo)準(zhǔn)的授權(quán)協(xié)議,用于授權(quán)用戶,OIDC 用于驗(yàn)證用戶。OIDC 位于 OAuth 2.0 之上,以添加有關(guān)用戶的信息并啟用 SSO 流程。它允許跨多個(gè)應(yīng)用程序使用一個(gè)登錄會(huì)話。例如,如下所示,您可以使用社交媒體登錄來(lái)訪問(wèn)應(yīng)用程序,而無(wú)需在應(yīng)用程序中創(chuàng)建帳戶

啟用 OAuth2 和 OIDC 的示例登錄頁(yè)面

d5f169cc-6238-11ed-8abf-dac502259ad0.png

OAuth2 流與 OIDC 集成

d60e6ed2-6238-11ed-8abf-dac502259ad0.jpg

上圖解釋了當(dāng)您使用 Google 登錄應(yīng)用程序時(shí)發(fā)生的整個(gè)過(guò)程。步驟的數(shù)量可能看起來(lái)很復(fù)雜,但整個(gè)過(guò)程在幾毫秒到幾秒內(nèi)結(jié)束。讓我們一步一步地分解它。假設(shè)用戶已經(jīng)有 Google 的登錄帳戶

用戶進(jìn)入 Bitbucket 頁(yè)面登錄

用戶點(diǎn)擊使用 Google 登錄

瀏覽器將用戶重定向到 Google 登錄頁(yè)面

Google 顯示憑據(jù)頁(yè)面供用戶輸入憑據(jù)

用戶輸入谷歌憑據(jù)并點(diǎn)擊提交

Google 驗(yàn)證憑據(jù)并生成訪問(wèn)令牌并將其發(fā)送到瀏覽器

瀏覽器在Authorization Header中嵌入Access Token(Bearer Token),將用戶的登錄請(qǐng)求發(fā)送到BitBucket服務(wù)器

Bitbucket 服務(wù)器將聯(lián)系 Google 驗(yàn)證訪問(wèn)令牌并響應(yīng)瀏覽器

現(xiàn)在用戶登錄到 Bitbucket 應(yīng)用程序

何時(shí)使用 SAML 以及何時(shí)使用 OAuth2(使用 OIDC)

盡管 SAML 在企業(yè)設(shè)置中可能看起來(lái)更優(yōu)越,但在某些情況下 OAuth 是有意義的。

政府應(yīng)用程序的身份管理:政府?dāng)?shù)據(jù)的機(jī)密、敏感性質(zhì)需要具有更強(qiáng)的安全性,而 SAML 將適合這種情況。例如:新加坡政府使用一個(gè)名為SingPass的基于 SAML 的系統(tǒng)作為其居民使用所有基于政府的服務(wù)的數(shù)字登錄名

用戶體驗(yàn)是重中之重:OAuth2 最適合用戶體驗(yàn),因?yàn)樗谝苿?dòng)設(shè)備上運(yùn)行良好。而且它很輕。

移動(dòng)和消費(fèi)者應(yīng)用程序:OAuth2 在移動(dòng)設(shè)備和消費(fèi)者應(yīng)用程序上運(yùn)行良好,因?yàn)闀?huì)話往往更短

虛擬桌面基礎(chǔ)架構(gòu) (VDI) 實(shí)施:使用 SAML。VDI 將被企業(yè)內(nèi)的許多員工使用。

資源需要臨時(shí)訪問(wèn):OAuth2 非常適合臨時(shí)訪問(wèn),因?yàn)樗菫榇四康亩O(shè)計(jì)的

在本文中,我們看到了 SSO 的類型和優(yōu)勢(shì)。然后我們深入研究了兩個(gè)著名的 SSO 協(xié)議,即 SAML 和 OAuth2。在探索OAuth2時(shí),我們看到了 OAuth2 和 OIDC 之間的細(xì)微差別,然后看到了兩者結(jié)合的用例。本文以哪些協(xié)議可用于某些用例結(jié)束。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 協(xié)議
    +關(guān)注

    關(guān)注

    2

    文章

    602

    瀏覽量

    39212
  • SSO
    SSO
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7505
  • SAML
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    8207
  • 單點(diǎn)登錄
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6325

原文標(biāo)題:?jiǎn)吸c(diǎn)登錄必知的兩個(gè)著名協(xié)議:SAML、OAuth2

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    串聯(lián)單點(diǎn)和并聯(lián)單點(diǎn)及混合接地的介紹

    串聯(lián)單點(diǎn)和并聯(lián)單點(diǎn)及混合接地的介紹 串聯(lián)單點(diǎn)接地結(jié)構(gòu)由于簡(jiǎn)
    發(fā)表于 10-03 18:03 ?8567次閱讀
    串聯(lián)<b class='flag-5'>單點(diǎn)</b>和并聯(lián)<b class='flag-5'>單點(diǎn)</b>及混合接地的介紹

    基于SAML單點(diǎn)登錄安全服務(wù)體系的應(yīng)用研究

    安全斷言標(biāo)記語(yǔ)言SAML是讓互相信賴的雙方可以交換安全相關(guān)信息的一個(gè)XML架構(gòu),它定義了不同系統(tǒng)之間安全服務(wù)交換認(rèn)證和授權(quán)信息的機(jī)制,單點(diǎn)登錄技術(shù)SSO是實(shí)現(xiàn)集成身份認(rèn)證
    發(fā)表于 06-20 09:11 ?18次下載

    基于改進(jìn)Kerberos的Web單點(diǎn)登錄方案

    改進(jìn)Kerberos 協(xié)議,提出了一種適用于Web 應(yīng)用系統(tǒng)的單點(diǎn)登錄解決方案。在給出Web 應(yīng)用單點(diǎn)登錄模型同時(shí),分析用戶訪問(wèn)受保護(hù)資源時(shí)
    發(fā)表于 08-25 09:12 ?14次下載

    一種結(jié)合Multi-Agent的單點(diǎn)登錄模型

    本文針對(duì)單點(diǎn)登錄技術(shù)(Single Sign-On SSO),結(jié)合網(wǎng)絡(luò)安全機(jī)制分析并指出目前各種SSO 模型的不足,提出基于broker(經(jīng)紀(jì)人)與Kerberos 混合認(rèn)證的Multi-Agent(多代理)SSO 模型,采用
    發(fā)表于 08-29 11:24 ?8次下載

    一種SAML單點(diǎn)登錄實(shí)現(xiàn)方式的安全性研究

            文章介紹了SAML 技術(shù)及其定義的種消息傳遞方式。討論了SAML 單點(diǎn)
    發(fā)表于 09-05 10:19 ?11次下載

    科技資源應(yīng)用集成環(huán)境中的單點(diǎn)登錄研究

             本文首先分析了基于公鑰基礎(chǔ)設(shè)施的單點(diǎn)登錄模型的不足,在此基礎(chǔ)上,提出了一種基于PKI/PMI的單點(diǎn)
    發(fā)表于 09-10 09:46 ?15次下載

    基于SAML的WEB單點(diǎn)登錄系統(tǒng)安全模型設(shè)計(jì)

    本文從安全性、互操作性基礎(chǔ)上提出了一種基于SAML 規(guī)范的單點(diǎn)登錄模型,在設(shè)計(jì)本模型時(shí),考慮到SAML 在安全性上的弱點(diǎn),使用WS-Security 規(guī)范來(lái)保證
    發(fā)表于 01-15 15:01 ?12次下載

    基于SAML單點(diǎn)登陸模型的改進(jìn)

    分析了種典型的基于SAML單點(diǎn)登錄模型,針對(duì)流程復(fù)雜的缺陷進(jìn)行簡(jiǎn)化,提出改進(jìn)的單點(diǎn)登錄模型,
    發(fā)表于 09-01 16:13 ?15次下載

    基于Cookie的單點(diǎn)登錄技術(shù)

    在基于Web的多種應(yīng)用系統(tǒng)中需要統(tǒng)一身份認(rèn)證和資源訪問(wèn)控制機(jī)制,采用基于Cookie的單點(diǎn)登錄系統(tǒng)是一種很好的解決方案,它是一種基于HTTP重定向和票據(jù),并以跨域Cookie的共享為核
    發(fā)表于 09-01 16:18 ?13次下載

    單點(diǎn)接地

    單點(diǎn)接地 單點(diǎn)接地有種類型,一
    發(fā)表于 10-03 18:01 ?1.8w次閱讀
    <b class='flag-5'>單點(diǎn)</b>接地

    基于角色訪問(wèn)控制的單點(diǎn)登錄模型研究與設(shè)計(jì)

    為了解決復(fù)雜Web服務(wù)中用戶認(rèn)證與權(quán)限管理的問(wèn)題,對(duì)單點(diǎn)登錄技術(shù)的進(jìn)行了研究。在此基礎(chǔ)上,根據(jù)單點(diǎn)登錄技術(shù)的特點(diǎn)結(jié)合基于角色的控制訪問(wèn)提出了基于角色訪問(wèn)控制的
    發(fā)表于 12-17 10:59 ?24次下載
    基于角色訪問(wèn)控制的<b class='flag-5'>單點(diǎn)</b><b class='flag-5'>登錄</b>模型研究與設(shè)計(jì)

    跨終端的單點(diǎn)登錄系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)杜建棟

    跨終端的單點(diǎn)登錄系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_杜建棟
    發(fā)表于 03-15 08:00 ?0次下載

    一種基于Cookie的跨域單點(diǎn)登錄方案設(shè)計(jì)

    針對(duì)多應(yīng)用系統(tǒng)下用戶需多次進(jìn)行身份認(rèn)證導(dǎo)致工作效率較低及系統(tǒng)安全性差的問(wèn)題,提出了一種基于Cookie的跨域單點(diǎn)登錄方案。用戶可以在不同域內(nèi)的應(yīng)用系統(tǒng)間安全有效地實(shí)現(xiàn)一處登錄,多處訪問(wèn)。給出了方案
    發(fā)表于 11-20 09:52 ?6次下載
    一種基于Cookie的跨域<b class='flag-5'>單點(diǎn)</b><b class='flag-5'>登錄</b>方案設(shè)計(jì)

    單點(diǎn)登錄的實(shí)現(xiàn)方式有哪些

    前言 實(shí)現(xiàn)方式一:父域 Cookie 實(shí)現(xiàn)方式二:認(rèn)證中心 實(shí)現(xiàn)方式三:LocalStorage 跨域 補(bǔ)充:域名分級(jí) 前言 在 B/S 系統(tǒng)中,登錄功能通常都是基于 Cookie 來(lái)實(shí)現(xiàn)的。當(dāng)用
    的頭像 發(fā)表于 02-02 14:00 ?2229次閱讀
    <b class='flag-5'>單點(diǎn)</b><b class='flag-5'>登錄</b>的實(shí)現(xiàn)方式有哪些

    SSO單點(diǎn)登錄OAuth2.0的區(qū)別和理解

    者有很多相似之處,下面我們來(lái)解釋一下這個(gè)過(guò)程。先來(lái)講解SSO,通過(guò)SSO對(duì)比OAuth2.0,才比較好理解OAuth2.0的原理。SSO的實(shí)現(xiàn)有很多框架,比如CAS框架,以下是CAS框架的官方流程圖。特別注意:SSO是一種思想
    的頭像 發(fā)表于 11-07 11:41 ?705次閱讀
    RM新时代网站-首页