是否可以编写Azure App Service身份验证的配置脚本?

时间:2016-03-07 14:30:42

标签: powershell azure authentication azure-resource-manager

Azure App Service在身份验证/授权设置刀片下包含一个交钥匙身份验证解决方案。这允许我为App Service Web api配置Active Directory身份验证。我有一个用于设置环境的配置脚本,我希望通过ARM模板或Powershell命令自动配置App Service身份验证。

我尝试过使用resource.azure.com来查看我的网站设置,但是我看不到与AD相关的配置。我已经尝试搜索执行此操作的ARM模板,但没有成功。我也看不到可以执行此操作的Azure Resource Manager命令行开关。

有谁知道如何自动配置App Service身份验证,特别是AD身份验证?

3 个答案:

答案 0 :(得分:11)

我可以自己回答:这确实可以通过ARM模板编写脚本。 (我最初尝试使用resources.azure.com,但它没有显示我网站的所有配置信息;退出并重新登录使其运行。)解决方案是使用{{1内的嵌套资源您的类型为Microsoft.Web/sites且名称为config的网络应用的资源,用于指定设置,例如:

web

答案 1 :(得分:5)

以下是使用直接Powershell命令执行此操作的方法。

首先,您可以使用以下方式查看当前的身份验证设置:

first->next

然后,您可以获取这些属性的值并使用它们来设置PropertyObject(下面显示的属性与使用服务主体的AAD身份验证相关):

$rgName = "ResourceGroupName"
$resourceType = "Microsoft.Web/sites/config"
$resourceName = "service-name/authsettings"

$resource = Invoke-AzureRmResourceAction -ResourceGroupName $rgName `
-ResourceType $resourceType -ResourceName $resourcename -Action list `
-ApiVersion 2015-08-01 -Force

$resource.Properties

我发现在门户中启用身份验证更容易,查看属性,然后使用这些值来设置PropertyObject。

答案 2 :(得分:3)

现在是merged into Azure CLI,可在az webapp auth下找到。

Azure CLI Ref Page

az webapp auth update --name
                      --resource-group
                      [--aad-allowed-token-audiences]
                      [--aad-client-id]
                      [--aad-client-secret]
                      [--aad-token-issuer-url]
                      [--action {AllowAnonymous, LoginWithAzureActiveDirectory, LoginWithFacebook, LoginWithGoogle, LoginWithMicrosoftAccount, LoginWithTwitter}]
                      [--allowed-external-redirect-urls]
                      [--enabled {false, true}]
                      [--facebook-app-id]
                      [--facebook-app-secret]
                      [--facebook-oauth-scopes]
                      [--google-client-id]
                      [--google-client-secret]
                      [--google-oauth-scopes]
                      [--microsoft-account-client-id]
                      [--microsoft-account-client-secret]
                      [--microsoft-account-oauth-scopes]
                      [--runtime-version]
                      [--slot]
                      [--token-refresh-extension-hours]
                      [--token-store {false, true}]
                      [--twitter-consumer-key]
                      [--twitter-consumer-secret]