Создание SubscriptionCloudCredentials для WebSiteManagementClient без приложения Azure AD

Я ищу простое решение для аутентификации и использования WebSiteManagementClient. Использовал примеры Azure AD Приложение для создания SubscriptionCloudCredentials требуется. Я бы предпочел создать SubscriptionCloudCredentials без использования приложения AD.

Если это вообще возможно, я бы предпочел просто использовать учетные данные Web Deploy un / pw, найденные в XML-файле настроек профиля публикации (поскольку у меня уже есть код, который использует их для взаимодействия с kudu api с базовой аутентификацией)

Я нашел это потенциальное решение, которое вместо этого использует сертификат управления (подробнее). Но опять же, если это вообще возможно, я бы предпочел просто использовать Web Deploy un / pw.

(Я понимаю, что сертификат управления находится на уровне подписки, а веб-развертывание un / pw - на уровне экземпляра службы приложений / веб-сайта. Я просто указываю, как будет выглядеть мое желаемое решение.)


person Aaron Hoffman    schedule 27.01.2017    source источник


Ответы (2)


Сертификаты управления позволяют выполнять аутентификацию только с использованием классической модели развертывания (Управление службами Azure), но не модели развертывания управления ресурсами Azure.

Если ваше веб-приложение создано не с использованием классической модели развертывания, вам понадобится TokenCloudCredential вместо CertificateCloudCredential.

Технически вы все еще можете создавать Certificate-based SubscriptionCloudCredentials, но это будет работать только с веб-приложением Azure, созданным с помощью классической модели развертывания.

person juvchan    schedule 28.01.2017

Я бы предпочел просто использовать Web Deploy un / pw.

Если вы хотите загрузить сертификат в Azure WebApp во время веб-развертывания, мы можем использовать шаблон ARM, дополнительные сведения см. В документ.

{
    "name": "[parameters('certificateName')]",
    "apiVersion": "2014-04-01",
    "type": "Microsoft.Web/certificates",
    "location": "[resourceGroup().location]",
    "properties": {
        "pfxBlob": "pfx base64 blob",
        "password": "some pass"
    }
}

О том, как создать subscriptionCloudCredentials с сертификатом и как создать индивидуальный сертификат, я сделал для него демонстрацию. Дополнительные сведения см. В другом потоке SO.

Если мы попытаемся запустить проект в Azure. См. Документ Использование сертификатов на веб-сайтах Azure Приложения. Добавление параметра приложения с именем WEBSITE_LOAD_CERTIFICATES со значением, установленным на отпечаток сертификата, сделает его доступным для вашего веб-приложения.

Поэтому нам также необходимо добавить AppSetting в шаблон ARM, более подробную информацию см. В документ.

  

{
   "name": "appsettings",
    "type": "config",
    "apiVersion": "2015-08-01",
    "dependsOn": [
        "[concat('Microsoft.Web/sites/', variables('webSiteName'))]"
    ],
    "tags": {
        "displayName": "WebAppSettings"
    },
    "properties": {
        " WEBSITE_LOAD_CERTIFICATES ": "thumbprint "
    }
person Tom Sun - MSFT    schedule 30.01.2017