.net core 有没有关于如何创建使用IdentityServer4进行身份验证的dotnet core 3控制台应用程序的示例?

.net core 有没有关于如何创建使用IdentityServer4进行身份验证的dotnet core 3控制台应用程序的示例?,.net-core,identityserver4,openid-connect,.net Core,Identityserver4,Openid Connect,有没有办法创建一个dotnet core 3/3.1控制台应用程序,使用Open ID Connect通过my IdentityServer 4进行身份验证?IdentityModel.OidcClient中有一个名为NetCoreConsoleClient的旧示例,但它需要ASP.Net Core 我正在寻找的模型是,用户尝试使用console应用程序,console应用程序弹出一个浏览器窗口,并启动一个打开的ID Connect会话,使用IdentityServer 4,用户在浏览器窗口中输

有没有办法创建一个dotnet core 3/3.1控制台应用程序,使用Open ID Connect通过my IdentityServer 4进行身份验证?IdentityModel.OidcClient中有一个名为NetCoreConsoleClient的旧示例,但它需要ASP.Net Core

我正在寻找的模型是,用户尝试使用console应用程序,console应用程序弹出一个浏览器窗口,并启动一个打开的ID Connect会话,使用IdentityServer 4,用户在浏览器窗口中输入用户名/密码,控制返回到控制台应用程序,该应用程序现在具有与受保护的API服务器对话所需的令牌。在微软的azure命令行工具中,他们将身份验证转移到类似OpenID connect的东西上。我想做类似的事情

该流程是否需要ASP.NETCore?我不明白为什么会这样


这是授权码授权类型吗?如果是,令牌如何在不使用回调URL的情况下传递回控制台应用程序?我们不希望只有一个开放的公共IP端口才能运行控制台应用程序

下面是几个使用IdentityModel库的示例,演示了您需要的技术。如果使用.Net编码,我推荐他们的库-他们有适用于.Net Core和旧版.Net Framework的版本:

在这两种情况下,您都使用授权码流(PKCE),令牌传递回应用程序的方式略有不同。登录完成后,console应用程序将收到授权代码,然后可以将代码交换为令牌

环回

登录期间,console应用程序会临时侦听地址(例如)上的登录响应,该地址不需要管理员权限

私有URI方案

在安装过程中,您的方案(如x-mycompany-myconsoleapp)注册为每用户设置。应用程序通过操作系统通知基于方案的URL接收登录响应

进一步信息

出于兴趣,控制台应用程序的OAuth流选项与桌面应用程序相同。我的一些博客文章可能会让您了解Open Id connect消息和其他相关行为:


这些都是很好的例子@gary archer。我将IdentityServer桌面应用程序示例更新为.net core 3。我去看看他们是否需要公关。