Как использовать авторизацию и JWT с Istio - PullRequest
1 голос
/ 24 января 2020

Вкратце, я планирую, чтобы мои службы обрабатывали свою собственную авторизацию, поскольку она относится к внутренней авторизации, т. Е.… Может ли пользователь иметь доступ к определенному объекту (контент: 1234)

То, что, по моему мнению, происходит с Istio Security обрабатывает следующее

  1. Может проверять токен JWT до того, как какая-либо из моих служб будет нажата
  2. Может разрешать запросу разрешено вызывать запрошенную службу
  3. Полагаю, что на самом деле я могу сгенерировать токен JWT с помощью Istio

. Я хочу убедиться, что я прав в отношении вышесказанного, И задать 2 дополнительных вопроса

  1. Я планировал включить роли в токен, и именно так мои службы управляют локальной безопасностью, как я уже упоминал выше, т.е.… может ли пользователь получить доступ к контенту: 1234. Это возможно? Как мне это сделать? Я подключаю Istio к некоторому коду, который я пишу, или к MicroServ cie, который я пишу? Смущенный этим

  2. Я предполагаю, что токен JWT будет по запросу, поэтому я должен иметь доступ к нему в своих службах за Istio. Просто проверяю.

заранее благодарю за любую помощь

1 Ответ

0 голосов
/ 24 января 2020

1.

Может проверять токен JWT до того, как какая-либо из моих служб будет нажата

Нет. Фильтр посланника Istio способен выполнять проверку токена JWT, который прокси-посредник извлекает из заголовков HTTP-запроса. Однако при проверке (подписании JWT) можно настроить OpenID Connect провайдера. Например, модуль, содержащий Keycloak Server.


2.

Он может авторизовать запрос, разрешается вызывать запрошенную службу

Да, вы можете настроить AuthorizationPolicy для этого. Вот пример .


3.

Я считаю, что на самом деле могу сгенерировать токен JWT с помощью Istio

Нет. Причина та же, что и в первом вопросе.


4.

Я планировал включить роли в токен, и именно так мои службы обрабатывают локальную безопасность, как я упоминал выше, т.е.… может ли пользователь получить доступ к контенту: 1234. Это возможно? Как мне это сделать? Я подключаю Istio к некоторому коду, который я пишу, или к MicroServ cie, который я пишу? Запутавшись по этому поводу

Ответ № 2 охватывает это.


5.

Я предполагаю, что токен JWT будет по запросу, так Я должен быть в состоянии получить доступ к нему в моих службах за Istio. Просто убедитесь.

Да, если запрос обрабатывается правильно (заголовки пересылаются при каждом переходе между службами), токен JWT должен находиться в заголовке.


Здесь есть статья об аутентификации JWT здесь .

Надеюсь, это поможет.

...