㈠ 什麼是web協議
顧名思義,就是在web中使用的協議,更通俗的講就是大家做web開發遵守的web協議規范。
協議很多,比如常用的http、tcp、ftp
㈡ web服務採用的信息傳輸協議是
web服務採用的信息傳輸協議是HTTP。HTTP通常運行在TCP之上,指定了客戶端可能發送給伺服器什麼樣的消息以及得到什麼樣的響應,請求和響應消息的頭以ASCII形式給出,而消息內容則具有一個類似MIME的格式。這個簡單模型是早期Web成功的有功之臣,因為它使開發和部署非常地直截了當。演示機型:華為MateBook X
系統版本:win10
web服務採用的信息傳輸協議是HTTP。HTTP通常運行在TCP之上,指定了客戶端可能發送給伺服器什麼樣的消息以及得到什麼樣的響應,請求和響應消息的頭以ASCII形式給出,而消息內容則具有一個類似MIME的格式。這個簡單模型是早期Web成功的有功之臣,因為它使開發和部署非常地直截了當。
㈢ Web系統之常用單點登錄協議
企業中一般會存在多個系統,假設用戶進入每個系統前都需要輸入賬號/密碼登錄,在系統個數少的情況下,每次輸入賬號/密碼還能接收;如果系統個數較多,用戶則無法接收。單點登錄則很好地解決了此問題。
單點登錄的原理是用戶只需進行一次登錄,便可訪問多個系統。
可用於單點登錄的協議較多,下面將會簡單說明一下常見的四種單點登錄協議CAS、OAuth2、OpenID、SAML。
CAS協議是一種基於token協議。它用於Web應用的單點登錄或登出,協議內容就是規范出一組用於登錄/登出的URIs。協議詳見: https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.html
協議涉及到的重要概念如下:
用CAS實現的單點登錄流程如下:
理解OAuth2本身,見 http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
這里重點提出的是使用Oauth2的單點登錄流程:
OpenID最新版本是OpenID Connect,它為OpenID的第三代技術。OpenID Connect允許所有類型的客戶端,包括基於瀏覽器和本機移動應用程序。
OpenID用於終端用戶的身份認證,OAuth2用於在已知用戶身份合法情況下對客戶端的資源授權。OpenID Conect = OpenID + OAuth2。
OpenID Connect基於OAuth協議之上,在OAuth2中有一個特殊的Scope "openid"來標識openid請求,並在OAuth2的返回體中增加一個idtoken的欄位來標識用戶。
使用OpenID Connect的單點登錄流程與Oauth2一致。
目前國內很多應用(瀏覽器或手機)都支持微信,微博等第三方認證,比如。這種第三方認證可以用OpenID Connect來實現。
注意一般商業應用才會支持使用第三方認證
SAML通過XML進行交互,且基於HTTP之上。
SAML協議中涉及的基本術語下面進行簡要介紹。
IdP: Identity Provider, 身份提供商,是指提供身份管理的服務。常見的企業自有IdP有AD FS,Shibboleth等,Cloud IdP有Azure AD,Okta,OneLogin等。
SP: Service Provider,服務提供商,是指利用IdP的身份管理功能,為用戶提供具體服務的應用。SP會消費IdP提供的用戶信息。在一些非SAML協議的身份系統(比如OIDC)里,也把Service Provider稱作Relying Party,也就是IdP的依賴方。
SAML: Security Assertion Markup Language,是一個實現企業級用戶身份認證的標准協議。是SP和IdP之間實現溝通的技術實現方式之一。是目前企業身份聯盟的的事實標准(SAML 2.0)。
SAML Assertion: 簡稱Assertion,SAML斷言,是SAML協議中用來描述認證請求(Request)和認證響應(Response)的核心元素。例如用戶的具體屬性就包含在認證響應的斷言裡面。
Trust: 信賴,是指建立在SP和IdP之間的互信機制,通常由公私鑰來實現。SP通過可信的方式獲取IdP的的身份聯盟元數據,元數據中包括了IdP用來給SAML Assertion簽名的私鑰的對應公鑰,SP則可以使用公鑰來驗證Assertion的完整性(Integrity)。
參考阿里雲單點登錄案例: https://m.aliyun.com/doc/document_detail/69969.html
一個參考鏈接: https://www.jianshu.com/p/5d535eee0a9b
具體選用哪種單點登錄方式,需要權衡利弊。