如何执行带有Restful服务调用的单点登录(SSO)

问题描述:

我有一个网站,用户必须通过单点登录(SAML SSO)才能访问该网站。该网站有一个GUI,用于输入信息并发送到服务器。如何执行带有Restful服务调用的单点登录(SSO)

现在我正在构建一些RESTful API调用(无GUI)。这些电话的URL如下所示:https://example.com/api/do-work。这个资源是一个python脚本。

但是,这些调用尚未进行身份验证设置,我希望通过SSO来完成。

我正在寻找一个通过linux命令行和curl命令执行此操作的选项。 curl命令将包括所有必要的SSO数据通过这样的数据标志:

curl --data "name=Bob&id=123456" https://example.com/api/do-work 

然后在python脚本我会建立SAML SSO请求。如果用户的详细信息有效,我会将结果返回给用户,否则告诉他们他们的凭证存在问题。

这是通过RESTful调用进行SSO的正确方法吗?

我也一直在寻找JSON Web Tokens(JWT)作为一种可能的解决方案。

SAML 2.0令牌很重要通过RESTful请求发送,处理起来相当复杂。对于RESTful调用,JWT令牌更合适。通常,请求包含JWT令牌作为不记名令牌。一个例子是使用卷曲可以实现的 JWT Token in POSTMAN Header