Запутался в использовании кодеров безопасности и для проекта Symfony 4 с lexik jwt Authenticator - PullRequest
0 голосов
/ 23 октября 2018

Я впервые занимаюсь вопросами безопасности.

Я следовал главе Установка комплекта аутентификации Lexik и файлу Lexik Authentication Sandbox Readme .

* 1008И это меня смущает.Я думаю, что одна страница говорит мне о кодировании в SHA-2, в то время как другая использует bcrypt, и на данный момент я установил для нее кодирование bcrypt.

У меня есть следующие настройки безопасности:

security:
  encoders:
    App\Security\User\WebserviceUser: bcrypt

  role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

  providers:
    webservice:
      id: App\Security\User\WebserviceUserProvider
    jwt:
      lexik_jwt:
        class: App\Security\User\WebserviceUser

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

    login:
      pattern:  ^/login
      stateless: true
      anonymous: true
      provider: webservice
      json_login:
        check_path: /login_check
        success_handler: lexik_jwt_authentication.handler.authentication_success
        failure_handler: lexik_jwt_authentication.handler.authentication_failure

    client_list:
      pattern:  ^/api/client/active
      stateless: true
      anonymous: true

    secured_area:
      pattern: ^/api/
      provider: webservice
      stateless: true
      guard:
        authenticators:
        - lexik_jwt_authentication.jwt_token_authenticator

  access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api,       roles: IS_AUTHENTICATED_FULLY }
    - { path: ^/api/client/active, roles: IS_AUTHENTICATED_ANONYMOUSLY }

И я создал следующие ключи:

$ openssl genrsa -out config/jwt/private.pem -aes256 4096
Enter pass phrase for config/jwt/private.pem:
Verifying - Enter pass phrase for config/jwt/private.pem:
$ openssl rsa -pubout -in config/jwt/private.pem -out config/jwt/public.pem
Enter pass phrase for config/jwt/private.pem:
writing RSA key

Когда я хочу выполнить вход в систему, проверка не выполняется:

$ curl -X POST -H "Content-Type: application/json" http://localhost:8000/login_check -d '{"username":"Pete","password":"password"}'
{"code":401,"message":"Bad credentials"}

Я проверил имя пользователя ипароль.Они оба верны и пробовали другие.

Я пробовал кодировщики открытого текста и создавал ключи так:

openssl genpkey -algorithm RSA -out config/jwt/private.pem -pkeyopt rsa_keygen_bits:4096
openssl rsa -pubout -in config/jwt/private.pem -out /config/jwt/public.pem

Этот работает .

Но открытый текст звучит небезопасно.

Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...