Мы получили следующую ситуацию:
Внешняя сеть
- 1 какое-то приложение, которое мы не контролируем
Внутренняя сеть:
- 1 внутренний API (функция Azure)
- Active Directory B2C
Я хочу защитить свой внутренний API в соответствии с официальной документацией Microsoft (первая точка) . Но для этого нам понадобится аутентифицировать клиента в активном каталоге.
Поскольку клиент, вызывающий наш API, является другим приложением (не пользователем), нам нужно будет использовать поток учетных данных клиента в соответствии с OAuth2. Затем провайдер идентификации должен предоставить мне токен, содержащий пользовательскую область (которую может проверить другая сторона)
К сожалению, после прочтения множества документов о том, как использовать Azure AD, я не могу получить токен JWT, который содержит настраиваемую область.
Я уже пытался зарегистрировать приложение в колонке активного каталога:
На его странице настроек я пытался зарегистрировать разрешения (которые, похоже, являются областями действия в мире AD), но он показывает только официальные API-адреса Microsoft.
Как добавить разрешения для внешнего API?
Маркер, созданный с помощью ключа приложения, также не содержит утверждения "scp" или "scope". Как я могу получить заявку на область действия в токене?
Обновление 1
Я зарегистрировал приложение в блейде AD B2C для моего API ( our-api ):
Для клиентов, которые я зарегистрировал приложения в блейде AD ( TestClient 1 и TestClient 2 ):
TestClient 1 требуется разрешение для моего приложения "our-api":
TestClient 2 не требует никакого разрешения:
Когда я пытаюсь войти в AD с TestClient 1 , я получаю access_token, как и ожидалось. Но если я попытаюсь войти как TestClient 2 , я получу также access_token. Не должен ли этот процесс провалиться? Как я могу убедиться, что только TestClient 1 имеет разрешение?