korotovsky / sso-sp-bundle
Symfony2的单点登录组件。服务提供商部分。
0.3.1
2016-03-04 14:06 UTC
Requires
- php: >=5.5
- ext-openssl: *
- doctrine/orm: ~2.3
- korotovsky/sso-library: ~0.3.0
- symfony/symfony: ~2.8|~3.0
Requires (Dev)
- phpunit/phpunit: >=4.4
- symfony/phpunit-bridge: >=2.2
README
免责声明
我绝不是安全专家。我对这个领域也不算差,但我也不能保证这个组件的安全性。如果您想在生产环境中使用它,请自行承担风险。话虽如此,如果您想为此组件做出贡献,让它变得更好/更安全,您可以始终 创建一个问题 或发送 一个拉取请求。
描述
此组件提供了一种简单的方法将单点登录集成到您的网站中。它使用现有的(主)防火墙进行实际的身份验证,并将所有配置的SSO路由重定向到通过一次性密码进行身份验证。
安装
安装是一个快速的五步过程
- 使用composer下载SingleSignOnServiceProviderBundle
- 启用组件
- 配置SingleSignOnServiceProviderBundle
- 启用验证OTP的路由
- 修改安全设置
第1步:使用composer下载SingleSignOnServiceProviderBundle
告诉composer需要该包
composer require korotovsky/sso-sp-bundle
Composer将组件安装到您的项目目录的 vendor/korotovsky
中。
第2步:启用组件
<?php // app/AppKernel.php public function registerBundles() { $bundles = [ // ... new Krtv\Bundle\SingleSignOnServiceProviderBundle\KrtvSingleSignOnServiceProviderBundle(), ]; } ?>
第3步:配置SingleSignOnServiceProviderBundle
将以下设置添加到您的 config.yml 文件中。
# app/config/config.yml krtv_single_sign_on_service_provider: host: idp.example.com host_scheme: http login_path: /sso/login/ # Configuration for OTP managers otp_manager: name: http managers: http: provider: guzzle # Active provider for HTTP OTP manager providers: # Available HTTP providers service: # the service must implement Krtv\SingleSignOn\Manager\Http\Provider\ProviderInterface id: krtv_single_sign_on_service_provider.security.authentication.otp_manager.http.provider.guzzle guzzle: # in case you don't have a guzzle client, you must create one client: acme_bundle.guzzle_service # the route that was created in the IdP bundle resource: http://idp.example.com/internal/v1/sso otp_parameter: _otp secret_parameter: secret
第4步:启用验证OTP的路由
# app/config/routing.yml otp: # this needs to be the same as the check_path, specified later on in security.yml path: /otp/validate/
第5步:修改安全设置
# app/config/security.yml security: firewalls: main: pattern: ^/ sso: require_previous_session: false provider: main check_path: /otp/validate/ # Same as in app/config/routing.yml sso_scheme: http # Required sso_host: idp.example.com # Required sso_otp_scheme: http # Optional sso_otp_host: consumer1.com # Optional sso_failure_path: /login # Can also be as an absolute path to service provider sso_path: /sso/login/ # SSO endpoint on IdP. sso_service_extra: null # Default service extra parameters. Optional. sso_service_extra_parameter: service_extra # Parameter name. Optional sso_login_required: 1 # Optional sso_login_required_parameter: login_required # Optional sso_service: consumer1 # Consumer name logout: invalidate_session: true path: /logout target: http://idp.example.com/sso/logout?service=consumer1
此组件的公共API
此组件将几个服务注册到服务容器中。这些服务将帮助您自定义应用程序中的SSO流程
- sso_service_provider.otp_manager – 用于处理OTP令牌的管理器。检查和接收。
- sso_service_provider.uri_signer - 用于签名URL的服务,如果您需要将用户重定向到 /sso/login。