2017-02-27 115 views
2

我們正在實施IdentityServer4與MS.Identity SSO,身份驗證&授權使用隱式流量爲我們少數的SPA和WebAPI(我們擁有所有)。OpenId連接權利要求流中的權限/授權

在隱式流程中,Id_Token是我們放置額外「索賠」的地方。 Spec here.

的的access_token不包含自定義權限的權利要求每this.

Implicit Flow Spec is here.

問:什麼是授予和刪除權限的流程?

  • 客戶端如何知道在未輪詢User Info Endpoint的情況下權限/聲明已更改?
  • 資源服務器如何知道?

撤銷Id_token不是規範。似乎在知道權限的令牌中,效用不再適用於我對OpenID Conenct的理解。

我錯過了一個明確的spec'd解決方案嗎?或者當權限發生變化時,我們是否實施某種類型的Id_Token重新發布?

謝謝..

回答

1

標記不包含權限。它們包含有關客戶端&用戶的身份數據。

https://leastprivilege.com/2016/12/16/identity-vs-permissions/

+0

謝謝你的迴應。我讀了這篇文章,並在幾周前與我的同事分享,當時我們決定實施刷新令牌,最終導致我們重寫整個認證/授權。最後,文章以「敬請關注」結束。是否存在任何地方的現有解決方案或模式或與OpenId Connect相關? – ttugates

+0

爲了解決有效載荷大小,我們將Enum作爲Shorts編碼爲2個字節,然後Base64URL對它進行編碼。 – ttugates

0

在Dominick的答案的光。

我將執行權限/授權服務器和端點。

SPA和WebAPI客戶端可以通過身份驗證爲其調用權限。現在我們可以返回任何我們需要的自定義權限對象。

在access_token中,我們將添加一個自定義的「Permission ETAG」,這樣如果用戶的權限發生變化,每個客戶端都會知道獲取新的權限。

建設性的批評歡迎..