Asp.net core 代表用户的系统到系统通信的哪个OpenID连接流?

Asp.net core 代表用户的系统到系统通信的哪个OpenID连接流?,asp.net-core,identityserver4,Asp.net Core,Identityserver4,我们有一个IdentityServer 4实现正在运行,由Asp.Net Identity支持。 目前,单页应用程序使用此服务器获取访问令牌,遵循PKCE的授权代码流 现在,我们希望将API访问权授予第三方,他们希望不时从windows服务调用我们的API,因此不涉及用户交互 我们想要实现的是,第三方代表用户调用我们的API,因此我们可以依赖用户已经实现的声明。但是,我无法确定要使用哪个OpenID Connect/Outh2流 我正在努力解决的一些问题: 我们无法使用授权代码流,因为没有用户

我们有一个IdentityServer 4实现正在运行,由Asp.Net Identity支持。 目前,单页应用程序使用此服务器获取访问令牌,遵循PKCE的授权代码流

现在,我们希望将API访问权授予第三方,他们希望不时从windows服务调用我们的API,因此不涉及用户交互

我们想要实现的是,第三方代表用户调用我们的API,因此我们可以依赖用户已经实现的声明。但是,我无法确定要使用哪个OpenID Connect/Outh2流

我正在努力解决的一些问题:

  • 我们无法使用授权代码流,因为没有用户交互(或用户代理/浏览器)
  • 我们不能使用客户端凭据流,因为我们需要用户进行身份验证,而不仅仅是客户端
  • 我们可以将资源所有者凭据流与刷新令牌一起使用,但这被认为是不安全的,甚至可以说资源所有者密码凭据授予类型适用于刷新令牌 资源所有者与 客户端,如设备操作系统或高特权应用程序。(我不确定与第三方的关系是否应被视为“委托人关系”

有人有什么好的建议吗?

你想好了吗?IdentityServer 4提供