Configuração baseada em ficheiros na autenticação Serviço de Aplicações do Azure
Com Serviço de Aplicações autenticação, as definições de autenticação podem ser configuradas com um ficheiro. Poderá ter de utilizar a configuração baseada em ficheiros para utilizar determinadas capacidades de pré-visualização de autenticação/autorização Serviço de Aplicações antes de serem expostas através das APIs Resource Manager do Azure.
Importante
Lembre-se de que o payload da aplicação e, por conseguinte, este ficheiro pode mover-se entre ambientes, tal como acontece com os blocos. É provável que queira ter um registo de aplicação diferente afixado a cada bloco e, nestes casos, deve continuar a utilizar o método de configuração padrão em vez de utilizar o ficheiro de configuração.
Ativar a configuração baseada em ficheiros
Crie um novo ficheiro JSON para a sua configuração na raiz do seu projeto (implementado em D:\home\site\wwwroot na sua aplicação Web/de funções). Preencha a configuração pretendida de acordo com a referência de configuração baseada em ficheiros. Se modificar uma configuração existente do Azure Resource Manager, certifique-se de que traduz as propriedades capturadas na coleção para o
authsettings
ficheiro de configuração.Modifique a configuração existente, que é capturada nas APIs
Microsoft.Web/sites/<siteName>/config/authsettingsV2
de Resource Manager do Azure em . Para modificá-lo, pode utilizar um modelo do Azure Resource Manager ou uma ferramenta como o Azure Resource Explorer. Na coleção authsettingsV2, defina duas propriedades (pode remover outras):- Definido
platform.enabled
como "verdadeiro" - Definido
platform.configFilePath
como o nome do ficheiro (por exemplo, "auth.json")
- Definido
Nota
O formato para platform.configFilePath
varia entre plataformas. No Windows, são suportados caminhos relativos e absolutos. Relativa é recomendado. Para Linux, apenas os caminhos absolutos são suportados atualmente, pelo que o valor da definição deve ser "/home/site/wwwroot/auth.json" ou semelhante.
Depois de efetuar esta atualização de configuração, os conteúdos do ficheiro serão utilizados para definir o comportamento do Serviço de Aplicações Autenticação/Autorização para esse site. Se alguma vez quiser voltar à configuração do Azure Resource Manager, pode fazê-lo ao remover a alteração da definição platform.configFilePath
para nula.
Referência do ficheiro de configuração
Todos os segredos que serão referenciados a partir do ficheiro de configuração têm de ser armazenados como definições da aplicação. Pode atribuir o nome que desejar às definições. Certifique-se apenas de que as referências do ficheiro de configuração utilizam as mesmas chaves.
O seguinte esgota possíveis opções de configuração no ficheiro:
{
"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|IdentityDerived",
"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"
],
}
},
//...
}
}
}
Mais recursos
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários