首页 > 解决方案 > Asp.Net Core Web API 中 IdentityServer 的哪个 Nuget 包?

问题描述

我有两个需要身份验证和授权功能的 Web 应用程序。服务器端运行 Asp.NET Core 3.0,客户端运行 Angular,我打算用代码交换证明密钥 (PKCE) 流来实现 IdentityServer。官方 IdentityServer 文档 ( https://identityserver4.readthedocs.io ) 指的是包IdentityServer4,而 dotnet 模板 ( https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-api-authorization?视图=aspnetcore-3.0 ) 使用Microsoft.AspNetCore.ApiAuthorization.IdentityServer. 我找不到后一个包的正确描述,它被列为 IdentityServer 的实现。但是,两个包之间可用的配置方法是不同的。

我想在我的 Web 应用程序中将 IdentityServer 作为中间件运行,并发出 PKCE 密钥来完整地进行身份验证和授权。我不确定是否IdentityServer4可以在我的主应用程序中作为中间件运行,或者是否需要在它自己的应用程序中作为中间件,并且不确定是否Microsoft.AspNetCore.ApiAuthorization.IdentityServer支持 PKCE 流。

哪个包满足我的两个要求?

标签: asp.net-coreasp.net-identityidentityserver4

解决方案


我发现了关于 Microsoft 维护的 nuget 功能的讨论,它在 4 月引用它仅支持隐式流。在稍后阶段,它将支持 PKCE 秘密流。

https://github.com/aspnet/AspNetCore/issues/5833

IdentityServer4或专门IdentityServer4.AccessTokenValidation用于发布 PKCE 机密)可以是我的主应用程序的中间件。

所以我会坚持,IdentityServer4因为它符合我的两个要求。


推荐阅读