我正在为SSO过程创建自动集成测试。我是SAML概念的新手,也可能是我对SAML工作原理的理解,它是不准确的还是完全错误的。
我们选择使用OneLogin作为IdP。自动化步骤:
my-api.com/v1/cats https://{app}.onelogin.com/trust/saml2/http-post/sso/{app-id}?SAMLRequest={request}
my-api.com/v1/saml/consume和SAMLResponse的POSTmy-api.com/v1/saml/consume验证POST SAMLResponse给用户服务提供者令牌,然后重定向到初始url - my-api.com/v1/cats
我被困在第二步:“用户登录到SSO”。我想使用onelogin,而不是webform来完成它。但我没找到文件。在使用https://{my-app}.onelogin.com/login页面执行登录时,我检查了网络调用。
填写电子邮件和密码后,单击“登录”按钮1.使用表单数据https://{my-app}.onelogin.com/sessions 2向authenticity_token={token}&email={email}&password={password}&commit=Log%20in&_=发送请求. Onelogin重定向用户向https://{app}.onelogin.com/trust/saml2/http-post/sso/{app-id}?SAMLRequest={request}发出GET请求(这是我们服务提供商生成的初始url ) 3.用户重定向到my-api.com/v1/saml/consume
我试图用与步骤1相同的身体使用postman发布到https://{my-app}.onelogin.com/sessions,但我检索了
422:无法处理的更改。也许你试图改变一些你无法接触到的东西。
我的问题是:是否可以使用Onelogin检索SAMLResponse?我描述的过程是对的吗?
发布于 2017-12-06 04:13:13
来自OneLogin或任何其他IDp的SAML请求是请求正文中带有SAMLRequest的表单帖子。用户将从他们的站点反弹(重定向)到您的站点。一旦在您的站点上验证了SAMLrequest,您将使用nameid对用户进行身份验证,您就完成了。
因此,您不会使用OneLogin API检索响应,它始终是来自IDp的表单帖子。
我希望这能帮到你。
发布于 2021-08-10 08:46:37
因为这是一个重定向,用户将永远离开你的应用程序,然后转到Onelogin。
当使用SAML时,流程总是类似于从SP重定向到IDP,在成功的身份验证之后,IDP将把SAML响应发送到SP的ACS URL。
如果不希望用户重定向,则可以使用OneLogin的身份验证API。但这不会是SAML流。
参考资料:https://developers.onelogin.com/api-docs/1/login-page/login-user-via-api
https://stackoverflow.com/questions/47550740
复制相似问题