我们正在设置应用程序以使用 Okta 进行 SSO。该应用程序符合 SAML 2.0,但它确实发送了一个动态的 AssertionConsumerServiceURL(URL 中的参数可以采用 2 个可能值中的 1 个)。应用程序希望该参数返回以在身份验证成功后将用户发送到正确的页面。
现在,身份验证成功,但用户没有被发送到正确的页面。我们怀疑 Okta 没有将用户重定向回原始 SAML 请求中发送的 ACSURL。通过在元数据配置中为 ACSl 指定一个包含两个条目的数组,我们已经使用其他 IdP(例如 simpleSamlPHP)解决了这个问题。格式如下:
$metadata['php-saml'] = array(
'AssertionConsumerService' => array(
'https://{server}/index.phpmodule=Users&action=Authenticate&dataOnly=1&platform=base',
'https://{server}/index.phpmodule=Users&action=Authenticate&dataOnly=1&platform=mobile',
),
'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
'simplesaml.nameidattribute' => 'mail',
'simplesaml.attributes' => false,
'entityid' => 'php-saml',
);
但是,Okta 前端似乎没有配置它的接口。是否有某种方式可以完全配置 Okta 以接受传入的动态 ACSUrl,并在身份验证成功后将用户引导回它?