Рубрики
Uncategorized

Как настроить привратника KeyCloak для обеспечения услуг в вашем кластере Kubernetes

1. Предварительное условие для настройки Gatekeeper для конкретного приложения: Создайте клиент, называемый My-A … Tagged с Kubernetes, DevOps, Docker, Tutorial.

1. Предварительное условие для настройки Gatekeeper для конкретного приложения:

  • Создать клиента, называемый my-app в KeyCloak. В шаге создания выберите тип доступа: конфиденциально

  • После создания вы увидите вкладку учетных данных для вновь созданного клиента с секретом. Вам понадобится это для файла конфигурации Gatekeeper.yaml

  • Создайте роль сферы для этого приложения мой-прип-рол

  • Создать группу моя группа и добавить роль My-App-Role В составах ролевых групп группы

  • Перейдите к своему пользователю и добавьте его в моя группа Анкет Этот пользователь будет авторизован для доступа к защищенному приложению, как только мы его настроим

2. Создайте файл конфигурации привратника, Gatekeeper.yaml, как секрет

client-id: my-app

client-secret: my-app-secret-from-credentials

discovery-url: https://my-keycloak-server.com/auth/realms/my-realm

skip-upstream-tls-verify: false

skip-openid-provider-tls-verify: true

encryption-key: random-secret-value-of-16-or-32-characters

listen: 0.0.0.0:3000

secure-cookie: false

enable-logging: true

enable-json-logging: true

enable-default-deny: true

enable-refresh-tokens: true

enable-session-cookies: true

debug: true

ingress.enabled: true

resources:

  - uri: /favicon

  white-listed: true

Значения, которые должны быть заменены и установлены в приведенном выше файле конфигурации:

  • клиент-секретный Установить с вкладки «Клиент»

  • Шифрование-ключ Случайное значение хеша 16 или 32 символа

  • Discovery-url Конечная точка KeyCloak

Некоторые из важных значений объяснили:

  • Discovery-url Является ли reailm в geycloak, который проживает клиент My-App

  • skip-openid-provider-tls-Verify Игнорирует саморегистрированное предупреждение о сертификате KeyCloak для запроса клиента Gatekeeper

  • Enable-Default-Deny — Все ресурсы по умолчанию защищены, если только явно не допускается в ресурсах

  • Слушай — Порт, где привратник начнет и слушает

  • перенаправление-урл — где успешный вход будет перенаправлен на

  • Вверх по течению-урл — Где привратник перестанет запрос после успешного разрешения

  • Ресурсы Конфигурируют, какие ресурсы можно получить (в списке белого цвета) без аутентификации.

Значения конфигурации необходимы Gatekeeper для связи с KeyCloak. Итак, с конечная точка , мы сообщаем Gatekeeper, где найти сервер KeyCloak, с которым можно поговорить, с клиент-ид и клиент-секретный Привратник может аутентифицировать себя с помощью KeyCloak, чтобы сделать запросы на него.

kubectl create secret generic gatekeeper --from-file= ./gatekeeper.yaml -n my-namespace

Теперь, когда вы настроили всю необходимую конфигурацию, вам необходимо развернуть контейнер привратника внутри стручки, где запускается приложение, которое вы хотите получить. Таким образом, привратник будет контейнером по боковой машине для вашего реального приложения, действуя как … Ну, привратник ко всем входящим запросам.

Поэтому, чтобы развернуть оба контейнера в одном стручке, вам нужно настроить его так:

apiVersion: apps/v1

kind: Deployment

metadata:

  name: my-app

spec: 

  template:

    ...

    spec:

      containers:

      - image: keycloak/keycloak-gatekeeper:7.0.0

        name: gatekeeper

        ports:

        - containerPort: 3000

        args:

        - --config=/etc/secrets/gatekeeper.yaml

        - --redirection-url=https://my-app-server-url

        - --upstream-url=http://127.0.0.1:8080

        - --resources=uri=/*|roles=my-app-role

        volumeMounts:

        - name: gatekeeper-secrets

          mountPath: /etc/secrets

      - image: my-app-image

        name: my-app

        ports:

        - containerPort: 8080

      volumes:

      - name: gatekeeper-secrets

        secret:

          secretName: gatekeeper

Таким образом, с приведенной выше конфигурацией будет создан POD с контейнерами приложения и привратника, а файл Gatekeeper.yaml, который мы создали выше, будет установлен внутри контейнера привратника.

Как вы видите в конфигурации развертывания, Gatekeeper Container настроен ARGS.

  • перенаправление-урл где будет перенаправлен успешный логин. Это указывает на URL-адрес My-App, который также приземлится с привратником

  • Вверх по течению-урл -После того, как перенаправление-URL призвана для аутентифицированного пользователя, Gatekeeper разрешит доступ к My-App, переадресась с запросом на него на http://127.0.0.1:8080 Анкет

Почему http://127.0.0.1:8080 ? Поскольку и My-App, и привратник бегут в одной и той же стручке, они могут общаться через Localhost.

Итак, теперь нам нужно настроить Сервис для My-App, чтобы переслать входящие запросы, чтобы не my-app , но в контейнер привратника. Как вы видите сверху my-app и Привратник работают на разных портах ( 8080 и 3000 ), поэтому нам просто нужно сказать Сервису для пересылки запроса в Порт привратника 3000 Анкет

apiVersion: v1

kind: Service

metadata:

  name: my-service

spec:

  selector:

    service: my-service

  type: ClusterIP

  ports:

  - port: 32111

    targetPort: 3000

► Получить 30% скидка — С этим кодом: udemy_nana_oct2020: Курс Udemy здесьKubernetes 101 : Компактный и простой для чтения комплект электронных книг 🚀 Это удобный способ быстро искать что -то или обновить свои знания на работе и использовать его в качестве чит -листа 😎

Мол, поделиться и следуй за мной 😍 Для большего содержания:

Оригинал: «https://dev.to/techworld_with_nana/how-to-setup-a-keycloak-gatekeeper-to-secure-the-services-in-your-kubernetes-cluster-5d2d»