madmatt / saml2
SimpleSAMLphp 的 SAML2 PHP 库
Requires
- php: >=5.3.3
- ext-dom: *
- ext-openssl: *
- psr/log: ~1.0
- robrichards/xmlseclibs: ^2.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpmd/phpmd: ~1.5
- phpunit/phpunit: ~3.7
- satooshi/php-coveralls: ~0.6.1
- sebastian/phpcpd: ~1.4
- sensiolabs/security-checker: ~1.1
- squizlabs/php_codesniffer: ~1.4
- dev-master
- v2.0.1
- v2.0.0
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.1
- v1.6.0
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.0
- v0.8.1
- v0.8.0
- v0.7.1
- v0.7.0
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.0
- v0.2.0
- v0.1.0
- v0.1.0-alpha
- dev-ss-master
- dev-d975dc0e31ee0561342751c428460c17
- dev-release-2.x
- dev-release-1.x
This package is auto-updated.
Last update: 2024-09-15 09:39:02 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。