italia / spid-symfony-bundle
一个基于 italia/spid-php-lib 的Bundle,使 Symfony3 能够使用 SPID 认证
Requires
- php: >=7.0
- italia/spid-php-lib: ^0.33
- symfony/console: ~2.7|~3.0|~4.0
- symfony/framework-bundle: ~2.7|~3.0|~4.0
- symfony/process: ~2.7|~3.0|~4.0
- symfony/yaml: ~2.7|~3.0|~4.0
- twig/twig: ^1.28.2|^2.0
Requires (Dev)
- doctrine/orm: ~2.4
- endouble/symfony3-custom-coding-standard: ^2.10
- phpunit/phpunit: ^6.3
- symfony/doctrine-bridge: ~2.7|~3.0
- symfony/filesystem: ~2.7|~3.0
- symfony/phpunit-bridge: ^3.3
- symfony/symfony: 3.4.*
This package is auto-updated.
Last update: 2024-09-22 21:23:49 UTC
README
⚠️ 进行中 ⚠️
此Bundle允许轻松地将 italia/spid-php-lib 库集成到Symfony项目中。
提供了可轻松覆盖的路线和服务
此Bundle未实现的一个典型需求是保存通过SPID到达的用户数据。
安装
步骤1:安装和配置
使用composer安装存储库
composer require italia/spid-simfony-bundle
通过将其添加到 AppKernel 来启用Bundle
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Italia\SpidSymfonyBundle\SpidSymfonyBundle(), ); // ... } // ... }
配置 security.yml 以使用认证器和用户提供者
security: providers: spid_user_provider: id: id_del_servizio firewalls spid: pattern: /il/vostro/pattern/ guard: provider: spid_user_provider authenticators: - spid.authenticator
提供的 guardAuthenticator 非常基础,需要根据项目需求进行扩展
如果需要使用默认路由,请包含路由
spid_security: resource: '@SpidSymfonyBundle/Resources/config/routing/saml_routes.yml'
请注意 acs 路由,它必须显然与公开的路由相匹配
添加Bundle配置
spid_symfony: sp_entityid: 'http://some.site.it' sp_key_file: '%kernel.root_dir%/../example/sp.key' sp_cert_file: '%kernel.root_dir%/../example/sp.crt' sp_singlelogoutservice: - [ 'http://some.site.it/slo', '' ] sp_org_name: 'dev-system' sp_attributeconsumingservice: - ["name", "familyName", "fiscalNumber", "email"] - ["name", "familyName", "fiscalNumber", "email", "spidCode"] sp_assertionconsumerservice: - 'http://some.site.it/acs' sp_org_display_name: 'Sistema di Sviluppo' idp_metadata_folder: '%kernel.root_dir%/../example/idp_metadata'
步骤2:(可选)保存用户
如果需要,可以通过PISD保存检索到的用户。在Authenticator中这样做是最合理的地方,通过重写 getUser 方法并利用 $credentials 中的数据来实例化一个新的要持久化的用户
覆盖
可以将登录模板覆盖为将自定义模板放在 app/Resources/SpidSymfonyBundle/views/Security/chooseidp.html.twig 中。有关SPID标准按钮的文档,请参阅 https://github.com/italia/spid-smart-button。Bundle中提供了一个版本,方便开发测试,但应将提供的版本替换为生产时的有效版本。
此Bundle提供的按钮不保证有效或可用
IDP
要配置测试IDP,请参阅 https://github.com/italia/spid-testenv2