在 Google 充当身份提供方 (Identity Provider) 的 SSO SAML 设置中,ACS url 必须以 https 开头。因此,我无法使用本地主机 url 进行测试。有没有办法在本地服务器上测试 Google SSO SAML?我需要输入哪个 url(或其他详细信息)?
因此,Google SAML应用程序(Google是身份提供者)强制您输入以https://*开头的ACS URL。因此,我无法输入http://localhost URL。我使用django demo来自python3-saml包的示例来将SAML SSO集成到我的应用程序中。
为了获得指向我的本地主机的https url,我使用了ngrok,它为您提供了指向本地主机的https和http链接。该https url可以输入到Google Admin中的ACS url和Entity url中。 Django演示使用url参数将用户重定向到已登录视图,但是在使用ngrok时这种方法并不适用。因此,我决定在一个单独的url/sso/logged-in/
上呈现已登录视图,而不是/sso/?acs
。ngrok是一个简单易用的工具,通过一条命令就可以将本地主机上的应用程序暴露在互联网上。
./ngrok http 3000
您是否尝试过使用以下测试身份提供程序(已经docker化): https://github.com/kristophjunge/docker-test-saml-idp
我曾经遇到过同样的问题,使用本地 iis 和自签名证书在本地主机上使用 https 运行我的应用程序,结果非常好。
这种方式更容易调试来自 Google 的 SAML 响应,而无需使用远程 URL。
您需要任何公共地址才能通过身份提供者重定向到您的网站。您可以选择以下方式之一:
互联网上有许多隧道提供商。作为一个免费且易于使用的隧道提供商,您可以考虑Localtunnel。
只需输入:
> npm install -g localtunnel
> lt --port 8080
然后您的本地应用程序将公开可见。