微服務(wù)實(shí)踐01--微服務(wù)管理18--用戶管理02--用戶認(rèn)證01-介紹

微服務(wù)實(shí)踐目錄,可以參見連接。

背景

上一篇文章中整體介紹了用戶管理會涉及到的方面,本篇文章主要介紹用戶認(rèn)證相關(guān)的方案與技術(shù)?;貧w之前的用詞方式,針對認(rèn)證實(shí)體的認(rèn)證可以分為兩類:認(rèn)證實(shí)體軟件認(rèn)證和認(rèn)證實(shí)體綁定硬件認(rèn)證。

現(xiàn)在很多IoT方面的認(rèn)證方式都是使用認(rèn)證實(shí)體綁定硬件認(rèn)證的方法進(jìn)行認(rèn)證的。還有很多硬件認(rèn)證的方式基本上也是以這種方式進(jìn)行認(rèn)證的,如通信中的Wifi的Mac地址認(rèn)證,4GLTE的IMSI認(rèn)證。4GLTE協(xié)議中的終端認(rèn)證使用通信模塊的認(rèn)證進(jìn)行終端的認(rèn)證過程。與IoT的方式都是使用對附屬硬件的認(rèn)證達(dá)成對整個認(rèn)證實(shí)體的認(rèn)證過程。

LTE協(xié)議認(rèn)證過程

認(rèn)證實(shí)體綁定硬件認(rèn)證的方式還在其他很多方面用到,比如說銀行辦理網(wǎng)銀時發(fā)放的硬件KEY。具體的交互方式如下圖所示:
iot認(rèn)證

具體的技術(shù)可以參考身份認(rèn)證技術(shù)認(rèn)證技術(shù)。本片文章不關(guān)注這種方式的認(rèn)證,所以就不進(jìn)行過多的說明。下面我們說明認(rèn)證實(shí)體軟件認(rèn)證相關(guān)內(nèi)容。

認(rèn)證方向

在上篇文章中已經(jīng)將用戶擴(kuò)展到認(rèn)證實(shí)體,并說明了所有的認(rèn)證過程都可以認(rèn)為是對認(rèn)證實(shí)體的認(rèn)證過程。在進(jìn)行深入的考慮,認(rèn)證一般是存在雙方或者三方的。雙方是認(rèn)證實(shí)體和認(rèn)證服務(wù),三方是認(rèn)證實(shí)體、認(rèn)證服務(wù)和業(yè)務(wù)服務(wù)。一般認(rèn)為認(rèn)證過程是對客戶端的身份認(rèn)證,但在有些情況下是對服務(wù)端的認(rèn)證。還有一些情況下是需要進(jìn)行雙向認(rèn)證的。

關(guān)于對服務(wù)端認(rèn)證方面可以舉一個例子:在一些情況下用戶對某個網(wǎng)絡(luò)服務(wù)是信賴的,在使用P2P服務(wù)的區(qū)塊鏈技術(shù)中需要一種對節(jié)點(diǎn)認(rèn)證的方式。對于節(jié)點(diǎn)發(fā)送的消息的有效性進(jìn)行判斷的過程也可以理解為對服務(wù)端的認(rèn)證過程。對于DNS網(wǎng)絡(luò)中DNS解析信息傳遞的過程,其實(shí)也可以建立這樣的過程。以防止域名污染情況的發(fā)生。

對于使用對客戶端認(rèn)證的方式進(jìn)行認(rèn)證是一種非常通用的模式。雙方認(rèn)證的情況最常見的例子是HTTPS的雙向認(rèn)證機(jī)制。認(rèn)證最終的目的都是為了鑒別對方的身份,在確認(rèn)對方身份后既可以進(jìn)行信任通信。

認(rèn)證與數(shù)據(jù)交換方式

數(shù)據(jù)交換是指用戶認(rèn)證數(shù)據(jù)怎樣從客戶端傳送到服務(wù)端,服務(wù)端的驗(yàn)證數(shù)據(jù)怎樣傳輸給客戶端。在這個過程中為了免受中間人攻擊,認(rèn)證過程中的通信管理非常重要。不同層面的解決方案都可以解決這個問題。例如:http通信層面為認(rèn)證提供了多種認(rèn)證信息傳遞的方式Basic, Digest and NTLM,在傳輸層提供了ssl,tls這些通信加密技術(shù)。

認(rèn)證信息傳遞過程中盡量不要明文的進(jìn)行認(rèn)證信息傳遞,盡量通過加密算法進(jìn)行認(rèn)證信息傳遞。盡量使用加密通信進(jìn)行認(rèn)證過程通信。

認(rèn)證方法

  1. 統(tǒng)一認(rèn)證(SSO)
    通過統(tǒng)一的認(rèn)證中心認(rèn)證用戶。通常在企業(yè)內(nèi)部建立一個統(tǒng)一的用戶管理與認(rèn)證中心,由認(rèn)證中心負(fù)責(zé)用戶的認(rèn)證。方便企業(yè)內(nèi)部統(tǒng)一管理用戶。

  2. 第三方認(rèn)證(OAuth,OpenID)
    第三方保存用戶認(rèn)證方式,以及用戶數(shù)據(jù)。通過互聯(lián)網(wǎng)上的用戶信息達(dá)到快速登錄,降低復(fù)雜度的方法吸引客戶使用系統(tǒng)。

  3. OpenAPI
    在互聯(lián)網(wǎng)上免不了和其他的公司有合作有交互。OpenAPI是在互聯(lián)網(wǎng)上程序間的認(rèn)證方式。

認(rèn)證流程

認(rèn)證信息生命周期:認(rèn)證->認(rèn)證信息保持->認(rèn)證信息過期。認(rèn)證信息保持會在Session一節(jié)中說明
https CA證書,OpenAPI的key和secret都是認(rèn)證。

認(rèn)證技術(shù)框架

  • 直接認(rèn)證方式
    在使用、管理、存儲用戶信息的地方,直接進(jìn)行認(rèn)證。

  • 中間認(rèn)證方式
    使用用戶信息的地方和管理用戶信息的地方,是兩個地方。

  • 第三方認(rèn)證方式。
    使用第三方的用戶數(shù)據(jù)(通過數(shù)據(jù)訪問接口的方式)獲取用戶數(shù)據(jù)。

技術(shù)

sso、openapi

Apereo CAS,Spring Cloud Security,JBoss 開源的 Keycloak 等(.NET IdentityServer4 )。

2017.2.16 開濤shiro教程-第十七章-OAuth2集成(一)服務(wù)器端
2017.2.16 開濤shiro教程-第十七章-OAuth2集成(二)客戶端

總結(jié)

認(rèn)清認(rèn)證過程中需要了解:認(rèn)證方向、認(rèn)證數(shù)據(jù)交換、認(rèn)證方法、認(rèn)證流程。才可以完整的理解認(rèn)證過程。本文主要說明認(rèn)證的過程,下一篇文章會針對認(rèn)證過程中的技術(shù)進(jìn)行比較和說明。

參考

  • 概述
    HttpClient三種不同的認(rèn)證方案: Basic, Digest and NTLM

認(rèn)證與授權(quán)——單點(diǎn)登錄協(xié)議盤點(diǎn):OpenID vs OAuth2 vs SAML
HTTP API 認(rèn)證授權(quán)術(shù)
深入理解跨域SSO單點(diǎn)登錄原理與技術(shù)

4G LTE網(wǎng)絡(luò)協(xié)議漏洞

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容