0

我有一个简单的 php 应用程序,它显示用户入职表单。我使用 SimpleSamlPhp 作为 SP,使用 OKTA 作为 IDP。当我访问应用程序的 url 时,我得到一个无限重定向。这些是我在 OKTA 中的设置:

我的应用程序的网址是:http://service.example.com/Analytics/ui/onboard.php。为 PostBack url、destination、receiver 和 Audience Restriction 设置了相同的 url 在 SP 端我有这段代码:

require_once('/Applications/XAMPP/xamppfiles/htdocs/simplesamlphp/lib/_autoload.php'); $as = new SimpleSAML_Auth_Simple('default-sp'); $as->requireAuth();

有什么我想念的吗?

4

1 回答 1

0

这很令人困惑,我知道。您需要做的是为您的应用程序的 SAML 配置使用特殊的 SimpleSAMLphp URL。

特别是,您在 Okta 中使用的 URL 需要指向特定的 SimpleSAMLphp URL。

这是我如何在 Okta 中配置 SimpleSAMLphp 的屏幕截图: Okta 中 SAML 设置页面的屏幕截图

在此示例中,“单点登录 URL”simplesamlphp/www/module.php/saml/sp/saml2-acs.php/example的 URL 以 结尾,“受众 URI(SP 实体 ID)”的 URL 以simplesamlphp/www/module.php/saml/sp/metadata.php/example. 这些 URL 将特定于您在 Web 服务器上安装 SimpleSAMLphp 的位置。

请注意,这些 URL 都指向 SimpleSAMLphp 端点,并且它们几乎是相同的 URL,除了一个指向,saml2-acs.php另一个指向metadata.php. 在这两个示例中,字符串“example”是指您用于在config/authsources.php文件中配置 SAML IdP 的字符串,并通过扩展名来指代metadata/saml20-idp-remote.php文件。

“Default RelayState”字段是您希望在 URL 中输入PHP 代码的位置,即您编写的包含 SimpleSAMLphp 的文件这是您要放置http://service.example.com/Analytics/ui/onboard.phpURL 的位置。

配置 SimpleSAMLphp

我发现在 SimpleSAMLphp 中向config/authsources.phpmetadata/saml20-idp-remote.php文件添加配置过于复杂,因此我编写了一些代码来简化配置。此代码及其使用说明可在 GitHub 上找到:https ://github.com/jpf/okta-simplesamlphp-example

于 2015-04-29T23:21:19.910 回答