我尝试使用partnercenter api来获取结算明细。但API调用返回401错误代码。 partnercpi上提供的详细信息正确且工作正常如果我将其作为Subscription API的输入。
网址:https://api.partnercenter.microsoft.com/v1/customers/<Customer-tenant-ID>/subscriptions/<Subscription-ID>/usagerecords/resources
你能说出错误的原因吗?
参考链接:https://msftstack.wordpress.com/2016/01/05/azure-resource-manager-authentication-with-python/
这是我的python代码。
import adal
import requests
application_secret = 'asdq23Y+tRgEspFxQDPasd'
application_id = '523129-1267b-123'
authentication_endpoint = 'https://login.microsoftonline.com/'
resource = 'https://management.core.windows.net/'
context = adal.AuthenticationContext(authentication_endpoint + tenant_id)
token_response = context.acquire_token_with_client_credentials(resource, application_id, application_secret)
access_token = token_response.get('accessToken')
endpoint = "https://api.partnercenter.microsoft.com/v1/customers/<customer tenant ID>/subscriptions/<sub-id>/usagerecords/resources"
headers = {"Authorization": 'Bearer ' + access_token}
json_output = requests.get(endpoint,headers=headers)
print json_output
输出回复:
<Response [401]>
这种方法不适合partnerapi用法收集吗?如果不是请建议替代选项。提前谢谢。
答案 0 :(得分:0)
401是因为合作伙伴中心不能仅使用Azure AD中的令牌。
实际的Auth工作流程
更多信息Here