В настоящее время у меня есть приложение Angular SPA, которое использует Azure B2 c для авторизации пользователей и использует токен для передачи на микросервисы для получения / установки всех функций.
Теперь я хочу создать API, который клиенты могут использовать для доступа к самим микросервисам (напрямую или через Azure API Management).
Я не могу найти хорошую документацию по этому вопросу, но в идеале я бы хотел, чтобы пользователи могли создайте в нашем приложении «приложения», которые дадут им API-ключ и секрет, и затем они смогут использовать их для обмена на токен JWT, который они смогут передавать на микросервисы - Azure B2 C, сгенерированный идеально, чтобы он мог просто используйте ту же аутентификацию, которую мы делаем сейчас. API для преобразования ключа / секрета в токен должен быть неинтерактивным.
Azure AD B2 C теперь поддерживает ROP C, но это не подходит, так как это просто используйте имя пользователя и пароль, которые мы не хотим (поскольку я хочу, чтобы пользователи могли отозвать доступ). https://docs.microsoft.com/en-us/azure/active-directory-b2c/configure-ropc?tabs=applications
Я мог бы построить все это внешне для Azure B2 c - есть собственный поставщик Identity, который генерирует токены для API, и на всех микросервисах измените конвейер, чтобы иметь два аутентификатора. валидации - одна для Azure B2 c токенов, а другая для проверки собственной идентификации API, но надеялась, что есть более упорядоченный подход.
Есть предложения?