用戶帳戶,授權(quán)和密碼管理的12個(gè)最佳實(shí)踐
賬戶管理,授權(quán)和密碼管理往往是很棘手的。對(duì)很多開發(fā)者來說,賬戶管理功能是一個(gè)暗角,不會(huì)引起足夠的重視。對(duì)于產(chǎn)品經(jīng)理和用戶來說,產(chǎn)品的最終體驗(yàn)往往超出預(yù)期。
幸運(yùn)的是,谷歌云平臺(tái)(GCP)提供了一些工具,能夠使你在產(chǎn)品創(chuàng)造、安全處理和用戶賬號(hào)(本文中指任何在你系統(tǒng)中注冊(cè)的人——消費(fèi)者或者內(nèi)部用戶)認(rèn)證方面做出更好的決策。不論你負(fù)責(zé)的是什么系統(tǒng),部署在 Google Kubernetes Engine 上的WEB網(wǎng)站、 Apigee 上的API服務(wù)、使用 Firebase 的應(yīng)用或者任何包含用戶認(rèn)證的服務(wù),這篇文章會(huì)提供最佳實(shí)踐,來保證你擁有一個(gè)安全的、可伸縮的、可用的賬戶認(rèn)證系統(tǒng)。
1. 對(duì)密碼字段做哈希處理
對(duì)于賬戶管理,最重要的原則就是要安全地存儲(chǔ)用戶的敏感信息,包括用戶的密碼。用戶的數(shù)據(jù)是神圣的,必須要適當(dāng)?shù)奶幚怼?br />
任何情況下都不要存儲(chǔ)明文密碼。你的服務(wù)中要藝術(shù)的哈希處理密碼,并且不能解密密碼——例如,使用 PBKDF2, Argon2, Scrypt, or Bcryp創(chuàng)建。這個(gè)哈希值應(yīng)該是對(duì)用戶唯一的登錄憑證加鹽處理后的結(jié)果。不要使用過時(shí)的哈希處理技術(shù)如MD5、SHA1,并且在任何情況下都不應(yīng)該使用可解密的算法或者嘗試發(fā)明哈希算法。
你應(yīng)該假設(shè)你設(shè)計(jì)的系統(tǒng)最終會(huì)被泄露。問問你自己“如果我的數(shù)據(jù)今天泄露了,在使用我的服務(wù)或者他們使用的別的服務(wù)時(shí),我的用戶的安全和隱私會(huì)受到威脅嗎?我們可以做些什么來減輕這種潛在的數(shù)據(jù)泄露可能造成的危害?”
另一個(gè)需要考慮的事情:當(dāng)用戶提供給你密碼之后,如果你能在任何時(shí)候產(chǎn)出一個(gè)用戶的明文密碼,那么你的實(shí)現(xiàn)就是有問題的。
2. 盡可能允許第三方身份認(rèn)證
第三方身份認(rèn)證提供者使你可以依賴一個(gè)第三方值得信賴的服務(wù)認(rèn)證用戶的身份。谷歌、Facebook和推特通常是可用的提供者。
除了已經(jīng)存在的內(nèi)部認(rèn)證系統(tǒng),你可以使用一個(gè)平臺(tái)(如 Firebase 認(rèn)證)接入一個(gè)第三方的認(rèn)證服務(wù)。 Firebase 認(rèn)證有很多好處,如管理更簡(jiǎn)單、攻擊入口更小和跨平臺(tái)的SDK。通過這個(gè)列表我們會(huì)提出很多好處,具體查看 案例學(xué)習(xí)
Firebase認(rèn)證。
3. 區(qū)分用戶身份和用戶賬戶的概念
你的用戶不是電郵地址。他們不是電話號(hào)碼。他們不是由OAUTH響應(yīng)提供的唯一ID。 你的用戶是你服務(wù)中獨(dú)有的個(gè)性化數(shù)據(jù)和體驗(yàn)的聚合。設(shè)計(jì)良好的用戶管理系統(tǒng)在用戶個(gè)人資料的不同部分之間具有低耦合性和高內(nèi)聚性。
保持用戶帳戶和證書的概念分離將大大簡(jiǎn)化實(shí)施第三方認(rèn)證提供商的過程、允許用戶更改其用戶名并將多個(gè)身份鏈接到單個(gè)用戶帳戶上。實(shí)際上,為每個(gè)用戶提供一個(gè)內(nèi)部全局標(biāo)識(shí)符并通過該ID鏈接其配置文件和身份驗(yàn)證標(biāo)識(shí)可能會(huì)有所幫助,而不是將其全部集中到一條記錄之中。

責(zé)任編輯:任我行
- 相關(guān)閱讀
- 業(yè)務(wù)信息化
- 戰(zhàn)略規(guī)劃
- IT運(yùn)維與治理
-
無人貨架成為泡沫?那么無人貨柜的前景如何
-
5G技術(shù)、AR導(dǎo)航、VR直播……提前劇透冬奧會(huì)上的科技秀
-
工信部:2018年春節(jié)期間移動(dòng)數(shù)據(jù)流量消費(fèi)增長(zhǎng)超兩倍
-
邊緣計(jì)算拓展物聯(lián)網(wǎng),主要表現(xiàn)在哪幾個(gè)方面?
-
物聯(lián)網(wǎng)發(fā)展的關(guān)鍵技術(shù),主要包括哪幾方面?
-
物聯(lián)網(wǎng)的相關(guān)技術(shù),這些你一定要知道!
2018-02-26技術(shù)