SAML是太空船還是一種咖啡?安全主要關(guān)乎正確性。你想確定你與誰交談的人/服務(wù)是(認(rèn)證)。而且你想驗證那個人/服務(wù)只是在做他們被允許做的事情(授權(quán))。 我們將迅速掃描以下條款:
這是最基本的。您只需向用戶或服務(wù)部門提供他們知道的內(nèi)容以證明其身份。我們使用用戶名和密碼,即密碼。 基本認(rèn)證這是最基本的。您只需向用戶或服務(wù)部門提供他們知道的內(nèi)容以證明其身份。我們使用用戶名和密碼,即密碼。 授權(quán):基本Base64(用戶,合格)基本認(rèn)證沒有指定你需要加密細(xì)節(jié),你只需要base64它們。所以這是明文。 明文!使用HTTPS進(jìn)行加密但是,因為它是明文,所以你想加密它,否則任何有線或任何有權(quán)訪問服務(wù)的人都可以看到你的憑證。所以你應(yīng)該使用加密和HTTPS。 SAML我們完成了協(xié)議編號1,基本認(rèn)證。協(xié)議編號2是 SAML(安全斷言標(biāo)記語言)。 認(rèn)證和授權(quán)把它看作另一種認(rèn)證協(xié)議(如基本認(rèn)證),但它也支持授權(quán)。這意味著它也會告訴你你被允許做什么。 XMLSAML起源于XML為王的時代,因此SAML協(xié)議將數(shù)據(jù)傳遞給XML憑證和授權(quán)并不奇怪。 Parties在SAML中,我們有兩個Parties。
服務(wù)提供者這是雜貨店,它有興趣向我推銷一些東西,而不是關(guān)于身份管理,所以它會使用身份提供者來識別我,以便授權(quán)和驗證我。 身份提供者身份提供者全都是關(guān)于管理身份和允許他們做什么的。 提供標(biāo)準(zhǔn)SSOSAML提供了標(biāo)準(zhǔn),SingleSignOn 因此您可以使用相同的身份登錄多個網(wǎng)站,這很酷。這就像您使用Google登錄不同的服務(wù)一樣,只是這次是SAML協(xié)議。你看,你已經(jīng)知道SAML是什么了。 認(rèn)證與數(shù)字簽名的XML交換通過數(shù)字簽名,我的意思是我們可以證明誰是簽名認(rèn)證數(shù)據(jù)的人。 復(fù)雜最后但并非最不重要的是,SAML比現(xiàn)代SSO方法(如OAuth 2.0)更復(fù)雜。那么我們來看看OAuth 2.0吧? OAuth 2.0你問1.0什么? 這更復(fù)雜,所以我們轉(zhuǎn)到2.0,我們需要為我們的授權(quán)進(jìn)行更少的操作。 NOT身份驗證我重復(fù)OAuth2.0不是一個身份驗證協(xié)議,它全部是關(guān)于授權(quán)。這并不意味著我們不使用OAuth進(jìn)行身份驗證,但是,因為 OpenId是OAuth2.0之上的協(xié)議,用于身份驗證。 授權(quán)您使用OAuth2.0來允許服務(wù)檢查您或服務(wù)是否有權(quán)執(zhí)行操作。 HTTPOAuth不會在內(nèi)部對任何內(nèi)容進(jìn)行加密(也不會強制您加密文件),它不會強制您使用HTTPS或其他加密機制,但您可能會發(fā)現(xiàn)自己正在使用這些機制,因此請記住內(nèi)部沒有HTTP或加密到OAuth協(xié)議本身。 Tokens是新的證書記住憑據(jù)(用戶名/密碼)?忘記它們,我們現(xiàn)在使用Tokens,它們在相同的大前提下運行。你有一些關(guān)鍵就像你的用戶名,你有一些密碼就像你的密碼。 所以,雖然Tokens不使用術(shù)語“用戶名”和“ 密碼”,但它幾乎是一回事。 從1.0更改:無需簽署每個呼叫在OAuth1.0中,您需要通過電話進(jìn)行簽名。OAuth 2.0使用為您提供的Tokens簡化了這一操作 - 您所做的只是傳遞此Tokens,無需辭職。 訪問Tokens和/或刷新Tokens您使用訪問Tokens和/或刷新Tokens以更新您的訪問權(quán)限 token.services。 getAccessToken(refreshToken)所以,基本上,要獲得一個新的訪問Tokens,您只需getAccessToken 使用輸入刷新Tokens調(diào)用 以獲取新的訪問Tokens以訪問服務(wù)。 Authorization Bearer在基本身份驗證,OAuth和任何地方,你會看到這個頭文件: Authorization: Bearer 你 總是使用這個頭來為你的服務(wù)的訪問。 JWT這是城里新來的孩子,每個人都認(rèn)為他太可愛了!這是為什么?由于這個偉大的新發(fā)明,您不僅將認(rèn)證和授權(quán)置于安全數(shù)據(jù)中,還將一些真實數(shù)據(jù)放入!例如: OAuth 2.0的擴展JWT只是OAuth 2.0的擴展。 訪問Token與索賠您可以通過JWT指定您可以獲得免費咖啡; 這是“頭腦風(fēng)暴”的主張。 Authorization Bearer是的,我們必須再次使用無聊 Authorization: Bearer 標(biāo)頭,有效載荷,簽名JWT有3個部件
HMAC-SHA256這是用于哈希消息的協(xié)議。 用計算簽名的秘密鑰匙哈希 HMAC - 用密鑰生成簽名。無狀態(tài)數(shù)據(jù)和從客戶端重新發(fā)送的API數(shù)據(jù) 因此,由于JWT是無狀態(tài)的,因此當(dāng)您將數(shù)據(jù)從這里傳遞到那里并返回時,全部都在JWT中。 而不是在服務(wù)器上的傳統(tǒng)會話,您傳遞JWT中的數(shù)據(jù),因此您不需要將數(shù)據(jù)存儲在服務(wù)器上。 用法我們使用JWT做什么? 認(rèn)證 我們使用它進(jìn)行身份驗證。 安全的信息交換 我們用它來安全地傳遞信息! 用公鑰/私鑰簽名以驗證內(nèi)容沒有被篡改 這是因為我們簽署了數(shù)據(jù),所以我們知道它沒有被篡改! API密鑰 識別呼叫者/應(yīng)用程序 您可以確定誰是調(diào)用者應(yīng)用程序,因為您為每個調(diào)用者分配了自己的密鑰。 |
|
來自: 昵稱11935121 > 《未命名》