将Okta IdP与使用动态ACSURL的SP一起使用

时间:2015-08-22 00:28:05

标签: php saml okta

我们正在设置一个使用Okta进行SSO的应用程序。该应用程序符合SAML 2.0,但它确实发送了一个动态的AssertionConsumerServiceURL(URL中的参数可以取2个可能值中的1个)。应用程序期望该参数返回以在身份验证成功后将用户发送到正确的页面。

现在,身份验证成功,但用户未发送到正确的页面。我们怀疑Okta没有将用户重定向回原始SAML请求中发送的ACSURL。我们通过在元数据配置中为ACS1指定两个条目的数组,解决了与其他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,并在身份验证成功后将用户引导回来?

1 个答案:

答案 0 :(得分:0)

AuthnRequest中,您可以设置AssertionConsumerServiceURL属性,IDP应该重定向回该ACS网址。不确定如何使用simpleSAML配置,但使用lightsaml lib,您可以自己构建AuthnRequest。