REST API的单点登录支持

Mos*_* B. 6 rest oauth single-sign-on oauth-2.0 saml-2.0

我正在尝试找到解决以下问题的最佳方法:我们的应用程序是SaaS,它支持SAML进行Web登录.该应用程序还公开了应该在自动和无人参与进程中使用的REST API,这意味着没有交互式用户可以键入凭据.我们需要允许开发人员以编程方式针对相关IdP(已定义的身份验证无人参与进程)进行身份验证,因为用于API访问的相同凭据也可用于访问Web应用程序.

我想象的流程如下:程序使用专用API进行身份验证,获取令牌并使用令牌进行下一次调用.

我在寻找安全REST API的最佳方法时发现的大多数答案都提示oAuth,它通常需要交互式用户,因为他们讨论了一个交互式应用程序tryign,代表用户在其他系统中访问REST API,用户可以在其中输入在密码中.oAuth也是我挑战的答案吗?如果是这样,流量是多少?

谢谢!

Han*_* Z. 2

事实上,OAuth 2.0 可以用于此用例,因为它允许所谓的客户端(即您的无人值守进程)获取开发人员授予的访问令牌,并针对您的 API 使用该令牌。

这里使用的典型流程是代码流程:您将运行一个授权服务器,如果开发人员同意,它会向客户端颁发令牌。开发人员将使用 SAML Web SSO 登录授权服务器。

请注意,访问 REST API 时不需要活跃用户,但在发行令牌时需要活跃用户。我相信这就是您真正在寻找的东西。如果没有,可以利用其他完全不需要活跃用户的流程,但我认为它们不适合这个特定的用例;毕竟您希望客户代表开发人员进行操作。

除了访问令牌之外,您的授权服务器还可能会向客户端颁发刷新令牌,以便在旧访问令牌到期时,您的客户端可以使用刷新令牌从授权服务器获取新的访问令牌,而无需(以交互方式) )再次让开发商参与进来。