使用 OKTA 进行无限重定向

Infinite Redirect with OKTA

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

我的应用程序的 url 是:http://service.example.com/Analytics/ui/onboard.php。为 PostBack url、目标、收件人和受众限制设置了相同的 url 在 SP 端我有这段代码:

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

有什么我遗漏的吗?

这很混乱,我知道。您需要做的是为您的应用程序的 SAML 配置使用特殊的 SimpleSAMLphp URLs。

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

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

在此示例中,"Single sign on URL" 的 URL 以 simplesamlphp/www/module.php/saml/sp/saml2-acs.php/example 结尾,"Audience URI (SP Entity ID)" 的 URL 以 simplesamlphp/www/module.php/saml/sp/metadata.php/example 结尾.这些 URL 将特定于您在网络服务器上安装 SimpleSAMLphp 的位置。

请注意,这些 URL 都指向 SimpleSAMLphp 端点并且它们几乎相同 URL,除了一个指向 saml2-acs.php 而另一个指向 [=13] =].在这两个示例中,字符串 "example" 是指您用于在 config/authsources.php 文件和 metadata/saml20-idp-remote.php 文件中配置 SAML IdP 的字符串。

"Default RelayState" 字段是您要在 URL 中输入 您的 PHP 代码的地方,即文件你写的包括 SimpleSAMLphp。这是您要放置 <a href="http://service.example.com/Analytics/ui/onboard.php" rel="nofollow noreferrer">http://service.example.com/Analytics/ui/onboard.php</a> URL.

的地方

配置 SimpleSAMLphp

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