您好我在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是我要添加的域名,是不是正确,我错过了什么,请帮帮我
答案 0 :(得分:1)
由于您使用Azure资源管理器对资源执行的所有任务都必须使用Azure Active Directory进行身份验证。因此,要实现Azure Resource Manager Rest API,我们需要首先按照authenticate Azure Recourse Manager requests中的步骤设置身份验证。
一般而言:
将应用程序添加到Azure Active Directory租户。
为您添加的应用程序设置权限。
获取用于验证对Azure资源管理器的请求的令牌。
要获取Azure资源管理器的访问令牌,我们应该按照Authorization Code Grant Flow中显示的步骤进行操作:
1,申请授权码
构建URL将重定向到sso页面,登录后我们可以获得将在下一步中使用的code
值。
3,我们可以利用access token
来授权资源REST API:
要在没有用户ui应用程序的情况下创建仅限应用程序,您需要遵循https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx中所示的client_credentials流程。
对于您的授权问题,您需要为所有者角色分配书面许可。你可以利用azure-cli来做到这一点。
Reader
更改为Owner
,
喜欢
azure role assignment create --objectId 47193a0a-63e4-46bd-9bee-6a9f6f9c03cb -o Owner -c /subscriptions/{subscriptionId}/
分配书面许可。