Поддержка Keycloak для одной области в доменном имени при одновременном обслуживании нескольких доменов - PullRequest
3 голосов
/ 11 апреля 2019

Я создаю экосистему приложений на Kubernetes с Keycloak в качестве поставщика аутентификации / авторизации.Я планирую (или, возможно, планировал), чтобы все было интегрировано с ним через OpenId (OAuth2), а учетные данные пользователя и другая личная информация никогда не оставлялись в незашифрованном виде в экземпляре keycloak.

Я пытался реализоватьвся схема аутентификации с учетом следующих конфигураций.

Realms

myservice: Realm containing the public and back-office users of my application. 
           All microservices that I have are authenticating users against this realm.

master:    Contains admins, keycloak administrators and other resources which 
           should not be ever exposed to the public or intranet users. No microservice 
           ever performs authentication on this realm.

Домены

 1. domain: account.myservice.com
    access: public
    cors: allow requests from app.myservice.com
    config: kubernetes-ingress
    exposes: configured themes to support login, registration, etc.. Endpoints 
        for public front-end application token validation
    description: Only exposes access to a realm called "myservice" in keycloak. 
        No users from other realms can login or interact.

2.  domain: account.internal.myservice.com
    access: intranet/admins
    cors: allow requests from back-office.internal.myservice.com
    config: kubernetes-ingress
    exposes: configured themes to support login, registration, etc.. Endpoints 
        for back-end front-end application token validation
    description: Exposes all the realms and provides access to keycloak 
        administrative UI.

3.  domain: keycloak (keycloak.default.svc.cluster.local)
    access: cluster-internal
    cors: none
    config: kubernetes service, visible only inside the cluster
    exposes: endpoints for back-end application token validation
    description: Only exposes realm "myservice" and is used for other services to 
        validate user tokens and similar stuff.

Я столкнулся с рядом проблем при попытке реализоватьСхема конфигурации выше.Если я выполню SSL-завершение внутри Keycloak, я не смогу настроить разные домены с помощью обратного прокси-сервера или аналогичного подхода, что, в свою очередь, означает, что Keycloak должен предоставлять возможность прослушивать отдельный зашифрованный SSL-порт и создавать только одну область.доступно там.Что это не так.Так я хочу что-то странное здесь?Отличаются ли лучшие практики от того, что я хочу?

...