第一方 centralized-account 应用程序的 ROPC 或客户端凭据授予?
ROPC or Client Credential Grant for 1st party centralized-account app?
我们正在开发 app-1 和 app-2 REST API,其中帐户将由单个帐户(公司)管理。当您需要为您的 jira 和 confluence 应用程序提供 atlassian 帐户时,类似的事情。
我很困惑在哪里放置 /login
端点以及在哪里创建 session。我确定 session 必须在 oauth2 提供商(授权 + 资源)中创建,考虑到将来的第 3 方 oauth2 客户端。
我在 ROPC 中看到的方式是,我将在 oauth2-client 上有一个 /login
并使用凭证向授权服务器发送 password grant_type
请求,创建访问令牌并绑定到session。 sessionID 必须返回到 User-agent 以用于后续的资源端点请求。在客户端凭据授予中,我看到授权服务器具有 /login 和端点,并直接向用户代理颁发 sessionID。
Access Token 一定要留在 server-side 之内吧?
跟进问题:
资源所有者密码凭据授予 (ROPC) 和客户端凭据授予 (CC) 之间存在显着差异;第二个没有涉及单独的资源所有者。
使用 CC,您只有一个应用程序代表它自己并访问可能不在给定用户范围内的资源。如下图所示:
如果您的客户端应用程序 代表用户与 API 交互,那么这不是您正在寻找的授权。
关于访问令牌问题,答案是否定的,访问令牌可用于服务器环境之外的客户端应用程序。这会增加安全风险,但如果这不可能,则移动应用程序和基于浏览器的应用程序将无法访问需要它们的 API。
我们正在开发 app-1 和 app-2 REST API,其中帐户将由单个帐户(公司)管理。当您需要为您的 jira 和 confluence 应用程序提供 atlassian 帐户时,类似的事情。
我很困惑在哪里放置 /login
端点以及在哪里创建 session。我确定 session 必须在 oauth2 提供商(授权 + 资源)中创建,考虑到将来的第 3 方 oauth2 客户端。
我在 ROPC 中看到的方式是,我将在 oauth2-client 上有一个 /login
并使用凭证向授权服务器发送 password grant_type
请求,创建访问令牌并绑定到session。 sessionID 必须返回到 User-agent 以用于后续的资源端点请求。在客户端凭据授予中,我看到授权服务器具有 /login 和端点,并直接向用户代理颁发 sessionID。
Access Token 一定要留在 server-side 之内吧?
跟进问题:
资源所有者密码凭据授予 (ROPC) 和客户端凭据授予 (CC) 之间存在显着差异;第二个没有涉及单独的资源所有者。
使用 CC,您只有一个应用程序代表它自己并访问可能不在给定用户范围内的资源。如下图所示:
如果您的客户端应用程序 代表用户与 API 交互,那么这不是您正在寻找的授权。
关于访问令牌问题,答案是否定的,访问令牌可用于服务器环境之外的客户端应用程序。这会增加安全风险,但如果这不可能,则移动应用程序和基于浏览器的应用程序将无法访问需要它们的 API。