溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IdentityServer4是不是權限管理系統(tǒng)

發(fā)布時間:2021-12-30 09:17:04 來源:億速云 閱讀:294 作者:柒染 欄目:大數(shù)據(jù)

IdentityServer4是不是權限管理系統(tǒng),針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

我們通常理解IdentityServer4是身份認證授權管理系統(tǒng),那么我們可否理解成IdentityServer是身份認證權限管理系統(tǒng)呢?

通過其名稱可知IdentityServer4就是對于在跨網(wǎng)站或者跨應用程序間為用戶提供一個穩(wěn)定的身份,這里所謂的不可變應該在會話期間用戶身份不可變,比如用戶Id,出生日期等等。

但是IdentityServer4并不適合用于讓客戶端或者API知道允許用戶做什么,比如讀取一篇文檔。

因為IdentityServer4說到底就是Token服務,可能有了解過IdentityServer4的童鞋說,通過聲明來構建用戶權限啊,其實聲明并不是傳輸權限特別好的媒介。為何,當然基于以下幾點原因。

  1. 聲明本身就是用來構建用戶的身份而非權限。

  2. 聲明的數(shù)據(jù)結構非常簡單僅僅只是字符串,而權限數(shù)據(jù)結構非常復雜。

  3. 用戶權限依賴于不同的客戶端和APi,將用戶權限放在單個身份中顯然有問題,那么是否有可能按需獲取呢?這是需要考慮的問題。

  4. 用戶權限在整個會話期間可能會改變,這個時候需要重新獲取Token,但是獲取Token的方式需要UI交互,這個時候腫么辦。

  5. 權限和業(yè)務邏輯可能會有重疊的地方,這個時候如何劃分邊界呢?

  6. 有時候我們可能通過URL傳輸Token,但是瀏覽器URL長度有限制,如果用戶權限存儲在聲明中,豈不是也會出問題?

基于以上幾點,我個人認為不能將身份和用戶權限進行混用,說到底IdentityServer4根本不是為了用戶權限應運而生,也沒提供對應的解決方案,我們想要實現(xiàn)用戶權限還需要做很多額外的工作。

當然,如果項目小或者私下玩玩將聲明當做權限,然后通過Token返回,并不是什么問題,只不過我想表達的是IdentityServer4不是用作用戶權限的管理系統(tǒng)。

這里我們還需引入另外一個概念,那就是角色,我們將身份、角色、權限串聯(lián)起來,好像很順暢,用戶的身份屬于什么角色,對應角色賦予怎樣的權限,這個時候好像似乎用聲明來授予用戶權限未嘗不可,其實如果對用戶授權是基于用戶的身份,那么將用戶權限通過聲明來使用是非??扇〉?。

可能又有人疑惑了,IdentityServer4里有Scope即范圍,不是可用作用戶權限嗎?請不要隨便扣帽子,IdentityServer4中的Scope指的是授予客戶端權限,而非用戶權限。

聲明是用來構建身份而不是用戶權限,不能將身份和權限在Token服務中混用,如果對用戶授權是基于用戶的身份,那么使用聲明也未嘗不可。

關于IdentityServer4是不是權限管理系統(tǒng)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI