python 3 登录azureAD并调用azure graph api

来源:互联网 发布:淘宝老客户营销短信 编辑:程序博客网 时间:2024/04/30 06:13

parameters.json :

 {   "resource": "https://graph.microsoft.com/",   "tenant" : "{your_directoryId}",   "authorityHostUrl" : "https://login.microsoftonline.com",   "clientid" : "{your_app_id}",   "username" : "{username}",   "password" : "{password}" }

test.py:

import jsonimport loggingimport osimport sysimport adalparameters_file = (sys.argv[1] if len(sys.argv) == 2 else                   os.environ.get('ADAL_SAMPLE_PARAMETERS_FILE'))if parameters_file:    with open(parameters_file, 'r') as f:        parameters = f.read()    sample_parameters = json.loads(parameters)else:    raise ValueError('Please provide parameter file with account information.')authority_url = (sample_parameters['authorityHostUrl'] + '/' +                 sample_parameters['tenant'])GRAPH_RESOURCE = '00000002-0000-0000-c000-000000000000'RESOURCE = sample_parameters.get('resource', GRAPH_RESOURCE)#uncomment for verbose log#turn_on_logging()context = adal.AuthenticationContext(    authority_url, validate_authority=sample_parameters['tenant'] != 'adfs',    api_version=None)######################################################### below is the token based on username/password########################################################tokenRet = context.acquire_token_with_username_password(    RESOURCE,    sample_parameters['username'],    sample_parameters['password'],    sample_parameters['clientid'])token = tokenRet['accessToken']print('Here is the access token get by username/password')print(json.dumps(token, indent=2))######################################################### below code to get access token based on refresh token#########################################################refresh_token = tokenRet['refreshToken']retToken = context.acquire_token_with_refresh_token(    refresh_token,    sample_parameters['clientid'],    RESOURCE)token = retToken['accessToken']print('Here is the token acquired from the refreshing token')print(json.dumps(token, indent=2))############################################################ below is the user profile information get from azure graph api#  for more information:# https://developer.microsoft.com/en-us/graph/graph-explorer############################################################import urllib2req = urllib2.Request('https://graph.microsoft.com/v1.0/users')req.add_header('Authorization', 'Bearer '+token)resp = urllib2.urlopen(req)content = resp.read()print('below is the user profile info:')print(content)