Единый вход не работает между браузером и Keycloak с использованием федерации пользователей с интеграцией Kerberos в Windows AD

Я пытаюсь заставить SSO работать с помощью браузера (Chrome или Firefox) и keycloak, настроенного с использованием домена AD федерации пользователей (настроен Kerberos).

Сначала я представляю обзор того, что у меня есть, а затем добавляю более подробную информацию.

Обзор:
Вызов конечной точки авторизации «.../auth/realms/test_realm/protocol/openid-connect/auth»; и с помощью tcpdump я вижу:

  1. Браузер отправляет запрос get на конечную точку авторизации с необходимыми параметрами.

  2. Keycloak отвечает правильно:
    -с 401 Неавторизованный
    -с заголовком «WWW-аутентификация: переговоры»

  3. Браузер отправляет, я думаю, правильно новый запрос на получение:
    -с «Авторизация: согласовать TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAKAGFKAAAADw ==»;

  4. Keycloak отвечает «200 ОК». но со страницей входа и отсутствием токена или URL-адреса обратного вызова у меня нет ошибок в журнале Keycloak

Вопрос: Что здесь должен ответить keycloak? Следует отправить на URL-адрес обратного вызова некоторые файлы cookie, такие как KEYCLOAK_IDENTIT и KEYCLOAK_SESSION, верно? С помощью этих файлов cookie я могу вызвать конечную точку токена, чтобы получить токен для использования в приложении.

Вопрос: есть идеи, чего не хватает? Я знаю, что здесь много деталей, но, возможно, чего-то очевидного не хватает.

При выполнении входа в систему вручную я вызываю конечную точку входа в систему/аутентификации, которая возвращает файлы cookie KEYCLOAK_IDENTIT и KEYCLOAK_SESSION, которые я могу использовать для вызова конечной точки токена и получения токена.
Я использую того же пользователя, что и тот, кто вошел в систему из тестового домена, поэтому я знаю, что keycloak может аутентифицировать тестируемого пользователя.


Теперь подробнее

Чтобы настроить Keycloak, я следовал официальной документации https://www.keycloak.org/docs/latest/server_admin/

На клиентском компьютере Windows (браузер Chrome или Firefox, проверено оба):
-Я добавил URL в белый список
-Я вызываю конечную точку авторизации с необходимыми параметрами

В домене AD Windows Server 2019
-Я создал файл таблицы ключей, используя:
ktpass /out testdomainlocal_keytab_file.keytab /princ HTTP/[электронная почта защищена] /mapuser keycloak_kerberos /pass "somepass" /crypto All /ptype KRB5_NT_PRINCIPAL /kvno 1
-Пользователь keycloak_kerberos существует в моем тестовом домене

В Linux rhel8.8 у меня есть keycloak 22.01
-Добавлена ​​машина с Linux в тестовый домен с помощью «присоединения к области»
-Добавлена ​​настройка федерации пользователей для LDAP AD, которая может вручную аутентифицировать тестового пользователя ldap
-Активирована интеграция Kerberos с субъектом и вкладкой ключей, созданной на компьютере AD
-добавлена ​​информация о домене в файл /etc/krb5.conf

При необходимости я могу показать более подробную информацию, но мне придется анонимизировать информацию.

0 ответов

Другие вопросы по тегам