Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Com a autenticação do Serviço de Aplicativo, as configurações de autenticação podem ser configuradas com um arquivo. Talvez seja necessário usar a configuração baseada em arquivo para usar determinadas funcionalidades de visualização da autenticação/autorização do Serviço de Aplicativo antes que elas sejam expostas por meio de APIs Azure Resource Manager.
Importante
Lembre-se de que o conteúdo do aplicativo e, portanto, este arquivo, pode ser movido entre ambientes, assim como nos slots. É provável que você queira um registro de aplicativo diferente fixado em cada slot e, nesses casos, você deve continuar a usar o método de configuração padrão em vez de usar o arquivo de configuração.
Habilitar a configuração baseada em arquivo
Crie um novo arquivo JSON para sua configuração na raiz do seu projeto (implantado em C:\home\site\wwwroot no seu aplicativo web/de função). Preencha a configuração desejada de acordo com a referência de configuração baseada em arquivo. Se estiver modificando uma configuração de Azure Resource Manager existente, converta as propriedades capturadas na coleção
authsettingsem seu arquivo de configuração.Modifique a configuração existente, que é capturada nas APIs Azure Resource Manager em
Microsoft.Web/sites/<siteName>/config/authsettingsV2. Para modificá-lo, você pode usar um modelo Azure Resource Manager ou uma ferramenta como Azure Resource Explorer. Dentro da coleção authsettingsV2, defina duas propriedades (você pode remover outras):- Defina
platform.enabledcomo "true" - Defina
platform.configFilePathcomo o nome do arquivo (por exemplo, "auth.json")
- Defina
Observação
O formato de platform.configFilePath varia entre plataformas. Em Windows, há suporte para caminhos relativos e absolutos. É recomendável usar relativo. Para o Linux, somente caminhos absolutos têm suporte no momento, portanto, o valor da configuração deve ser "/home/site/wwwroot/auth.json" ou semelhante.
Depois de fazer essa atualização de configuração, o conteúdo do arquivo será usado para definir o comportamento da Autenticação/Autorização do Serviço de Aplicativo para esse site. Se você quiser retornar à configuração de Azure Resource Manager, poderá fazer isso alterando a configuração platform.configFilePath para nulo.
Referência do arquivo de configuração
Todos os segredos que serão referenciados do arquivo de configuração devem ser armazenados como configurações do aplicativo. Você pode nomear as configurações de qualquer maneira que desejar. Apenas certifique-se de que as referências do arquivo de configuração usem as mesmas chaves.
As seguintes esgotam as possíveis opções de configuração dentro do arquivo:
{
"platform": {
"enabled": <true|false>
},
"globalValidation": {
"unauthenticatedClientAction": "RedirectToLoginPage|AllowAnonymous|RejectWith401|RejectWith404",
"redirectToProvider": "<default provider alias>",
"excludedPaths": [
"/path1",
"/path2",
"/path3/subpath/*"
]
},
"httpSettings": {
"requireHttps": <true|false>,
"routes": {
"apiPrefix": "<api prefix>"
},
"forwardProxy": {
"convention": "NoProxy|Standard|Custom",
"customHostHeaderName": "<host header value>",
"customProtoHeaderName": "<proto header value>"
}
},
"login": {
"routes": {
"logoutEndpoint": "<logout endpoint>"
},
"tokenStore": {
"enabled": <true|false>,
"tokenRefreshExtensionHours": "<double>",
"fileSystem": {
"directory": "<directory to store the tokens in if using a file system token store (default)>"
},
"azureBlobStorage": {
"sasUrlSettingName": "<app setting name containing the sas url for the Azure Blob Storage if opting to use that for a token store>"
}
},
"preserveUrlFragmentsForLogins": <true|false>,
"allowedExternalRedirectUrls": [
"https://uri1.azurewebsites.net/",
"https://uri2.azurewebsites.net/",
"url_scheme_of_your_app://easyauth.callback"
],
"cookieExpiration": {
"convention": "FixedTime|IdentityProviderDerived",
"timeToExpiration": "<timespan>"
},
"nonce": {
"validateNonce": <true|false>,
"nonceExpirationInterval": "<timespan>"
}
},
"identityProviders": {
"azureActiveDirectory": {
"enabled": <true|false>,
"registration": {
"openIdIssuer": "<issuer url>",
"clientId": "<app id>",
"clientSecretSettingName": "APP_SETTING_CONTAINING_AAD_SECRET",
},
"login": {
"loginParameters": [
"paramName1=value1",
"paramName2=value2"
]
},
"validation": {
"allowedAudiences": [
"audience1",
"audience2"
]
}
},
"facebook": {
"enabled": <true|false>,
"registration": {
"appId": "<app id>",
"appSecretSettingName": "APP_SETTING_CONTAINING_FACEBOOK_SECRET"
},
"graphApiVersion": "v3.3",
"login": {
"scopes": [
"public_profile",
"email"
]
},
},
"gitHub": {
"enabled": <true|false>,
"registration": {
"clientId": "<client id>",
"clientSecretSettingName": "APP_SETTING_CONTAINING_GITHUB_SECRET"
},
"login": {
"scopes": [
"profile",
"email"
]
}
},
"google": {
"enabled": true,
"registration": {
"clientId": "<client id>",
"clientSecretSettingName": "APP_SETTING_CONTAINING_GOOGLE_SECRET"
},
"login": {
"scopes": [
"profile",
"email"
]
},
"validation": {
"allowedAudiences": [
"audience1",
"audience2"
]
}
},
"twitter": {
"enabled": <true|false>,
"registration": {
"consumerKey": "<consumer key>",
"consumerSecretSettingName": "APP_SETTING_CONTAINING TWITTER_CONSUMER_SECRET"
}
},
"apple": {
"enabled": <true|false>,
"registration": {
"clientId": "<client id>",
"clientSecretSettingName": "APP_SETTING_CONTAINING_APPLE_SECRET"
},
"login": {
"scopes": [
"profile",
"email"
]
}
},
"openIdConnectProviders": {
"<providerName>": {
"enabled": <true|false>,
"registration": {
"clientId": "<client id>",
"clientCredential": {
"clientSecretSettingName": "<name of app setting containing client secret>"
},
"openIdConnectConfiguration": {
"authorizationEndpoint": "<url specifying authorization endpoint>",
"tokenEndpoint": "<url specifying token endpoint>",
"issuer": "<url specifying issuer>",
"certificationUri": "<url specifying jwks endpoint>",
"wellKnownOpenIdConfiguration": "<url specifying .well-known/open-id-configuration endpoint - if this property is set, the other properties of this object are ignored, and authorizationEndpoint, tokenEndpoint, issuer, and certificationUri are set to the corresponding values listed at this endpoint>"
}
},
"login": {
"nameClaimType": "<name of claim containing name>",
"scopes": [
"openid",
"profile",
"email"
],
"loginParameterNames": [
"paramName1=value1",
"paramName2=value2"
],
}
},
//...
}
}
}