如果有人对简单 SAML (PHP) https://github.com/onelogin/php-saml有经验,我将非常感谢您的帮助。
首先,我已经让它工作了。我的应用程序是服务提供者,它确实允许来自外部身份提供者的身份验证。欢呼!
但是,作为该过程的一部分,我有两个问题:
1) 我的 SP 生成一个元数据 URL。如果客户已经提供了他们 IDP 的详细信息,那么该代码可以正常工作。我可以看到 php-saml 代码构建了设置对象,该对象验证并返回元数据 XML。都好。
但是,如果客户端请求该元数据 URL(为了在他们的最后配置我的 SP,在他们的 IDP 中,首先)它会报告一个错误:
“无效的数组设置:idp_entityId_not_found、idp_sso_not_found、idp_cert_or_fingerprint_not_found_and_required”
显然,这个例外是不言自明的:当然,这些细节确实还没有提供。
所以我的问题是:在查看 SP 元数据的 XML 时,它不会返回任何他们的 IDP 详细信息,那么为什么它不能在不知道这些详细信息的情况下生成元数据呢?
这是一个令人担忧的原因是如果 IDP 在他们的最后有同样的问题(即他们不会有 SP 的详细信息,得到同样的错误,所以两者都不能继续)?!
2) 作为设置数组的一部分,它要求一个 x509 证书和一个私钥来签署请求。目前我正在使用我网站的 SSL 证书 (my-domain.com)。这一切都很好。
但我看到其他 SP 让人们下载他们的证书。
所以我可以让人们下载我证书的 x509 部分——我想是公共位。但我想知道证书是否甚至需要链接到元数据/ACS URL 使用的域?
或者它可以是任何旧证书,例如自签名证书?你做什么工作?
谢谢!我对此感到很困惑。很简单,肯定不是。