第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

中央認(rèn)證和授權(quán)服務(wù)

中央認(rèn)證和授權(quán)服務(wù)

呼如林 2023-05-09 09:55:10
我想設(shè)計(jì)一些“中央認(rèn)證和授權(quán)服務(wù)”,我知道已經(jīng)有一對(duì)了。我擔(dān)心的不是標(biāo)準(zhǔn)。在接下來(lái)的幾行中,我將嘗試解釋它。我創(chuàng)建了兩個(gè)具有自己的身份驗(yàn)證和授權(quán)機(jī)制的 Django 客戶端應(yīng)用程序。這兩個(gè)應(yīng)用程序具有不同的設(shè)計(jì),因此具有不同的權(quán)限和角色。但是用戶是相同的。現(xiàn)在我必須創(chuàng)建第三個(gè)應(yīng)用程序,前兩個(gè)應(yīng)用程序必須通過(guò)它進(jìn)行身份驗(yàn)證,這沒(méi)問(wèn)題(例如使用 OAuth)。但是第三個(gè)應(yīng)用程序也負(fù)責(zé)授權(quán),即角色、權(quán)限(包括許多對(duì)象級(jí)權(quán)限)由第三個(gè)應(yīng)用程序存儲(chǔ)和管理。問(wèn)題是:我怎樣才能實(shí)現(xiàn)第三個(gè)應(yīng)用程序,以便它可以支持非特定的、自由式的權(quán)限?如何存儲(chǔ)這些權(quán)限?我應(yīng)該如何將權(quán)限轉(zhuǎn)移到客戶端應(yīng)用程序?我如何查詢一些權(quán)限?我應(yīng)該將所有權(quán)限存儲(chǔ)在第三個(gè)應(yīng)用程序中并在每次用戶請(qǐng)求某些資源時(shí)查詢它們,還是應(yīng)該將它們保存在本地并在某些時(shí)候更新它們?我查看了OpenID Connect、SAML、XACML等。SAML 和 XACML 看起來(lái)很有前途,但我仍然感到困惑,上述問(wèn)題仍未得到解答。我知道這個(gè)問(wèn)題涵蓋的范圍很廣,但是擁有一些入門資源和一些示例項(xiàng)目會(huì)有很大幫助。問(wèn)候。
查看完整描述

1 回答

?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

一個(gè)可能的解決方案如下:

我怎樣才能實(shí)現(xiàn)第三個(gè)應(yīng)用程序,以便它可以支持非特定的、自由式的權(quán)限? 使用包含用戶權(quán)限作為范圍的 JWT 令牌。

如何存儲(chǔ)這些權(quán)限?

  • 在第三個(gè)應(yīng)用程序上存儲(chǔ)您的用戶模型,以及每個(gè)用戶的權(quán)限/角色。

  • 當(dāng)用戶登錄時(shí),他們將被重定向到您的第三個(gè)應(yīng)用程序。身份驗(yàn)證成功后,第三個(gè)應(yīng)用程序可以生成 JWT 令牌形式的 access_token,其中包括用戶擁有的權(quán)限作為范圍。

  • 然后,您可以讓前端在對(duì)客戶端應(yīng)用程序的 API 請(qǐng)求中包含此 access_token??蛻舳藨?yīng)用程序可以驗(yàn)證 access_token 并檢查用戶的范圍/權(quán)限以確定用戶是否可以訪問(wèn)某些數(shù)據(jù)。

我應(yīng)該如何將權(quán)限轉(zhuǎn)移到客戶端應(yīng)用程序? 您的客戶端應(yīng)用程序可以在每個(gè) API 請(qǐng)求中驗(yàn)證/讀取 JWT 令牌中包含的范圍

我如何查詢一些權(quán)限? 不確定這意味著什么,我可以解釋 2 個(gè)不同的東西:

  1. 以Github為例,一個(gè)Github App可以指定自己需要read訪問(wèn)和email訪問(wèn)(但不是write訪問(wèn)權(quán)限),用戶可以進(jìn)行身份驗(yàn)證,只能批準(zhǔn)reademail訪問(wèn)。在這種情況下,授權(quán)服務(wù)器 (Github) 將生成一個(gè)僅包含范圍的 JWT read,email即使用戶具有其他可用權(quán)限也是如此。

  2. 如果您談?wù)摰氖强蛻舳藨?yīng)用程序想要知道用戶是否具有特定權(quán)限,那么它可以只查看 JWT 中包含的范圍。您可能需要為客戶端應(yīng)用程序中的每個(gè)端點(diǎn)定義所需的范圍。

我應(yīng)該將所有權(quán)限存儲(chǔ)在第三個(gè)應(yīng)用程序中并在每次用戶請(qǐng)求某些資源時(shí)查詢它們,還是應(yīng)該將它們保存在本地并在某些時(shí)候更新它們?

每個(gè)用戶的權(quán)限可以存儲(chǔ)在第三個(gè)應(yīng)用程序中,客戶端應(yīng)用程序只信任 JWT 中包含的范圍。由于 access_token 應(yīng)該是短暫的(例如它會(huì)在 1 小時(shí)后過(guò)期),因此可以通過(guò)更新 access_token 來(lái)處理用戶權(quán)限級(jí)別的更改。


查看完整回答
反對(duì) 回復(fù) 2023-05-09
  • 1 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)