我正在尝试找到解决以下问题的最佳方法:我们的应用程序是SaaS,它支持SAML进行Web登录。该应用程序还公开了应该在自动和无人参与进程中使用的REST API,这意味着没有交互式用户可以键入凭据。我们需要允许开发人员以编程方式对相关IdP(已定义的无人参与进程)进行身份验证,因为用于API访问的相同凭据也可用于访问Web应用程序。
我想象的流程如下:程序使用专用API进行身份验证,获取令牌并使用令牌进行下一次调用。
我在寻找安全REST API的最佳方法时发现的大多数答案都提示oAuth,它通常需要交互式用户,因为他们讨论了一个交互式应用程序tryign,代表用户访问其他系统中的REST API,在那里输入密码。 oAuth也是我挑战的答案吗?如果是的话,流程是什么?
谢谢!
答案 0 :(得分:1)
事实上,OAuth 2.0可用于此用例,因为它允许所谓的客户端(即您的无人参与进程)获取开发人员授予的访问令牌,并将该令牌用于您的API。 / p>
此处使用的典型流程是代码流程:如果开发人员同意,您将运行向客户端发放令牌的授权服务器。开发人员将使用SAML Web SSO登录授权服务器。
请注意,在访问REST API时不需要活动用户,但在令牌发布时需要一个用户。我相信这就是你真正想要的。如果没有,还有其他可以利用的流程根本不需要活跃的用户,但我相信它们不适合这个特定的用例;毕竟,您希望客户代表开发人员进行操作。
除了访问令牌之外,您的授权服务器还可以向客户端发出刷新令牌,以便在旧访问令牌到期时,您的客户端可以获得来自授权服务器的新访问令牌使用刷新令牌,而不必(交互式地)再次让开发人员参与。