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

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