通过代码添加多个域Azure应用程序

时间:2015-10-28 05:32:21

标签: php azure azure-web-sites azure-resource-manager

您好我在Azure服务器上运行PHP CRM,我的要求是用户应该能够通过CRM站点自己添加自己的自定义域(他们将单独执行DNS配置)到应用程序,是否有任何REST API调用实现这一点,我搜索了很多,但无法从Azure找到任何文件, 我确实从堆栈中找到了这些 Programatically add domain name to azure website

Add a domain to an Azure web site via code

我尝试使用Chrome Postman应用

进行上述示例

App(instanceName)名称是"示例"

  

" https://management.azure.com/subscriptions/ {subscriptionId} / resourcegroups / {myResourceGroup} /providers/Microsoft.Web/sites/ {实例名} /配置/网页API版本= 2015年8月1日"

使用POST和PUT方法

  

{" properties":{" HostNames":" example.com,crm.example.com" }}

我尝试了这些方法,但所有我收到错误"身份验证失败。授权'标头不存在或以无效格式提供",我认为json值有问题,

example.com.au是我现有的网站,crm.example.com是我要添加的域名,是不是正确,我错过了什么,请帮帮我

1 个答案:

答案 0 :(得分:1)

由于您使用Azure资源管理器对资源执行的所有任务都必须使用Azure Active Directory进行身份验证。因此,要实现Azure Resource Manager Rest API,我们需要首先按照authenticate Azure Recourse Manager requests中的步骤设置身份验证。

一般而言:

  1. 将应用程序添加到Azure Active Directory租户。

  2. 为您添加的应用程序设置权限。

  3. 获取用于验证对Azure资源管理器的请求的令牌。

  4. - 更新 -

    要获取Azure资源管理器的访问令牌,我们应该按照Authorization Code Grant Flow中显示的步骤进行操作:

    1,申请授权码 enter image description here 构建URL将重定向到sso页面,登录后我们可以获得将在下一步中使用的code值。

    2,使用授权码请求访问令牌: enter image description here

    3,我们可以利用access token来授权资源REST API: enter image description here

    - UPDATE1 -

    要在没有用户ui应用程序的情况下创建仅限应用程序,您需要遵循https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx中所示的client_credentials流程。

    对于您的授权问题,您需要为所有者角色分配书面许可。你可以利用azure-cli来做到这一点。

    1. Install the Azure-CLI
    2. Connect to the Azure-CLI.
    3. Authenticate to your Service Principal using the Azure-CLI. 在本部分的第4步中,您需要将Reader更改为Owner, 喜欢 azure role assignment create --objectId 47193a0a-63e4-46bd-9bee-6a9f6f9c03cb -o Owner -c /subscriptions/{subscriptionId}/分配书面许可。