API Connect - один API с определениями базовой безопасности и аутентификации oAuth - PullRequest
0 голосов
/ 10 апреля 2019

У нас есть один API X, который должен быть доступен как внутри компании, так и за ее пределами.Можно ли разрешить базовую аутентификацию для X с использованием только Client Id для внутренних потребителей, но требовать oAuth-аутентификацию для X с использованием Client Id и Auth Token для внешних потребителей?Предпочтительно, чтобы все поля идентификатора клиента и oAuth передавались в заголовке http обоим API?

В настоящее время у нас есть один продукт, содержащий два API (API X и API поставщика oAuth 2.0, ограниченные API X).Мы добавили два определения безопасности в API X, вариант 1 - oAuth и Client Id.Вариант 2 является базовым (только идентификатор клиента).Для oAuth мы используем конфиденциальную схему потока приложений, в которой приложение отправляет идентификатор клиента и секрет в API поставщика oAuth, возвращает токен авторизации, а затем передает (тот же) идентификатор клиента и токен аутентификации в API X.

Доступ OAuth к API X работает нормально с использованием заголовков http, но простой доступ к API X работает, только если мы передаем идентификатор клиента в строке запроса.Мы бы предпочли всегда использовать только заголовки http.

1 Ответ

0 голосов
/ 10 апреля 2019

Я все еще очень открыт для лучшего ответа, но мы нашли обходной путь.

Мы удалили определение безопасности базовой аутентификации из API X, чтобы оно имело только определение безопасности oAuth 2.0. Затем мы создали новый API Y, который идентичен API X, за исключением того, что он имеет только определение безопасности базовой аутентификации. Он имеет тот же базовый путь и пути, что и API X. Мы создали второй Продукт и добавили к нему API Y. Напомним, что Product 1 содержит API X и его API oAuth. Мы подписали внутренних потребителей на продукт 2 и внешних на продукт 1, и мы добились успеха. Авторизация полностью обрабатывается в заголовках.

Конечно, есть лучший способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...