Как получить доступ к многопользовательским данным в Azure? Миграция от одного арендатора к нескольким арендаторам

У меня есть клиентское приложение (служба deamon), которое извлекает сообщения из одного почтового ящика клиента.

Я использую механизм проверки подлинности client_credenatials (сертификат) для связи с зарегистрированным приложением в Azure.

График разрешения на доступ к почте также предоставляется в Azure администратором, поэтому нет никакого вмешательства пользователя для получения согласия.

token_url -https://login.microsoftonline.com/{tenant_id}/oauth2/token
post request data  = {
        'resource': https://graph.microsoft.com/,
        'client_id': client_id,
        'client_assertion_type': 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
        'client_assertion': assertion(),
        'grant_type': 'client_credentials'
    }

значение подтверждения rsa подписано значение этого заголовка и полезной нагрузки

client_assertion_header = {
        'alg': 'RS256',
        'x5t': thumbprint,
    }       
client_assertion_payload = {
'sub': client_id,
'iss' : client_id,
'jti' : GUID,
'exp'  : ten_mins_from_now, 
'nbf' : now,
'aud' : token_url

}

Для одного арендатора все работает идеально, как если бы я знал идентификатор клиента (я явно установил идентификатор клиента в URL-адресе токена)

Теперь мне нужно преобразовать это приложение для доступа к почте мультитенанта (более одного арендатора) . Пользователь может быть арендатором A или арендатором B.

Что касается моего клиентского приложения, я буду знать только идентификатор пользователя (а не идентификатор арендатора, когда я звоню) в случае мультитенанта

Что нужно иметь в виду

  1. Я администратор обоих арендаторов.

  2. Вмешательство пользователя не требуется, согласие должно быть дано на самом портале Azure (не может быть сделано на основании входа пользователя) .

  3. Я могу использовать только поток аутентификации client_credentials, поскольку клиентское приложение работает как служба deamon

Я не уверен, что моя заявка относится к мультитенантной категории. Может кто-нибудь, пожалуйста, помогите мне, как поступить? Что-нибудь, что я могу сделать в файле манифеста? Какую модель я могу использовать?

0 ответов

Другие вопросы по тегам