仅适用于第一方客户端使用Oauth2吗?

问题描述 投票:1回答:2

我已经阅读了很多有关Oauth2授权的信息,但是我似乎找不到确切的答案,所以我希望你们中的一个可以在这里为我提供帮助。

如果我理解正确,那么Oauth2专门用于向公共第三方客户端授权您的API的一部分。我似乎在规范中找不到关于授权第一方客户端的任何提及。我已经阅读了一些有关使用隐式授予类型的文章,但感觉为此目的使用隐式授予类型并不是规范的真正目的。

假设我有一个我想通过Web应用程序和本机移动应用程序访问的API。用户可以在这些应用程序上创建帐户并访问API的某些部分。我还希望拥有一个可以访问API所有部分的管理门户。因此,我需要在API中进行某种形式的授权,但是由于所有这些应用程序都是第一方客户端(由我制作),因此在此处使用Oauth2感觉不对。

因此,我的问题是,将Oauth2用于第一方应用程序是否合适,否则,对于第一方客户端的授权有什么替代方法?

authentication oauth-2.0 authorization
2个回答
1
投票

OAuth的最初目标是允许第三方应用程序代表您访问API,而无需提供您的凭据。

现在,如果您拥有所有参与者(客户端,授权服务器和资源服务器),则用户会将其凭据提交给您拥有的东西(登录时的授权服务器)。

另一件事是,由于客户是由已经管理您的资源的同一家公司生产的,因此同意屏幕的价值可能较低。用户可能仍想减少某些客户端的权限(例如,仅允许您的移动客户端读取银行交易,而Web客户端可以创建新交易)。

话虽如此,OAuth2仍然是任何客户端获取API的访问令牌的好协议。您可以使用现成的库在您的应用程序和服务中实现它,并避免实现自己的身份验证系统。

将OAuth2用于您的API将使您以后可以轻松允许第三方客户端。


0
投票

OAuth 2.0用于服务到服务的授权。

当涉及到用户身份验证时,OpenID Connect是正确的选择。

您可以在OpenID Connect prompt parameter中使用“ Authentication Request”,这是一个由空格分隔,区分大小写的ASCII字符串值列表,用于指定授权服务器是否提示资源所有者进行重新认证和同意。

通常,使用值“ none”,授权服务器不得显示任何身份验证或同意用户界面页面。

© www.soinside.com 2019 - 2024. All rights reserved.