是否有示例说明如何创建使用 IdentityServer4 进行身份验证的 dotnet core 3 控制台应用程序?
Is there an example of how to create a dotnet core 3 console app that authenticates with IdentityServer4?
有没有办法创建一个 dotnet core 3/3.1 控制台应用程序,它使用 Open ID Connect 通过我的 IdentityServer4 进行身份验证? IdentityModel.OidcClient 中有一个名为 NetCoreConsoleClient 的旧示例,但它需要 ASP.Net 核心。
我正在寻找的模型是用户尝试使用控制台应用程序,控制台应用程序弹出浏览器 window 并启动与 IdentityServer4 的 Open ID Connect 会话,用户输入 username/password 在浏览器 window 中,控制 returns 到控制台应用程序,该应用程序现在具有与受保护的 API 服务器通信所需的令牌。在 Microsoft 的 azure 命令行工具中,它们将身份验证卸载到类似于 OpenID connect 的东西。我正在寻找做类似的事情。
该流程是否需要 ASP.Net 核心?我不明白为什么会这样。
这是授权码授予类型吗?如果是,令牌如何在不使用回调的情况下传回控制台应用程序 URL?我们不希望仅 运行 控制台应用程序就必须有一个开放的 public IP 端口。
这里有几个使用 IdentityModel 库的示例,并展示了您需要的技术。如果在 .Net 中编码,我会推荐他们的库——他们有 .Net Core 和旧的 .Net Framework 的版本:
在这两种情况下,您都使用授权代码流 (PKCE),并且令牌传回应用程序的方式略有不同。控制台应用程序将在登录完成时收到授权代码,然后可以将代码交换为令牌。
环回
在登录期间,控制台应用程序会临时侦听地址 http://localhost:8000 上的登录响应,这不需要管理员权限。
私有 URI 方案
在安装过程中,您的方案(例如 x-mycompany-myconsoleapp)被注册为每个用户设置。该应用程序通过操作系统通知接收登录响应到基于 URL.
的方案
更多信息
有趣的是,控制台应用程序的 OAuth 流程选项与桌面应用程序相同。我的一些博客文章可能会让您了解 Open Id 连接消息和其他相关行为:
有没有办法创建一个 dotnet core 3/3.1 控制台应用程序,它使用 Open ID Connect 通过我的 IdentityServer4 进行身份验证? IdentityModel.OidcClient 中有一个名为 NetCoreConsoleClient 的旧示例,但它需要 ASP.Net 核心。
我正在寻找的模型是用户尝试使用控制台应用程序,控制台应用程序弹出浏览器 window 并启动与 IdentityServer4 的 Open ID Connect 会话,用户输入 username/password 在浏览器 window 中,控制 returns 到控制台应用程序,该应用程序现在具有与受保护的 API 服务器通信所需的令牌。在 Microsoft 的 azure 命令行工具中,它们将身份验证卸载到类似于 OpenID connect 的东西。我正在寻找做类似的事情。
该流程是否需要 ASP.Net 核心?我不明白为什么会这样。
这是授权码授予类型吗?如果是,令牌如何在不使用回调的情况下传回控制台应用程序 URL?我们不希望仅 运行 控制台应用程序就必须有一个开放的 public IP 端口。
这里有几个使用 IdentityModel 库的示例,并展示了您需要的技术。如果在 .Net 中编码,我会推荐他们的库——他们有 .Net Core 和旧的 .Net Framework 的版本:
在这两种情况下,您都使用授权代码流 (PKCE),并且令牌传回应用程序的方式略有不同。控制台应用程序将在登录完成时收到授权代码,然后可以将代码交换为令牌。
环回
在登录期间,控制台应用程序会临时侦听地址 http://localhost:8000 上的登录响应,这不需要管理员权限。
私有 URI 方案
在安装过程中,您的方案(例如 x-mycompany-myconsoleapp)被注册为每个用户设置。该应用程序通过操作系统通知接收登录响应到基于 URL.
的方案更多信息
有趣的是,控制台应用程序的 OAuth 流程选项与桌面应用程序相同。我的一些博客文章可能会让您了解 Open Id 连接消息和其他相关行为: