国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
Oauth2.0 用Spring

 上周,我想開(kāi)發(fā)OAuth 2.0的一個(gè)實(shí)例。我檢查了Spring-security-Oauth2.0的樣例,OAuth 2提供商sparklr2和OAuth 2客戶端TONR 。我探索在互聯(lián)網(wǎng)上了一下,整理相關(guān)文檔。編譯并運(yùn)行了OAuth 2提供商sparklr2和OAuth 2客戶端TONR,并檢查所有的授權(quán)上。現(xiàn)在,我在這里從實(shí)用的角度講解的OAuth 2.0的不同方面來(lái)理解Spring-security-Oauth2.0。


這篇文章是試圖描述的OAuth 2.0以簡(jiǎn)化的形式來(lái)幫助開(kāi)發(fā)商和服務(wù)提供商實(shí)施的協(xié)議。

我將涵蓋以下主題在這篇文章中。

1 。實(shí)體
2 。創(chuàng)建應(yīng)用程序
3 。授權(quán), Grant-Type
                   a.
Web服務(wù)器應(yīng)用程序(Web Server)
                   b.
基于瀏覽器的應(yīng)用程序(Web Client)
                   c.
手機(jī)應(yīng)用程序(Mobile APP)
                   d.其它桌面應(yīng)用程序

4 。訪問(wèn)資源
5 。資源


OAuth2.0流程:




OAuth的服務(wù)器:
這也被稱為OAuth的提供者。它的整體責(zé)任是驗(yàn)證和授權(quán)的用戶/客戶端和管理令牌。

第三方應(yīng)用:
第三方應(yīng)用程序俗稱為客戶端,將嘗試獲得訪問(wèn)用戶的帳戶。它需要從用戶獲得許可,才可以這樣做。這可能是一個(gè)基于Web服務(wù)器的應(yīng)用程序,基于瀏覽器的應(yīng)用程序,桌面應(yīng)用程序,手機(jī)/平板電腦應(yīng)用程序或一些智能設(shè)備,如谷歌護(hù)目鏡和智能電視。

資源服務(wù)器:
俗稱為資源服務(wù)器的API ,從其中的數(shù)據(jù)會(huì)被提取出來(lái)或送達(dá)。這可能是SOAP或REST的基礎(chǔ)服務(wù)提供商。

用戶:
用戶俗稱為資源擁有者,誰(shuí)可以訪問(wèn)訪問(wèn)資源。

創(chuàng)建應(yīng)用程序:

在您開(kāi)始OAuth的過(guò)程中,您必須先注冊(cè)一個(gè)新的應(yīng)用與服務(wù)/供應(yīng)商。當(dāng)注冊(cè)一個(gè)新的應(yīng)用程序,你通常注冊(cè)基本信息,如應(yīng)用程序克林特ID ,秘密,授權(quán)發(fā)放,類型等,另外,你必須注冊(cè)一個(gè)重定向URI,用于將用戶重定向到Web服務(wù)器,基于瀏覽器的,或移動(dòng)應(yīng)用程序。

重定向的URI :
該服務(wù)將只將用戶重定向到注冊(cè)的URI ,這有助于防止某些攻擊。任何HTTP重定向的URI必須與SSL安全保護(hù),因此該服務(wù)將只重定向到的URI以“https ”開(kāi)頭。這可以防止從令牌在授權(quán)過(guò)程中被截獲。

客戶端ID和授權(quán)密碼:
注冊(cè)您的應(yīng)用程序后,你將擁有你的客戶端ID和客戶端授權(quán)密碼該客戶端ID被認(rèn)為是公共信息,并用于建立登錄網(wǎng)址,或包括在一個(gè)頁(yè)面上的Javascript源代碼。客戶端授權(quán)密碼必須保密。如果部署的應(yīng)用程序不能保守授權(quán)密碼的機(jī)密,如JavaScript或本機(jī)應(yīng)用程序,那么這個(gè)授權(quán)密碼不被使用。

授權(quán)方式:

的OAuth 2的第一步驟是從用戶獲得授權(quán)。對(duì)于基于瀏覽器或移動(dòng)應(yīng)用程序,這通常是由顯示給用戶提供的服務(wù)的接口來(lái)實(shí)現(xiàn)的。

OAuth的2提供了不同的用例數(shù)批類型。定義的補(bǔ)助類型有:

 
一個(gè)Web服務(wù)器上運(yùn)行的應(yīng)用程序授權(quán)碼
 
隱含的基于瀏覽器的或移動(dòng)應(yīng)用程序
 
密碼與用戶名和密碼登錄
 
對(duì)于應(yīng)用程序訪問(wèn)客戶端憑據(jù)

Web服務(wù)器應(yīng)用程序
Web應(yīng)用程序都寫在一個(gè)服務(wù)器端語(yǔ)言和運(yùn)行服務(wù)器的應(yīng)用程序的源代碼是不提供給公眾。

授權(quán)請(qǐng)求:

http://localhost:8080/oauth2/oauth/authorize?response_type=code&client_id=easylocate&scope=read&redirect_uri=http://localhost:8080/web

之后接受訪問(wèn)。該頁(yè)面將被重定向到重定向URI的授權(quán)碼。

http://localhost:8080/web/?code=t7ol7D

現(xiàn)在是時(shí)候來(lái)交換授權(quán)碼來(lái)獲得訪問(wèn)令牌。

http://localhost:8080/oauth2/oauth/token?grant_type=authorization_code&code=t7ol7D&redirect_uri=http://localhost:8080/web&client_id=easylocate&client_secret=secret

與訪問(wèn)令牌的OAuth的服務(wù)器回復(fù)

 {
  
“ ACCESS_TOKEN ”:“ 372c3458 - 4067 - 4b0b - 8b77 - 7930f660d990 ”
  
“ token_type ” : “bearer” ,
  
“ refresh_token ” : “ ce23c924 - 3f28 - 456C - A112 - b5d02162f10c ”
  
“ expires_in ” : 37364 ,
  
“scope” : “read”
}

萬(wàn)一錯(cuò)了授權(quán)碼,的Oauth服務(wù)器回復(fù)的錯(cuò)誤。

 {
  
“error” : “ invalid_grant ” ,
  
“ error_description ” : “無(wú)效的授權(quán)碼: t7olD ”
}

安全性:需要注意的是該服務(wù)應(yīng)要求應(yīng)用程序進(jìn)行預(yù)注冊(cè)的重定向的URI 。否則將有一個(gè)錯(cuò)配。

基于瀏覽器的應(yīng)用程序和移動(dòng)應(yīng)用程序:
基于瀏覽器的應(yīng)用程序在瀏覽器從網(wǎng)頁(yè)加載的源代碼之后運(yùn)行完全。由于整個(gè)源代碼是提供給瀏覽器,他們不能保持其客戶端秘密的保密性,所以這個(gè)秘密是不是在這種情況下使用。

授權(quán)請(qǐng)求:

http://localhost:8080/oauth2/oauth/authorize?response_type=token&client_id=easylocate&redirect_uri=http://localhost:8080/web&scope=read

之后接受訪問(wèn)。該頁(yè)面將被重定向到重定向URI與令牌。

http://localhost:8080/web/#access_token=372c3458-4067-4b0b-8b77-7930f660d990&token_type=bearer&expires_in=37026

就是這樣,沒(méi)有其他的步驟!在這一點(diǎn)上,一些JavaScript代碼可以(在#后的部分)拉出訪問(wèn)令牌的片段,并開(kāi)始進(jìn)行API請(qǐng)求。

如果出現(xiàn)錯(cuò)誤,你反而會(huì)收到一條錯(cuò)誤的URI片段,如:

http://localhost:8080/web/#error=invalid_scope&error_description=Invalid+scope%3A+rea&scope=read+write

基于密碼:
OAuth的2還提供了可用于令牌直接交換一個(gè)用戶名和密碼訪問(wèn)密碼交付式。因?yàn)檫@顯然需要的應(yīng)用程序來(lái)收集用戶的密碼,它應(yīng)該只用于由服務(wù)自身創(chuàng)建的應(yīng)用程序。例如,原生Twitter的應(yīng)用程序可以使用這筆款項(xiàng)型移動(dòng)或桌面應(yīng)用程序登錄。

使用密碼交付式,只是讓類似下面的POST請(qǐng)求。我現(xiàn)在用的卷曲工具來(lái)演示POST請(qǐng)求。您可以使用任何其余客戶端。

卷曲-I -X POST -D “的client_id = easylocate & grant_type =密碼和用戶名admin和密碼=管理員& CLIENT_SECRET =秘密” http://localhost:8080/oauth2/oauth/token

服務(wù)器將返回與令牌

{
  
“ ACCESS_TOKEN ”:“ 4e56e9ec - 2f8e - 46b4 - 88b1 - 5d06847909ad ”
 “ token_type ” : “bearer” ,

  “ refresh_token ”:“ 7e14c979 - 7039 - 49d0 - 9c5d - 854efe7f5b38 ”
  
“ expires_in ” : 36133 ,
  
“scope” : “read,write"
}

客戶端憑據(jù)基于:
基于客戶端credentals授權(quán)用于服務(wù)器到服務(wù)器應(yīng)用程序的訪問(wèn)。我只是表示使用卷曲工具的POST請(qǐng)求。

卷曲-I -X POST -D “的client_id = easylocate & grant_type = client_credentials & CLIENT_SECRET =秘密” http://localhost:8080/oauth2/oauth/token

服務(wù)器會(huì)回來(lái)的訪問(wèn)令牌
 {
  
“ ACCESS_TOKEN ”:“ 9cd23bef - ae56 - 46b0 - 82f5 - b9a8f78da569 ”
  
“ token_type ” : “bearer” ,
  
“ expires_in ” : 43199 ,
  “scope
” : “read”
}

訪問(wèn)的資源:

一旦您通過(guò)驗(yàn)證并獲得訪問(wèn)令牌,可以提供訪問(wèn)令牌來(lái)訪問(wèn)受保護(hù)的資源。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
理解OAuth2.0認(rèn)證與客戶端授權(quán)碼模式詳解
OAuth2 RFC6749中文翻譯
理解OAuth 2.0
Oauth2詳解
單體應(yīng)用到分布式再到微服務(wù),用戶認(rèn)證和授權(quán)機(jī)制的演進(jìn)史
第 87 天:Python Web開(kāi)發(fā) OAuth2.0 簡(jiǎn)介
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服