Oauth 2.0 使用PKCE授予OAuth代码授权,但针对应用程序,而非用户

Oauth 2.0 使用PKCE授予OAuth代码授权,但针对应用程序,而非用户,oauth-2.0,identityserver3,pkce,Oauth 2.0,Identityserver3,Pkce,OAuth2规范定义了用于机器对机器授权的客户端凭据授予,其中不涉及用户。身份通过客户端密码确认。这不适用于本机客户端,例如移动应用程序,因为无法保证存储的客户端机密 移动应用程序可以使用OAuth代码授权授权和代码交换证明密钥(PKCE),这允许动态生成秘密。如果您需要用户授权/身份验证,这非常好 但是,如果您只需要保护API的资源,以便只有您的移动应用程序可以使用它,而不跟踪用户,该怎么办?也就是说,我希望为我的应用程序而不是用户获取访问令牌 如果登录和同意屏幕都可以被禁用,那么代码授权+P

OAuth2规范定义了用于机器对机器授权的客户端凭据授予,其中不涉及用户。身份通过客户端密码确认。这不适用于本机客户端,例如移动应用程序,因为无法保证存储的客户端机密

移动应用程序可以使用OAuth代码授权授权和代码交换证明密钥(PKCE),这允许动态生成秘密。如果您需要用户授权/身份验证,这非常好

但是,如果您只需要保护API的资源,以便只有您的移动应用程序可以使用它,而不跟踪用户,该怎么办?也就是说,我希望为我的应用程序而不是用户获取访问令牌

如果登录和同意屏幕都可以被禁用,那么代码授权+PKCE将非常有效。只需返回身份验证代码。我希望在IdentityServer3中找到一种方法来实现这一点,但没有

是否有允许此操作的配置或流程?还是我犯了安全错误

编辑
在我看来,使用PKCE还应该允许流具有两个反向通道调用,一个到authorize端点,另一个到token端点。本质上,代码授权不需要浏览器重定向。我知道这样的流程不在规范中,但我说的对吗?不管怎样,问题仍然存在,如何使用自己的帐户而不是用户的帐户授权移动应用程序?

Hi@charles flatt,你找到答案了吗?我正在尝试做同样的事情。不,从来没有。我也在尝试做同样的事情。请提供任何指导,如果你发现如何做,因为。