Keycloak обеспечивает неверную подпись с Istio и JWT - PullRequest
0 голосов
/ 04 марта 2019

Я использую 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 .

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

1 Ответ

0 голосов
/ 14 марта 2019

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

...