prayno/casauth-bundle

Symfony 3, 4 和 5 的基本 CAS (SSO) 认证器

安装次数: 71,030

依赖项: 0

建议者: 0

安全: 0

星标: 16

关注者: 7

分支: 19

开放问题: 12

类型:symfony-bundle

1.4 2019-12-17 17:19 UTC

This package is auto-updated.

Last update: 2024-09-18 03:39:45 UTC


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 路由