0

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

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

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

如果只能禁用登录和同意屏幕,代码授权 + PKCE 似乎会很好用。只需返回授权码。我希望在 IdentityServer3 中找到一种方法,但没有。

是否有允许这样做的配置或流程?还是我犯了安全错误?

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

4

0 回答 0