第一方集中帐户应用程序的ROPC或客户端凭据授予?

时间:2016-10-18 05:14:14

标签: security oauth-2.0 spring-security-oauth2

我们正在开发app-1和app-2 REST API,其中帐户将由单个帐户(公司)管理。当您需要atlassian帐户jira和confluence应用程序时,类似的东西。

我很混淆放置/login端点的位置以及创建会话的位置。我确定在未来考虑第三方oauth2客户端时,必须在oauth2提供商(授权+资源)上创建会话。

我在ROPC中看到它的方式,我将在oauth2-client上有/login并使用凭证向授权服务器发送password grant_type请求,创建访问令牌并绑定到会话。必须将sessionID返回给后续资源端点请求的User-agent。在Client Credential Grant中,我看到授权服务器具有/ login和endpoint,并直接向用户代理发出sessionID。

访问令牌必须保持在服务器端吗?

跟进问题:https://stackoverflow.com/questions/40148613/ropc-and-oidc-for-rest-api-1st-and-3rd-party-clients

1 个答案:

答案 0 :(得分:1)

资源所有者密码凭证授权(ROPC)和客户端凭证授权(CC)之间存在显着差异;第二个没有单独的资源所有者。

使用CC,您只需拥有一个代表自己的应用程序并访问可能不在给定用户范围内的资源。如下图所示:

OAuth 2.0 Client Credentials Grant Flow

(来源:Client Credentials Grant

如果您的客户端应用代表用户与API进行互动,那么这不是您正在寻找的授权

关于访问令牌问题,答案是否定的,可以使访问令牌可用于服务器环境之外的客户端应用程序。存在增加的安全风险,但如果不可能,移动应用程序和基于浏览器的应用程序将无法访问需要它们的API。