簡體   English   中英

從 SPA 或 WebApi 更新 IdentityServer 用戶數據

[英]Update IdentityServer user data from SPA or WebApi

我們有一個 IdentityServer4 項目,一個 web Api 項目(.net core 5)和一個 SPA 前台項目(Vue.js)。 當 SPA 向 IS4 項目本地端點發送注冊請求時,將完成用戶創建。 然后我們有一個createCompany端點,它需要在webApi項目中創建一個公司並在IdentityServer4項目中更新CompanyId

問題是如何更好地實施? webApi應該直接調用IdentityServer4端點來更新 companyId 還是前端應該向 IS4 發送單獨的請求以更新 companyId?

從 webApi 訪問UserManager的最佳方式是什么? 例如獲取具有特定CompanyId的用戶列表? 或特定的電子郵件地址? 我應該在 IS4 中為它們中的每一個創建一個單獨的本地端點嗎? 有什么方法可以直接從 webapi 完全管理用戶,而無需在 Identityserver4 中為用戶管理創建許多端點?

我認為您缺少有關 IdentityServer4、OAuth 2.0 和 OpenID Connect 工作原理的一些信息。 IdentityServer4 是一個 OAuth 和 OpenID Connect 實現。 IdentityServer4 沒有任何方法來管理用戶數據庫或驗證用戶。 它用於使用您選擇的用戶存儲生成 OAuth 2 和 OpenID Connect 兼容令牌。

一些用於管理用戶的選項包括:

  1. ASP.NET核心身份
  2. 您自己的本土解決方案
  3. Okta、Auth0、Azure AD B2C等服務
  4. 完全不要處理傳統意義上的用戶,而是使用 OpenID Connect with Google Authentication、Facebook Authentication 等(這是您在網站上看到的“使用 Google 登錄”之類的地方)。

在更新的 IdentityServer4 項目Duende IdentityServer中閱讀更多內容。

您將需要使用其中之一來管理用戶,我建議您不要專門將大量自定義邏輯綁定到 IdentityServer4,除非您確實需要。 保留它以供授權,並將其他一切留給您自己的 API 或上述其他解決方案之一。

請記住,IdentityServer4 的生命周期即將結束,2022 年 11 月之后將不會更新,並且只會收到關鍵的安全錯誤修復。

所以,如果理解正確的話,你想創建一個用戶並將其保存到 IS4 中。 然后你想調用 webApi 創建一個公司,最后你必須在新用戶中將 companyId 傳遞給 IS4。

如果您不需要將數據從 IS4 傳遞到 webapi 來創建公司,您可以先調用 webApi 來創建公司,然后再調用 IS4 傳遞 companyId。 (我不喜歡這個解決方案)

如果 webApi 有許多與身份有關的事務,最好從 webApi 而不是從 SPA 調用身份。 直接從 webApi 最簡單、最安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM