簡體   English   中英

在 asp.Net Core Web API 中使用 On-Premise AD 進行身份驗證

[英]Use On-Premise AD for Authentication in asp.Net Core Web API

免責聲明:
我在使用 asp.Net 進行身份驗證方面非常陌生,盡管過去幾天搜索了 web,但我感覺就像在兜圈子,但仍然找不到起點。

問題:
我們有一個Web 應用程序 (Vue3/Typescript) ,它從web API (asp.net core)獲取數據。 Web Application and Web API are hosted via IIS on the same server so we implemented CORS policies. 當用戶在瀏覽器中打開 web 應用程序時,我們希望通過 web API使用單點登錄 (SSO)針對本地 AD 對用戶進行身份驗證。 AD存在於同一網絡中。 我們不想在 web API 中保存任何有關用戶的信息,而不是比 session 存在的時間長。 因此沒有用於保存用戶、角色或其他任何內容的表格。 應在 AD 中配置角色以指定誰有權訪問 web API 並可以調用某些端點。

我已經閱讀了 Microsoft Docs 上的文章,但並沒有完全理解所有內容。 閱讀文章后,我仍然難以回答以下問題:

  • 我總是需要一個身份嗎?
  • 我在哪里實施有關我要對用戶進行身份驗證的 AD 的信息?
  • 在配置應用程序時,實施 Azure AD (AAD) 和本地 AD 有什么區別?
  • 哪些角色扮演 OpenId Connect (OIDC) 和 OAuth,是必要的還是可選的?
  • 我是否從本地 AD 獲得 JSON web 令牌 (JWT)?

我在 Startup.cs 中添加了身份驗證中間件,但就我所知。

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<IISServerOptions>(options =>
    {
        options.AutomaticAuthentication = false;
    });

    services.AddDbContext<MyDbContext>();

    services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
 
    services.AddAuthentication();                

    services.AddCors();

    services.AddControllers();

    services.AddMvc();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseHttpsRedirection();

    app.UseRouting();

    app.UseCors();
        
    app.UseSession();

    app.UseAuthentication();

    app.UseAuthorization();

    app.UseEndpoints();
}

感謝您提供正確方向的任何提示

下圖顯示了我們嘗試實現的目標,但我們不確定是否/如何實現,因為我們不想在應用程序數據庫中存儲任何用戶信息。

[更新用例]

我總是需要一個身份嗎?

身份存儲用戶的個人資料,應用程序以應用程序的身份運行所有請求,使用應用程序池或進程身份,然后,我們可以實現身份驗證和授權。

我在哪里實施有關我要對用戶進行身份驗證的 AD 的信息?

在 ASP.NET 內核中實現 Active Directory 身份驗證的最佳方法是使用Windows 身份驗證 但是,這僅在您運行的服務器加入域(或受信任的域)時才有效。

在配置應用程序時,實施 Azure AD (AAD) 和本地 AD 有什么區別?

Active Directory (AD) 是 Windows 服務器中包含的一組本地功能,例如:Active Directory 域服務、Active Directory 證書服務。 更多詳細信息請參閱這篇文章

Azure Active Directory (Azure AD):基於雲的身份和移動設備管理,可為 Microsoft 365、Azure 門戶或 SaaS 應用程序等資源提供用戶帳戶和身份驗證服務。

AAD 和 On-Primise AD 之間的區別,請參閱將 Active Directory 與 Azure Active Directory 進行比較

哪些角色扮演 OpenId Connect (OIDC) 和 OAuth,是必要的還是可選的?

IdentityServer4 是用於 ASP.NET 核心的 OpenID Connect 和 OAuth 2.0 框架。 IdentityServer4 支持以下安全功能:身份驗證即服務 (AaaS)、多種應用程序類型的單點登錄/注銷 (SSO)、API 和聯合網關的訪問控制。 您可以嘗試在您的 asp.net 核心應用程序中使用它,請參閱本文

我是否從本地 AD 獲得 JSON web 令牌 (JWT)?

您的意思是要同時啟用 JWT 和 AD 身份驗證? 如果是這種情況,當您使用 JWT 驗證用戶時,您還應該針對 Active Directory 驗證用戶的憑據(用戶名/密碼)。

暫無
暫無

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

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