2017-03-28 24 views
0

我想用IdentityServer4爲我的API資源定義2個不同的作用域,類似於:https://identityserver4.readthedocs.io/en/release/configuration/resources.html#defining-api-resources。有一個端點我希望我的客戶端應用程序在不需要用戶登錄的情況下點擊,其餘端點將通過用戶交互(混合流程fwiw)得到充分保護。IdentityServer4並使用多個作用域

我想我可以得到它的工作,所以無論是流提供訪問API。我感到困惑的是上面演示的配置,我如何限制客戶端證書流只有一個有限的範圍?我不希望該流程能夠達到API的全部範圍。只有用戶登錄後才能訪問其餘的API ...... API的另一個「範圍」...

這是針對本機/移動應用程序的,因此客戶機憑據的客戶機密將爲嵌入在應用程序中。這就是爲什麼API的其他部分需要更好的保護。但是將IdentityServer4配置爲允許這兩種資源的授權類型都不會有人能夠發現該客戶端密鑰,並在原生應用程序之外使用它來訪問其餘的API呢?如何將授權類型限制爲更受限制的範圍...?

回答

0

它看起來像是部分答案,或者對我的具體情況「有效」的答案可在bottom of this page找到。客戶端憑證令牌不會有「子」聲明,而資源所有者(以及我假設混合等)會。因此,可以在識別端點所需的權限時區分兩者。在這種情況下,我很困惑於確定多個範圍的價值。

1

您將需要兩個不同的客戶端,每個客戶端都有自己的資源配置(使用範圍)。從屬權利要求可以看作是用戶標識符聲明,因此在客戶端憑證流程中沒有位置,因爲它是無用戶流。

+0

瞭解子(Subject id)聲明。我很困惑你的意思是用範圍來區分客戶,直到我看到某個範圍實際上只是成爲索賠。然後這是有道理的。我會給它一個鏡頭! – DennisWelu

+0

進一步思考......這裏列出的兩個不同範圍的價值是什麼:http://docs.identityserver.io/en/release/configuration/resources.html#defining-api-resources。這些如何在服務端點「執行」? – DennisWelu

+0

在我腦海中混合了ApiResource和Client類。並找到了更詳細的範圍說明,包括如何執行:https://leastprivilege.com/2015/12/28/validating-scopes-in-asp-net-4-and-5/。有2個客戶再次合理。每個客戶端映射到1 ApiResource中定義的不同範圍。正在進行中... – DennisWelu

相關問題