Является ли раскрытие секрета клиента угрозой для неявного типа предоставления в oauth 2? - PullRequest
0 голосов
/ 20 января 2019

У меня есть приложение, которое должно реализовать oauth 2 для защиты остальных API.Простой процесс будет, когда пользователь входит в систему, он должен иметь доступ к некоторым защищенным ресурсам (согласно их роли).

Я буду использовать угловой 7 в качестве внешнего интерфейса.

В соответствии с этой схемой мне нужно использовать неявное предоставление для одностраничных приложений.enter image description here Теперь я продолжил поиск и нашел https://www.devglan.com/spring-security/spring-boot-oauth2-angular

API Name - Login
Method - POST
URL - oauth/login
Header - 'Authorization': 'Basic ' + btoa('devglan-client:devglan-secret')
Body - {'username' :'admin ',
      'password' :'admin',
    'grant_type':  'password' }
Content-type: application/x-www-form-urlencoded

Теперь моя единственная проблема в этом подходе.

i.почему этот идентификатор клиента и секрет клиента раскрыты в угловом коде?секрет клиента не должен храниться в секрете?

1 Ответ

0 голосов
/ 20 января 2019

Нам не нужен секретный ключ для реализации потока неявного предоставления в приложениях js.

Вы можете увидеть следующий пример URL-адреса http, для которого нужны такие вещи, как client_id, redirect_uri и т. Д.

Мы получим токен доступа во фрагменте URL redirect_uri, и этот токен аутентифицирует вас для доступа к защищенным ресурсам.Однако параметр scope также играет важную роль для определения ресурсов и их прав.

URI запроса Http

https://YOUR_AUTH0_DOMAIN/authorize?
  audience=YOUR_API_AUDIENCE&
  scope=YOUR_SCOPE&
  response_type=YOUR_RESPONSE_TYPE&
  client_id=YOUR_CLIENT_ID&
  redirect_uri=https://YOUR_APP/callback&
  nonce=YOUR_CRYPTOGRAPHIC_NONCE&
  state=YOUR_OPAQUE_VALUE

Я настоятельно рекомендую перейти с предоставлением кода авторизации с PKCE даже для js-приложений.потому что токен доступа уязвим для различных угроз безопасности.С PKCE злоумышленнику необходимо решить головоломку (вызов кода), чтобы получить токен доступа.

...