Single sign on SAML2.0:如何配置断言使用者服务URL
我正在实现一个SAML2.0服务提供者,它使用Okta作为身份提供者。我想配置断言消费者服务(ACS)URL,以便我的服务提供商应用程序中的SAML2.0能够反映回断言中 但是,我注意到Okta标识提供程序反而发送在Okta配置中配置的SSO端点,并忽略实际发送的ACS。另外,我得到一个错误,可能是SP的ACS与那里的元数据不匹配 如果ACS URL不是向IDP发送短ID以便其在断言中反映的正确方法,那么可以使用什么其他机制来实现此目的 例如: SP应用程序发送的SAML 2.0 SAMLRequest为: 断言\消费者\服务\ url: https://host.com:port/saml/consume?entityId=N&myName=username 标识提供程序上的配置包含元数据: 单一登录URL: https://host.com:port/saml/consume?entityId=N 请注意,myName会从一个请求更改到下一个请求,因为这是我们验证响应是否具有与发送的原始用户名匹配的name_id的方法 此外,如果服务提供商有办法让身份提供商声明SP管理的名称(如用户名),那么就可以满足我们的需要。如何具体说明这一点Single sign on SAML2.0:如何配置断言使用者服务URL,single-sign-on,saml,Single Sign On,Saml,我正在实现一个SAML2.0服务提供者,它使用Okta作为身份提供者。我想配置断言消费者服务(ACS)URL,以便我的服务提供商应用程序中的SAML2.0能够反映回断言中 但是,我注意到Okta标识提供程序反而发送在Okta配置中配置的SSO端点,并忽略实际发送的ACS。另外,我得到一个错误,可能是SP的ACS与那里的元数据不匹配 如果ACS URL不是向IDP发送短ID以便其在断言中反映的正确方法,那么可以使用什么其他机制来实现此目的 例如: SP应用程序发送的SAML 2.0 SAMLReq
感谢SAML中的,假定SP的ACS是静态的。要将响应与原始AuthnRequest关联起来,您应该保存传出AuthnRequest的ID,然后使用响应中的
来处理收到的响应
SP可以向AuthnRequest添加一个主题,告诉IdP您想要验证的用户名。正如Anders Abel所指出的,ACS被假定为静态的。然而,在开发环境中,可能需要对不同的测试系统进行更动态的响应
这是我的saml20-sp-remote.php,我使用它来响应每个请求SSO身份验证的sp,利用其请求的属性AssertionConsumerService
。
我想这对生产是不安全的
simplesamlphp/metadata/saml20-sp-remote.php:
<?php
/**
* SAML 2.0 remote SP metadata for SimpleSAMLphp.
*
* See: https://simplesamlphp.org/docs/stable/simplesamlphp-reference-sp-remote
*/
$acs = \SAML2\Binding::getCurrentBinding()->receive()->getAssertionConsumerServiceURL();
if (!$acs) $acs = 'some_fallback_url';
$metadata['idp_identifier'] = array(
'AssertionConsumerService' => $acs,
'simplesaml.nameidattribute' => 'uid'
);
请不要同时发布多个问题,最好将每个问题作为单独的问题发布。