stgbundle/cas-bundle

为 symfony 6.* 提供的 cas-bundle

安装数: 3,013

依赖者: 1

建议者: 0

安全性: 0

星标: 3

关注者: 2

分支: 2

开放问题: 1

类型:symfony-bundle

7.1 2023-12-29 14:06 UTC

This package is not auto-updated.

Last update: 2024-09-20 17:58:04 UTC


README

为 Symfony 6.4 提供的中央认证服务

安装

1). 从 packagist.org 安装: https://packagist.org.cn/packages/stgbundle/cas-bundle

composer require stgbundle/cas-bundle

2). 调整安全配置 (security.yml)

security:
    # ...
    providers:
        app_user_provider:
            entity:
                class: App\Entity\Usuario
                property: cuil
    firewalls:
        secure:
            pattern: ^/secure
            provider: app_user_provider
            custom_authenticators:
                - stg.cas_authenticator
            logout:
                path: /secure/logout
        main:
            anonymous: lazy
    # ...

3). 配置 bundle

创建文件 config\packages\cas.yaml

cas:
    hostname: dsso.santafe.gob.ar
    url: /service-auth # opcional
    port: 443 # opcional
    service_base_url: https://:80  # Url base del sistema que utiliza el bundle
    user: cuil # Si se quiere acceder por cuil sino uid. Por defecto se utiliza cuil
    logout_redirect: home  # opcional
    login_failure: failure # opcional - Debe definirse en el área pública
    debug: true # opcional - Se recomienda false en producción
    version: "3.0" # opcional

4). 添加空路由

// src/Controller/DefaultController.php

    /**
     * @Route("/secure/logout")
    */
    public function logout()
    {
    }

5). 登录失败

如果用户不存在于应用程序数据库中,该 bundle 将请求重定向到 bundle 配置中定义的路由,并根据需要传递 cuil 或 uid 作为参数

    /**
    * @Route("/failure", name="failure")
    */    
    public function failure(Request $request): Response
    {
        return new Response(
            'Error al autenticar - Usuario: ' . $request->get('user')
        );
    }

6). 与 Ajax 的使用

该 bundle 检测到调用是 Ajax,如果需要授权,则不会将其重定向到 SSO 界面,而是返回 http 401 (Unauthorized) 状态码。客户端需要检测此响应并重定向调用。