1

我在嘗試構建一個由IdentityServer4處理身份驗證/授權的ASP.NET Core API。 IdentityServer4由Identity和Entity Framework Core支持。我的目標是相當標準和熟悉的設置,用戶可以登錄到API開發者門戶網站,在那裏他們可以添加「應用程序」(客戶端)並生成客戶端ID和客戶端密鑰,然後可以使用它們訪問API,類似的以及Facebook,Google等如何處理API訪問。將客戶端與用戶關聯起來

我的思維障礙正以IdentityServer處理實體框架集成的方式出現。他們的實體附屬於兩個不同的背景,ConfigurationDbContextPersistedGrantDbContext。我不知道如何將IdentityServer4.EntityFramework中的一個或多個Client實體與我的Identity上下文中的一個或多個ApplicationUser實體相關聯。

這似乎是一個相當常見的使用場景,但文檔卻奇怪地沉默。經過各種搜索後,我也無法在網上找到任何東西。我希望有人需要這個相同的設置,並可以給我一些關於如何進行的建議。

回答

0

用戶和客戶之間沒有關聯。無論客戶端嘗試訪問哪個客戶端,IdentityServer都會對其進行身份驗證。

如果你想實現類似「哪個用戶被允許使用哪個客戶端」的語義,那是超出認證範圍的。這通常是在應用程序本身中實現的,因爲這是應用程序特定的邏輯。

https://leastprivilege.com/2017/07/10/authorization-is-hard-slides-and-video-from-ndc-oslo-2017/

+0

我不認爲你明白我在問什麼。我知道用戶和客戶之間沒有關聯。這就是重點。授權API將通過客戶端憑證進行處理。我需要爲用戶提供一種管理他們將創建的一組客戶端以使用API​​的方式。想想Facebook的API。您登錄到他們的開發者門戶並創建一個或多個「應用程序」。這些應用程序實際上只是IdentityServer說法中的客戶端。他們有一個身份證和一個祕密,並允許您訪問某些Facebook API範圍。這正是我期望創造的。 –

+0

好的 - 你想建立某種自助式管理門戶。這很好 - IdentityServer本身沒有任何幫助你。 – leastprivilege

+0

我並不想困難,但我並不期望IdentityServer爲我處理這件事。問題的關鍵是我試圖找出最佳的方式來創建我的Identity用戶和來自IdentityServer的'Client'之間的某種關係。因爲,上下文是分開的,我不知道該怎麼做,希望得到一點指導,或者比我目前的思維過程更好。 –

相關問題