如何在Azure中访问多租户数据?从单租户到多租户的迁移

时间:2018-08-05 06:02:02

标签: azure office365 azure-active-directory microsoft-graph multi-tenant

我有一个客户端应用程序( 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

}

对于单个租户,一切正常,因为我会知道租户ID (我在令牌网址中明确设置了租户ID)

现在,我需要将此应用程序转换为访问多租户(多个租户)的邮件。用户可以位于租户A或租户B中。

对于我的客户端应用程序,如果是多租户,我将只知道用户ID(拨打电话时不知道租户ID)

注意事项

  1. 我是两个租户的管理员。

  2. 没有用户干预,应在Azure门户网站本身中给予同意(不能基于用户登录)。

  3. 当客户端应用程序作为守护程序服务运行时,我只能使用 client_credentials 身份验证流

我不确定我的应用程序是否属于多租户类别。 有人可以请我帮忙吗?我可以在清单文件中做什么?我可以使用哪种型号?

0 个答案:

没有答案