Azure App Service在身份验证/授权设置刀片下包含一个交钥匙身份验证解决方案。这允许我为App Service Web api配置Active Directory身份验证。我有一个用于设置环境的配置脚本,我希望通过ARM模板或Powershell命令自动配置App Service身份验证。
我尝试过使用resource.azure.com来查看我的网站设置,但是我看不到与AD相关的配置。我已经尝试搜索执行此操作的ARM模板,但没有成功。我也看不到可以执行此操作的Azure Resource Manager命令行开关。
有谁知道如何自动配置App Service身份验证,特别是AD身份验证?
答案 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
下找到。
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]