• Русский
  • Управление Realm

    Realm — это основная единица изоляции в Keycloak. Каждый Realm имеет независимых пользователей, клиентов, роли и настройки аутентификации. Alauda Build of Keycloak поддерживает управление Realm как через Admin Console, так и декларативно с помощью CRD KeycloakRealmImport.

    Импорт Realm через CRD

    CRD KeycloakRealmImport позволяет управлять Realm в стиле GitOps, декларативно. При создании ресурса KeycloakRealmImport оператор запускает Job импорта, который загружает конфигурацию Realm в целевой экземпляр Keycloak.

    Процедура

    CLI
    Web Console

    Создайте ресурс KeycloakRealmImport:

    apiVersion: k8s.keycloak.org/v2alpha1
    kind: KeycloakRealmImport
    metadata:
      name: my-realm-import
    spec:
      keycloakCRName: example-kc
      realm:
        realm: my-realm
        enabled: true
        displayName: "My Application Realm"
        registrationAllowed: false
        loginWithEmailAllowed: true
        duplicateEmailsAllowed: false
        sslRequired: external
        accessTokenLifespan: 300
        clients:
          - clientId: my-app
            enabled: true
            publicClient: true
            redirectUris:
              - "https://my-app.example.com/*"
            webOrigins:
              - "https://my-app.example.com"

    Примените манифест:

    kubectl apply -f realm-import.yaml -n <namespace>

    Проверьте статус импорта:

    kubectl get keycloakrealmimport my-realm-import -n <namespace> \
      -o jsonpath='{.status.conditions[?(@.type=="Done")].status}'

    Если вывод True, Realm успешно импортирован.

    Использование плейсхолдеров для секретов

    Поле spec.placeholders позволяет внедрять значения из Secret в конфигурацию Realm во время импорта, избегая жестко заданных учетных данных в CR:

    spec:
      keycloakCRName: example-kc
      placeholders:
        CLIENT_SECRET:
          secret:
            name: my-client-secret
            key: client-secret
      realm:
        clients:
          - clientId: my-app
            secret: $(CLIENT_SECRET)

    Управление настройками Realm через Admin Console

    Доступ к настройкам Realm

    1. Войдите в Keycloak Admin Console.
    2. Выберите нужный Realm в выпадающем списке в левом верхнем углу.
    3. Нажмите Realm Settings в левой навигационной панели.

    Основные настройки Realm

    НастройкаОписание
    Display NameЧитаемое имя, отображаемое на странице входа
    SSL RequiredУправляет требованием HTTPS. Опции: none, external (рекомендуется), all
    Login SettingsУправляет саморегистрацией пользователей, входом по email и проверкой уникальности email
    Token SettingsНастраивает время жизни access token, refresh token и таймауты сессий SSO
    Email SettingsКонфигурация SMTP-сервера для отправки писем подтверждения и уведомлений
    ThemesНастройка шаблонов для входа, аккаунта, админки и email

    Настройка времени жизни токенов

    Время жизни токенов определяет, как долго выданные токены остаются действительными. Более короткое время жизни повышает безопасность, но требует более частого обновления токенов.

    ТокенЗначение по умолчаниюРекомендуемое (для продакшена)
    Access Token Lifespan300 секунд60–300 секунд
    SSO Session Idle1800 секунд1800 секунд
    SSO Session Max36000 секунд36000 секунд
    Refresh Token LifespanПривязан к сессииПривязан к сессии