我正在使用 zendesk 在 SAML 服务上设置单点登录。我正在使用 node/express 和使用node-samlp编写自定义 SAML 服务器。
Zendesk 是 SP,我的 SAML 服务器有自己的 IdP
用户步骤如下:
导航到帐户.zendesk.com 并被重定向到帐户.com/login?SAMLRequest=asdfasdfafsd
然后用户输入凭据并发布到节点服务器。在服务器上,我能够解析* SAMLRequest,验证用户并向用户提供 SAMLResponse。
用户从节点服务器接收到 SAMLResponse 并被重定向到:account .zendesk.com?SAMLResponse=asdfasdf&RelayState=xxx
此时,用户会得到一个未找到的页面。我不确定我做错了什么,此时我猜测我的 SAMLResponse 格式错误或者我将用户重定向到错误的地址。
PS:最初 samlp 不能直接使用,我分叉了 repo 并更新了几个依赖项,它开始工作了。
*我最初无法解析来自 zendesk 的 SAMLRequest。当我在查询参数上使用 decodeURIComponent 时,有换行符和空格,我用“+”替换了它,这使它起作用。然后我意识到他们的查询参数似乎不是 URI 编码的......