【发布时间】:2016-06-04 17:56:07
【问题描述】:
我花了几天时间尝试所有可能的技巧和代码组合,以使用令牌而不是证书来驱动 Azure 服务管理 API。
甚至可以这样做吗?
{
"defaultEnv": "dev",
"envs": {
"dev": {
"tenant": "redacted.onmicrosoft.com",
"clientId": "redacted",
"clientSecret": "redacted",
"resource": "https://management.core.windows.net/",
"endpoint": ""
}
}
}
我使用上述参数从 Azure AD 成功获取了访问令牌。
我将访问令牌放入一小段 Python 中:
token = 'redacted'
headers = {
"Authorization": "Bearer {}".format(token),
"x-ms-version": "2015-04-01",
}
url = 'https://management.core.windows.net/{}/services/images?api-version=2015-04-01'.format(subscription_id)
r = requests.get(url, headers=headers)
我放弃的最后一个错误是:
https://management.core.windows.net/REDACTEDSUBSCRIPTIONID/services/images?api-version=2015-04-01
<Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Code>ForbiddenError</Code><Message>The server failed to authenticate the request. Verify that the certificate is valid and is associated with this subscription.</Message></Error>
【问题讨论】:
-
到目前为止你做了什么?
-
是的,这当然是可能的。请查看此回复以了解您收到此错误的原因:stackoverflow.com/questions/35190866/…。
-
@GauravMantri 我能问一下这是你最近实际做过的事情,并且看到它有效还是理论上的?我尝试以用户身份向 Azure AD 进行身份验证,它说“密码已过期”,我找不到清除密码过期的方法。此外,您在链接中提供的说明说要使用户成为“共同管理员”,但我通过旧的和新的 Azure 控制台进行了高低搜索,但看不到在哪里执行此操作。您是否介意实际执行您建议的步骤或确认这一切都是可能的?谢谢!
-
嗨,Duke,几个月前我帮朋友解决了同样的问题。关于密码过期,您可以尝试以该用户身份登录 Azure 门户(旧)吗?我确信它将提供一个 UI 流程,用户可以在其中指定新密码。或者,您可以在 Azure 门户中以您自己(即管理员)的身份登录,转到有问题的 AD 并为用户创建一个新密码。然后当用户登录时,他/她将被提示自动更改密码。关于共同管理员,在旧门户中转到设置,然后转到管理员选项卡。您可以在此处将此用户添加为共同管理员。 HTH。
-
我在旧控制台中看不到设置区域。
标签: azure