Да, у вас есть несколько вариантов.
Вариант 1: приложения для одного арендатора
Если у вас есть возможность создавать приложения в арендаторе, от которого вы хотите принимать пользователей, вы можете пометить ваше приложение как доступное только этому арендатору (поле называется availableToOtherTenants
). Служба токенов уведомит об этом только тех пользователей, у которых был создан доступ, авторизовать доступ.
Вариант 2: мультитенантное приложение с проверкой токена
Другой вариант - пометить ваше приложение как мультитенантное (то же поле, что и выше, просто установите true
) и внедрить логику в свое приложение для проверки клиента, из которого был выдан токен.
В этом случае вам понадобится какой-то веб-сервис, который может безопасно проверять токены доступа ( пример кода .NET для этого ). Чтобы проверить арендатора, к которому принадлежит учетная запись пользователя, вам необходимо проверить поле iss
. Это будет выглядеть примерно так:
"iss": "https://sts.windows.net/7fe81447-da57-4385-becb-6de57f21477e/"
, в котором GUID представляет идентификатор клиента. Это позволяет вашему веб-API иметь список разрешений или запретов на основе идентификаторов клиентов.
Дополнительная помощь
Вот отличное сообщение в блоге о проверке токена.
Документы разработчика Azure AD
Пример кода веб-API .NET