Сводка : Как динамически получить идентификатор арендатора для пользователей Microsoft?
Детали :
Я пишу мультитенантное приложение (C # и .NET Core), с помощью которого хочу создавать подписки и регистрироваться для уведомлений об изменениях . Я использую Microsoft Graph API v1.0 для этой операции.
Я следовал этой документации, чтобы получить токен доступа для учетной записи службы.
После регистрации приложения и создания необходимых разрешений (например, User.Read, Mail.ReadWrite) нам нужно дать на это согласие администратора
Чтобы сделать это программно,
Отправить запрос GET по адресу: https://login.microsoftonline.com/common/adminconsent?client_id={anyClientId}&state=12345&redirect_uri={redirectUrl}
Это приведет пользователя к экрану согласия с запросом запрошенных разрешений.
После предоставления пользователь будет перенаправлен на «redirectUrl» с шага 1, а tenantId и admin_consent будут присутствовать в параметрах запроса, например, https://example.com/auth?admin_consent=true&tenant={corresponding_tenant_id}
Этот tenantId может затем использоваться для получения аутентифицированного GraphClient для приложений C # MVC. MSGraph SDK для .NET Reference
Вопрос
Есть ли другой способ снова получить этот tenantId для будущего использования? Я бы предпочел, чтобы поток согласия администратора можно было избегать каждый раз, когда делается запрос (кроме входа в систему).
Пример варианта использования, в котором снова требуется идентификатор арендатора:
- Создание GraphClient для извлечения определенного сообщения при получении уведомлений об изменениях в почтовом ящике.