我正在尝试理解SAML并构建一个与a docker image of a SAML IDP对话的简单PHP应用程序。我把它设置为在端口8081上运行。
我设置了IDP配置:
'idp' => [
// Identifier of the IdP entity (must be a URI)
'entityId' => 'app.example.com',
// SSO endpoint info of the IdP. (Authentication Request protocol)
'singleSignOnService' => [
// URL Target of the IdP where the Authentication Request Message
// will be sent.
'url' => 'http://localhost:8081/simplesaml/saml2/idp/metadata.php',
我不确定在SP配置中为URL值添加什么:
'sp' => [
// Identifier of the SP entity (must be a URI)
'entityId' => 'http://authproxy.example.com',
// Specifies info about where and how the <AuthnResponse> message MUST be
// returned to the requester, in this case our SP.
'assertionConsumerService' => [
// URL Location where the <Response> from the IdP will be returned
'url' => '',
我是否必须自己编写该端点?如果是这样,它必须返回什么?
答案 0 :(得分:2)
服务提供商(SP)发起的SSO工作流程中的typical workflow是:
AuthnRequest
,身份验证请求(AuthnRequest
)可能包含ACS URL,或者可能是硬编码的静态设置的一部分(如您的示例所示)。
是的,SP提供此URL。如果您想自己推送,那么您可以考虑一般使用OpenSAML,或者使用OneLogin for PHP这样的平台特定包。否则,如果您使用的是SP服务,那么该服务提供了一个众所周知的终点。 (例如,ADFS provides /adfs/ls
。)