Получение Swagger UI oauth2 для работы с oidc-провайдером - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь заставить Swagger UI успешно авторизоваться для oidc-провайдера экземпляра.

Я настроил минимальный (насколько это возможно) экземпляр на сбой здесь: https://glitch.com/~copper-vise

Что он делает:

  • имеет пользовательский интерфейс swagger / doc, обслуживающий определение из файла swagger.yaml
  • , запускает провайдер oidc с минимальной конфигурацией и devвзаимодействия.

Проблема в том, что мне кажется, что я не могу объединить эти две работы.Кажется, что это может быть ошибка Swagger UI, но, учитывая мой недостаток опыта работы с oidc, это может быть просто проблема конфигурации.

Чтобы попробовать, нажмите кнопку "Авторизовать" на интерфейсе чванства , используйте foo и bar для client_id и client_secret, проверьте хотя бы открытую областьи нажмите «Авторизовать».На этом этапе вы должны получить приглашение для входа в систему.Введите что угодно и войдите.На этом этапе пользовательский интерфейс должен иметь токен, но я так далеко его не получил.

Вместо этого я получаю invalid_client ошибку, похоже, что oidc-провайдер ожидает заголовок запроса авторизации, который не предоставляет Swagger UI.Кажется, что «неявный» поток вообще не работает.Насколько я могу сказать , это два потока, которые поддерживает oidc-провайдер (с этой конфигурацией?).

Я застрял, не уверен, куда идти дальше.Похоже, что правильное сочетание конфигурации openapi securitySchemes в файле swagger.yaml и параметров oidc-provider и client должно обеспечить это.

1 Ответ

0 голосов
/ 19 февраля 2019

Кажется, что swagger отправляет client_secret_post аутентификацию клиента, по умолчанию на IdP - client_secret_basic.Если вы измените конфигурацию клиента на IdP в соответствии со схемой, которую клиент фактически использует, она будет работать.

...