您的位置:首页 > 编程语言 > Python开发

python 3 登录azureAD并调用azure graph api

2017-08-27 21:22 761 查看
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 json
import logging
import os
import sys
import adal

parameters_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 urllib2
req = 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)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: