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"
        ]
      }
    ]
  }
}