您好,我在 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 应用程序进行上述示例
应用程序(instanceName)名称名称是“example”
"https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{myResourceGroup}/providers/Microsoft.Web/sites/{instanceName}/config/web?api-version=2015-08-01"
同时使用 POST 和 PUT 方法
{ "properties": { "HostNames":"example.com, crm.example.com" } }
我尝试了这些方法,但都收到错误“身份验证失败。‘授权’ header 不存在或以无效格式提供”,我相信 json 值有问题,
example.com.au 是我现有的网站,crm.example.com 是我要添加的域名,它是否正确,我是否缺少任何内容,请帮助我
最佳答案
因为使用 Azure 资源管理器对资源执行的所有任务都必须通过 Azure Active Directory 进行身份验证。因此,要实现 Azure 资源管理器 Rest API,我们需要按照 authenticate Azure Recourse Manager requests 中的步骤操作。首先设置身份验证。
一般情况下:
将应用程序添加到 Azure Active Directory 租户。
为您添加的应用程序设置权限。
获取用于对 Azure 资源管理器请求进行身份验证的 token 。
--更新--
要获取 Azure 资源管理器的访问 token ,我们应该按照Authorization Code Grant Flow中显示的步骤进行操作。 :
1,请求授权码
构建的 URL 将重定向到 sso 页面,登录后我们可以获取下一步使用的 code
值。
3,我们可以利用访问 token
来授权资源REST API:
--更新1--
要创建仅应用程序而无需用户 ui 应用程序,您需要遵循 client_credentials 流程,如 https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx 所示。 。
对于您的授权问题,您需要分配所有者角色以获得书面权限。您可以利用 azure-cli 来执行此操作。
- Install the Azure-CLI .
- Connect to the Azure-CLI.
- Authenticate to your Service Principal using the Azure-CLI.
在本节的第 4 步中,您需要将
Reader
更改为Owner
, 喜欢azure 角色分配 create --objectId 47193a0a-63e4-46bd-9bee-6a9f6f9c03cb -o Owner -c/subscriptions/{subscriptionId}/
用于分配写入权限。
关于php - 通过代码添加多个域Azure应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33383583/