prayno / casauth-bundle
Symfony 3, 4 和 5 的基本 CAS (SSO) 认证器
1.4
2019-12-17 17:19 UTC
Requires
- guzzlehttp/guzzle: ^6.2
- symfony/config: ^3.0|^4.0|^5.0
- symfony/dependency-injection: ^3.0|^4.0|^5.0
- symfony/http-foundation: ^3.0|^4.0|^5.0
- symfony/http-kernel: ^3.0|^4.0|^5.0
- symfony/security-bundle: ^3.0|^4.0|^5.0
README
Symfony 3 和 4 的基本 CAS (SSO) 认证器
此包为 Symfony 3 和 4 提供了一个非常基础的 CAS (http://jasig.github.io/cas/4.1.x/index.html) 认证客户端。
安装
通过运行以下命令使用 Composer 安装库
composer require prayno/casauth-bundle
接下来,在您的 app/AppKernel.php
文件中启用该包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new PRayno\CasAuthBundle\PRaynoCasAuthBundle(), // ... ); }
在 config.yml (Symfony 3) 或 config/packages/p_rayno_cas_auth.yaml (在 Symfony 4 中创建此文件) 中添加以下设置
p_rayno_cas_auth: server_login_url: https://mycasserver/cas/ server_validation_url: https://mycasserver/cas/serviceValidate server_logout_url: https://mycasserver/cas/logout xml_namespace: cas options:[] see http://docs.guzzlephp.org/en/latest/request-options.html
注意:xml_namespace 和 options 参数是可选的
修改您的 security.yml,使用以下值(以下设置中的 provider 不应使用,因为它只是一个非常基础的示例;在生产环境中,创建自己的 UserProvider 并将其服务名称添加到 providers:cas:id 中)
security: providers: cas: id: prayno.cas_user_provider firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: anonymous: ~ logout: ~ guard: authenticators: - prayno.cas_authenticator access_control: - { path: ^/, roles: ROLE_USER }
就这样!您的受保护路由应将您重定向到您的 CAS 登录页面,该页面应验证您的身份。
CAS 全局注销选项
如果您想在从您的应用程序注销时使您的用户从远程 CAS 服务器注销,您应应用以下设置
security.yaml
# ... firewalls: # ... main: # ... logout: path: /logout success_handler: PRayno\CasAuthBundle\Event\LogoutSuccessHandler
services.yaml
# ... services: # ... PRayno\CasAuthBundle\Event\LogoutSuccessHandler: arguments: $logoutUrl: "%cas_logout_url%"
当然,您必须在应用程序中设置一个 "cas_logout_url" 参数(例如 https://my_remote_cas_server/logout)
别忘了在您的应用程序中定义一个 /logout 路由