Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用令牌而不是证书对Azure服务管理API(即classic)进行身份验证?_Azure - Fatal编程技术网

是否可以使用令牌而不是证书对Azure服务管理API(即classic)进行身份验证?

是否可以使用令牌而不是证书对Azure服务管理API(即classic)进行身份验证?,azure,Azure,我花了几天时间尝试各种可能的技巧和代码组合,以使用令牌而不是证书来驱动Azure服务管理API 甚至有可能这样做吗 { "defaultEnv": "dev", "envs": { "dev": { "tenant": "redacted.onmicrosoft.com", "clientId": "redacted", "clientSecret": "redacted", "resource": "https://managem

我花了几天时间尝试各种可能的技巧和代码组合,以使用令牌而不是证书来驱动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>

本文将向您展示如何通过令牌对服务管理进行身份验证:

本文将向您展示如何通过令牌验证服务管理:

到目前为止你做了什么?是的,这当然是可能的。请看下面的回复以了解为什么会出现这个错误:。@GauravMantri我可以问一下,这是你最近实际做过的事情,并且看到它在工作,还是理论上的?我尝试以Azure AD的用户身份进行身份验证,它显示“密码过期”,我无法清除密码过期。另外,你在链接中提供的说明说,要让用户成为“联合管理员”,但我在新旧Azure控制台上到处搜索,看不到在哪里可以做到这一点。您是否介意现在就实际执行您建议的步骤或确认这一切都是可能的?谢谢嗨,杜克,几个月前我帮一个朋友解决同样的问题时做的。关于密码过期,您能否尝试以该用户的身份登录Azure Portal(旧版)?我相信它将提供一个用户界面流,用户可以在其中指定新密码。或者,您可以在Azure Portal中以自己(即管理员)的身份登录,转到相关广告并为用户创建新密码。然后,当用户登录时,系统会提示他/她自动更改密码。关于共同管理,请在旧门户中转到“设置”,然后转到“管理员”选项卡。您可以将此用户添加为那里的联合管理员。我在旧的控制台上看不到设置区域。到目前为止你做了什么?是的,当然有可能。请看下面的回复以了解为什么会出现这个错误:。@GauravMantri我可以问一下,这是你最近实际做过的事情,并且看到它在工作,还是理论上的?我尝试以Azure AD的用户身份进行身份验证,它显示“密码过期”,我无法清除密码过期。另外,你在链接中提供的说明说,要让用户成为“联合管理员”,但我在新旧Azure控制台上到处搜索,看不到在哪里可以做到这一点。您是否介意现在就实际执行您建议的步骤或确认这一切都是可能的?谢谢嗨,杜克,几个月前我帮一个朋友解决同样的问题时做的。关于密码过期,您能否尝试以该用户的身份登录Azure Portal(旧版)?我相信它将提供一个用户界面流,用户可以在其中指定新密码。或者,您可以在Azure Portal中以自己(即管理员)的身份登录,转到相关广告并为用户创建新密码。然后,当用户登录时,系统会提示他/她自动更改密码。关于共同管理,请在旧门户中转到“设置”,然后转到“管理员”选项卡。您可以将此用户添加为那里的联合管理员。我在旧的控制台上看不到设置区域。