Управление API Azure и OAuth2 - использовать один AD AppReg для нескольких API или один AD AppReg для каждого API?

В настоящее время я настраиваю единый экземпляр управления API. У меня есть проект, который будет включать x4 API, которые потребуются для аутентификации OAuth2 (у меня один клиент AD).

Я следил за этим (довольно сбивающим с толку) руководством по настройке управления API с помощью OAuth2 ...

https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad

... он указывает, что вы создаете регистрацию приложения Azure Active Directory для ...

1) API (единый API?)

2) Клиент, который обращается к API

У меня вопрос ... Я знаю, что мне потенциально нужна только одна регистрация клиентского приложения, но нужна ли мне регистрация приложений x4 для каждого API, или я могу просто использовать один, и все 4 API будут использовать один?

Я протестировал это, и, похоже, он работает нормально, мне просто интересно, не упускаю ли я здесь какой-то трюк и, возможно, позже загоню себя в угол.

Я ищу здесь лучшую практику в том, что делать правильно. Требуется меньше администрирования, чтобы иметь одну регистрацию приложения, которая может обслуживать x4 (или более) API, но вызовет ли это проблемы позже?

заранее спасибо


person nmca70    schedule 08.06.2020    source источник


Ответы (1)


Хотя технически вам не нужна 1 регистрация приложения для каждого веб-адаптера или каждого приложения. но это считается лучшей практикой для обеспечения безопасности и разделения API и доступа к таким API, а также упрощает аудит и мониторинг.

Однако технически вас ничто не остановит, если вы просто хотите, чтобы одна регистрация приложения обрабатывала все 4 API. и даже клиент в этом отношении.

Например, вам будет сложнее контролировать доступ для каждого API, например, если вы хотите, чтобы пользователь A имел доступ к api A, но не B., тогда это намного сложнее. Кроме того, с точки зрения безопасности, все остальные API-интерфейсы могли бы получить доступ к конечным точкам друг друга, если бы у вас была только одна регистрация приложения.

Также играет роль управляемость. если, например, вам нужна какая-то конкретная вещь для одного из приложений в регистрации приложения, области / роли / и т. д. их объединение затруднит это сделать.

В итоге, создайте по одному для каждого веб-api в 90-95% случаев, это лучшая практика, и она потенциально может избавить вас от головной боли в дальнейшем.

Надеюсь, это даст вам немного понимания

person alphaz18    schedule 09.06.2020