Symfony双向认证

时间:2016-03-04 10:48:55

标签: php authentication symfony-security symfony-2.8

我正在远程服务器上开发一个带有身份验证的symfony 2.8应用。身份验证通过表单或api密钥(simple_preauth)传递。在成功验证时,会话密钥保存在cookie中,以便我的simple_preauth验证器(无状态设置为true)在每个请求上检查它。 simple_preauth身份验证器允许两件事:通过get参数传递的秘密api密钥对用户进行身份验证,并检查当前会话是否在远程服务器上过期。只允许经过身份验证的用户执行任何操作所以有我的security.yml文件:

providers:
    webservice:
        id: app.webservice_user_provider

access_control:
    - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY}
    - { path: ^/, roles: ROLE_USER}

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    main:
        anonymous: ~
        provider: webservice
        stateless: true
        simple_form:
            authenticator:  app.form_authenticator
            login_path:     /login
            check_path:     /login_check
            success_handler:    app.auth_success_handler
        simple_preauth:
            authenticator: app.sessionlogin_authenticator
        logout:
            path: /logout
            target: /login
            success_handler:  app.logout_handler

问题

  1. 设置"无国籍:真"在security.yml文件中,在登录后禁用target_path重定向(Exception Listener on github)。事实上"无国籍:真实"只需要simple_preauth而不需要simple_form。也许有一种正确的方法可以将防火墙分成两个防火墙,仍然保持通过表单和api密钥进行身份验证的能力?
  2. 也许有一种更正确的方法来组织访问控制,以便只有经过身份验证的用户才能访问页面?

0 个答案:

没有答案