【问题标题】:Infinite Redirect with OKTA使用 OKTA 进行无限重定向
【发布时间】:2015-07-09 07:37:57
【问题描述】:
我有一个简单的 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();
我有什么遗漏的吗?
【问题讨论】:
标签:
saml-2.0
simplesamlphp
okta
【解决方案1】:
这很令人困惑,我知道。您需要做的是为您的应用程序的 SAML 配置使用特殊的 SimpleSAMLphp URL。
特别是,您在 Okta 中使用的 URL 需要指向特定的 SimpleSAMLphp URL。
这是我如何在 Okta 中配置 SimpleSAMLphp 的屏幕截图:
在此示例中,“单点登录 URL”的 URL 以 simplesamlphp/www/module.php/saml/sp/saml2-acs.php/example 结尾,“受众 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 文件中的字符串。
“默认 RelayState”字段是您希望在 URL 中输入 您的 PHP 代码的位置,即您编写的包含 SimpleSAMLphp 的文件。这是您要放置@987654321@ URL 的位置。
配置 SimpleSAMLphp
我发现在 SimpleSAMLphp 中向config/authsources.php 和metadata/saml20-idp-remote.php 文件添加配置过于复杂,因此我编写了一些代码来简化配置。此代码及其使用说明可在 GitHub 上找到:https://github.com/jpf/okta-simplesamlphp-example