在onelogin中与SAML集成

时间:2017-02-09 13:43:05

标签: php onelogin

我正在尝试理解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' => '',

我是否必须自己编写该端点?如果是这样,它必须返回什么?

1 个答案:

答案 0 :(得分:2)

服务提供商(SP)发起的SSO工作流程中的typical workflow是:

  1. SP使用AuthnRequest
  2. 重定向到IdP进行身份验证
  3. IdP进行身份验证和授权,
  4. IdP将结果重定向回SP特定的断言使用者服务(ACS)。
  5. 身份验证请求(AuthnRequest)可能包含ACS URL,或者可能是硬编码的静态设置的一部分(如您的示例所示)。

    是的,SP提供此URL。如果您想自己推送,那么您可以考虑一般使用OpenSAML,或者使用OneLogin for PHP这样的平台特定包。否则,如果您使用的是SP服务,那么该服务提供了一个众所周知的终点。 (例如,ADFS provides /adfs/ls。)