rozmarbeka/saml2

来自 SimpleSAMLphp 的 SAML2 PHP 库

v2.3 2016-09-14 07:58 UTC

README

[构建状态] (https://travis-ci.org/simplesamlphp/saml2) [覆盖率状态] (https://coveralls.io/r/simplesamlphp/saml2)

这是一个用于 SAML2 相关功能的 PHP 库。从 SimpleSAMLphp 中提取,由 OpenConext 使用。这个库最初是 UNINETT 和 SURFnet 之间的合作项目,但现在欢迎所有人贡献。

在使用之前

除非您对 SAML2 规范非常熟悉,否则请勿使用此库。

如果您对 SAML2 规范不熟悉,只是想使用 SAML2 连接应用程序,您可能应该使用 SimpleSAMLphp

虽然这个库被标记为稳定,但它目前并不非常适合开发者,其 API 未来可能发生重大变化。然而,它是各方之间合作的起点。因此,让我们知道您希望在 PHP SAML2 库中看到什么。

请注意,HTTP Artifact 绑定和 SOAP 客户端在 SimpleSAMLphp 之外不工作

选择哪个版本?

强烈建议使用 2.x 范围的最新稳定版本,因为这是当前支持的版本。

1.x 范围应被视为已弃用。这意味着它将接收修复,如果需要,功能可能会回滚。只有当无法立即将项目迁移到 2.x 范围时,才应依赖此版本。

0.x 范围已停止开发,将不再接收任何修复或功能。然而,0.x 范围在功能上与 1.x 范围相同。如果您的项目或项目依赖项依赖于 0.x 版本,则可以使用 composer 内联别名,使用 composer require "simplesamlphp/saml2:1.7.0 as 0.8" 将 1.7.0 安装为 0.8。

用法

  • 使用 Composer 安装,在您的项目中运行以下命令
composer require simplesamlphp/saml2:^2.0
  • 通过扩展和实现 SAML2\Compat\AbstractContainer 来提供所需的外部依赖,然后将它注入到 ContainerSingleton 中(请参见下面的示例)。

  • 确保您已阅读下面的安全部分

  • 随意使用。示例

    // Use Composers autoloading
    require 'vendor/autoload.php';

    // Implement the Container interface (out of scope for example)
    require 'container.php';
    SAML2\Compat\ContainerSingleton::setContainer($container);

    // Set up an AuthnRequest
    $request = new SAML2\AuthnRequest();
    $request->setId($container->generateId());
    $request->setIssuer('https://sp.example.edu');
    $request->setDestination('https://idp.example.edu');

    // Send it off using the HTTP-Redirect binding
    $binding = new SAML2\HTTPRedirect();
    $binding->send($request);

安全性

  • 如果您需要创建一个DOMDocument实例,请使用SAML2\DOMDocumentFactory来创建DOMDocuments,可以从字符串(SAML2\DOMDocumentFactory::fromString($theXmlAsString))、文件(SAML2\DOMDocumentFactory::fromFile($pathToTheFile))或创建一个新的实例(SAML2\DOMDocumentFactory::create())。这样做是为了防止XXE处理漏洞,以及XML实体扩展攻击

许可证

此库采用LGPL许可证版本2.1授权。更多详情请参阅LICENSE