Keycloak предоставляет неверную подпись с Istio и JWT

Я использую Keycloak (последний) для Auth 2.0, чтобы проверить аутентификацию, предоставить токен (JWT) и с предоставленным токеном разрешить доступ к URL-адресам приложений на основе разрешений. Keycloak в настоящее время работает в Kubernates с Istio в качестве шлюза. Для Keycloak используется следующая политика:

apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
  name: application-auth-policy
spec:
  targets:
  - name: notification
  origins:
  - jwt:
      issuer: http://<service_name>http.<namespace>.svc.cluster.local:8080/auth/realms/istio
      jwksUri: http://<service_name>http.<namespace>.svc.cluster.local:8080/auth/realms/istio/protocol/openid-connect/certs
  principalBinding: USE_ORIGIN

В этом Keycloak был зарегистрирован клиент, и для него был создан RSA. Эмитент может генерировать токен в обычном режиме, и политика была успешно применена.

Проблема:

  1. Даже если все настроено, токен, предоставленный Keycloak, имеет недопустимую подпись в соответствии с JWT Validator.

  2. Этот токен не разрешает доступ для URL-адресов, как это должно быть, с кодом 401.

У кого-нибудь еще была аналогичная проблема?


person Julia Bel    schedule 04.03.2019    source источник


Ответы (1)


Проблема была решена двумя способами: 1. Заменить имя службы и порт на внешний IP-адрес сервера и внешний порт (для эмитента и jwksUri) 2. Отключить использование mTLS и его политики (известная проблема: https://github.com/istio/istio/issues/10062).

person Julia Bel    schedule 14.03.2019