Configurações do aplicativo (appsettings.json)
Todas as configurações do aplicativo estão contidas em um arquivo chamado appsettings.json. Todas as alterações no arquivo appsettings.json exigirão a reinicialização do serviço "Administração do IIS da Microsoft" para entrar em vigor.
O arquivo appsettings.json está localizado em: %SystemDrive%\Program Files\IIS Administration\<version>\Microsoft.IIS.Administration\config\appsettings.json
CORS
As políticas cors permitem que aplicativos baseados em navegador enviem solicitações para a API de Administração do IIS da Microsoft.
Configurações padrão
A API de Administração do IIS não permitirá cors para qualquer origem se não houver configurações de cors presentes.
Formato
Por exemplo, a seguinte configuração habilita o CORS:
"cors": {
"rules": [
{
"origin": "https://contoso.com",
"allow": true
}
]
}
regras: um conjunto de regras cors para controlar como a API compartilha recursos.
origem: a origem, conforme definido na especificação CORS , para permitir ou negar. Se o caractere curinga, *, for fornecido como a origem, essa regra será aplicada a todas as origens.
allow: indica se os recursos devem ser compartilhados com a origem especificada.
Arquivos
Vários pontos de extremidade exigem interagir com o sistema de arquivos, como criar um site em um diretório existente (leitura) ou carregar o conteúdo de um arquivo (gravação). Essas configurações fornecem um método para restringir essas interações do sistema de arquivos. Um conjunto de locais do sistema de arquivos que são visíveis para a API são especificados. Esses caminhos podem ter privilégios de leitura e ou gravação associados a eles.
Configurações padrão
A API de Administração do IIS permitirá acesso de leitura a %systemdrive%\inetpub se não houver configurações de arquivos presentes.
Formato
As configurações a seguir permitem acesso de leitura/gravação a %systemdrive%\inetpub
"files": {
"locations": [
{
"alias": "inetpub",
"path": "%systemdrive%\\inetpub",
"claims": [
"read",
"write"
]
}
]
}
skip_resolving_symbolic_links: um sinalizador que especifica se o sistema resolverá links simbólicos ao determinar se um caminho é permitido. Por padrão, esse sinalizador é falso, o que significa que os links simbólicos serão resolvidos.
locais: um conjunto de locais do sistema de arquivos e direitos associados que especificam quais operações podem ser executadas por meio da API.
alias: um nome para o local.
caminho: um caminho raiz para atribuir a lista de declarações. Todos os arquivos ou diretórios nesse caminho herdam a lista de declarações, a menos que substituídos por um caminho mais específico.
declarações: especifica quais operações têm permissão para serem executadas em diretórios de arquivos no caminho. Um conjunto vazio de declarações significa que nenhum acesso será permitido para esse local.
Segurança
A seção de segurança foi introduzida na Administração do IIS 2.0.0. Esta seção especifica os requisitos para acessar a API.
Configurações padrão
Por padrão, a API requer que todas as solicitações tenham credenciais válidas do Windows, conforme indicado pelo sinalizador require_windows_authentication . O acesso aos recursos da API, como sites e aplicativos, e a manipulação de chave de acesso exigem que o usuário esteja na função de API de administradores . As operações de alto privilégio exigem que o usuário esteja na função de proprietário . Quando a API é instalada, as funções de administradores e proprietários são preenchidas automaticamente com o usuário que executou o instalador.
Formato
"security": {
"require_windows_authentication": true,
"users": {
"administrators": [
],
"owners": [
]
},
"access_policy": {
"api": {
"users": "administrators",
"access_key": true
},
"api_keys": {
"users": "administrators",
"access_key": false
},
"system": {
"users": "owners",
"access_key": true
}
}
}
require_windows_authentication: um valor booliano que especifica se a autenticação do Windows válida é necessária para todas as solicitações à API. Se for true, qualquer solicitação que não seja autenticada pelo Windows será rejeitada. Se for falso, autenticação do Windows requisitos serão determinados pelas configurações de access_policy.
usuários: um mapeamento entre usuários/grupos do Windows e funções dentro da API. Qualquer função pode ser adicionada, mas por padrão o arquivo appsettings.json contém administradores e proprietários. Essas funções são usadas na seção access_policy para controlar o acesso a diferentes seções da API.
access_policy: as políticas de acesso especificam um conjunto de requisitos para acessar áreas dentro da API. A API de Administração do IIS vem com três políticas de acesso, aPI, api_keys e sistema diferentes.
api: essa política de acesso é para recursos de API, como sites, pools de aplicativos e arquivos.
api_keys: essa política de acesso é para manipular chaves de API.
sistema: essa política de acesso é para ações de alto privilégio oferecidas pela API, como alterar a identidade de um pool de aplicativos para o LocalSystem.
Cada política de acesso tem um conjunto de requisitos que podem ser configurados. Os requisitos disponíveis são:
usuários: especifica quais funções da seção security.users têm acesso permitido. Para permitir que todos os usuários usem um valor "Todos".
access_key: especifica se as solicitações são necessárias para ter um token de acesso.
read_only: impõe um modo somente leitura restringindo todas as solicitações para usar o método HTTP GET .
proibido: bloqueia todo o acesso.
Exemplo completo
{
"host_id": "",
"host_name": "My instance of the IIS Administration API",
"logging": {
"enabled": true,
"file_name": "log-{Date}.txt",
"min_level": "Error",
"path": null
},
"auditing": {
"enabled": true,
"file_name": "audit-{Date}.txt",
"path": null
},
"security": {
"require_windows_authentication": true,
"users": {
"administrators": [
],
"owners": [
]
},
"access_policy": {
"api": {
"users": "administrators",
"access_key": true
},
"api_keys": {
"users": "administrators",
"access_key": false
},
"system": {
"users": "owners",
"access_key": true
}
}
},
"cors": {
"rules": [
{
"origin": "https://contoso.com",
"allow": true
}
]
},
"files": {
"locations": [
{
"alias": "inetpub",
"path": "%systemdrive%\\inetpub",
"claims": [
"read"
]
}
]
}
}