【问题标题】:Add multiple domain Azure App via Code通过代码添加多域 Azure App
【发布时间】:2015-10-28 05:32:20
【问题描述】:

您好,我在 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/{instanceName}/config/web?api-version=2015-08-01”

同时使用 POST 和 PUT 方法

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

我尝试了这些方法,但我得到的只是一个错误“身份验证失败。'Authorization' 标头不存在或以无效格式提供”,我认为 json 值有问题,

example.com.au 是我现有的网站,crm.example.com 是我要添加的域名,是否正确,我是否遗漏了什么,请帮助我

【问题讨论】:

    标签: php azure azure-web-app-service azure-resource-manager


    【解决方案1】:

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

    一般:

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

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

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

    --更新--

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

    1,请求授权码 构建的 URL 将重定向到 sso 页面,登录后我们可以得到 code 值,将用于下一步。

    2、使用授权码请求访问令牌:

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

    --update1--

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

    对于您的授权问题,您需要分配所有者角色以获得书面许可。您可以利用 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}/ 分配书面许可。

    【讨论】:

    • 您好,我使用活动目录获得了访问令牌,但是当我调用第二个 Api 进行主机名写入时,我收到此消息“消息”:“客户端 '********* *****' 对象 ID 为 '****************' 无权在范围 '/subscriptions 上执行操作 'Microsoft.Resources/subscriptions/resources/write' /******************'
    • 我们可以尝试通过我的更新中显示的授权码授予流程获取访问令牌
    • 谢谢,它对我有用,但我对第 1 步有疑问,我需要在 php 代码中执行该操作,这样我就可以在不进入 sso 页面的情况下获得授权码,有什么办法可以它
    • 非常感谢,它对我有用,实际上第四步就成功了。
    猜你喜欢
    • 2013-09-14
    • 2021-10-08
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多