Настройка OIDC с ADFS — неверный запрос информации о пользователе

Фон

Поэтому последние несколько недель я рвал на себе волосы, пытаясь заставить аутентификацию ODC работать на основе ADFS в различных приложениях, в частности Proxmox VE, а также Gitea. Причина, по которой я это делаю, в первую очередь связана с Proxmox, где я хочу заменить обычную аутентификацию по имени пользователя/паролю для администраторов нашей инфраструктуры на YubiKey + PIN. Этот вариант изначально не поддерживается Proxmox, поэтому я подумал, что использование ADFS в качестве поставщика OpenID будет решением, так как он поддерживает смарт-карты и, следовательно, YubiKeys.

Что я пробовал до сих пор

Добавление каждого приложения как «Серверное приложение, обращающееся к веб-API», а также просто «Серверное приложение». В то время как логин с последним работает, возвращаемые утверждения имени пользователя — тарабарщина, я также не могу контролировать, кому разрешен доступ к приложению. С «Серверным приложением + веб-API» базовая аутентификация работает, но следующий запрос информации о пользователе завершается с ошибкой:

MSIS9921: Received invalid UserInfo request. Audience 'microsoft:identityserver:<my-token>' in the access token is not same as the identifier of the UserInfo relying party trust 'urn:microsoft:userinfo'

Установка «Политики управления доступом» на «Разрешить всем» не имеет значения.

Пример конфигурации для Gitea на основе https://wiki.resolution.de/doc/openid-oauth-authentication/latest/setup-guides/adfs-setup-guide:

Конфигурация серверного приложенияВеб-API — Общие (ID серверного приложения добавлен как проверяющая сторона) — Веб-API — разрешения клиентаПравила преобразования веб-API

Удаление идентификатора серверного приложения из идентификаторов проверяющей стороны позволяет войти в систему, но игнорирует любые правила преобразования/политики управления доступом, вероятно, потому, что ADFS не может связать два приложения вместе.

Другие опции

Единственным другим вариантом, поддерживающим аутентификацию только с использованием YubiKeys, будет Azure AD, который мы уже успешно используем для различных других приложений. Однако проблема заключается в том, что учетные записи, с которыми мы хотим пройти аутентификацию (инфра-администраторы), не синхронизируются с Azure, чтобы возможный злоумышленник также не закрепился в нашей локальной среде в случае, если он захватит Azure. Если я что-то не упустил, AAD не поддерживает аутентификацию для несинхронизированных пользователей.

Я делаю что-то совершенно неправильно, или эта установка просто не работает с приложениями, не знающими о ADFS? Поскольку я искал вокруг, нужно указать какой-то параметр «ресурс» со значением запроса «urn …» при запросе конечной точки userinfo, которую я не могу добавить.

proxmox adfs openid yubikey

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *