Php Symfony双向认证

Php Symfony双向认证,php,authentication,symfony-security,symfony-2.8,Php,Authentication,Symfony Security,Symfony 2.8,我正在开发一个symfony 2.8应用程序,在远程服务器上进行身份验证。身份验证通过表单或api密钥(简单预授权)传递。成功身份验证时,会话密钥保存在Cookie中,以便我的simple_preauth authenticator(无状态设置为true)在每次请求时对其进行检查。这个简单的预授权验证器允许两件事:通过传入get参数的秘密api密钥对用户进行身份验证,并检查远程服务器上的当前会话是否过期。只有经过身份验证的用户才能执行任何操作。这是我的security.yml文件: provid

我正在开发一个symfony 2.8应用程序,在远程服务器上进行身份验证。身份验证通过表单或api密钥(简单预授权)传递。成功身份验证时,会话密钥保存在Cookie中,以便我的simple_preauth authenticator(无状态设置为true)在每次请求时对其进行检查。这个简单的预授权验证器允许两件事:通过传入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
问题

  • security.yml文件中的设置“stateless:true”将在登录()后禁用目标路径重定向。事实上,“无状态:true”只用于简单的预授权,而不用于简单的表单。也许有一种正确的方法可以将防火墙分成两个防火墙,同时保持通过表单和api密钥进行身份验证的能力
  • 也许有一种更正确的方式来组织访问控制,这样只有经过身份验证的用户才能访问页面

  • 这是当你有一个功能强大的安全组件,它的文档非常糟糕和不完整时会发生的事情…这是当你有一个功能强大的安全组件,它的文档非常糟糕和不完整时会发生的事情。。。