O recurso Cross-Origin Resource Sharing (CORS) regula as solicitações entre origens do lado do cliente fornecendo instruções de política ao cliente sob demanda e verificando as solicitações de conformidade com a política. Esse recurso pode ser configurado e ativado, se necessário.

As políticas incluem o conjunto de métodos HTTP que podem ser aceitos, onde as solicitações podem ser originadas e quais tipos de conteúdo são válidos. Essas políticas variam de acordo com a URL da solicitação e podem ser reconfiguradas conforme necessário adicionando entradas ao arquivo locked.properties.

Uma reticência após o nome de uma propriedade indica que a propriedade pode aceitar uma lista.

Tabela 1. Propriedades CORS
Propriedade Tipo de valor Padrão primário Outros padrões
enableCORS true

false

true n/a
acceptContentType... http-content-type application/x-www-form-urlencoded,application/xml,text/xml admin=application/json,application/text,application/x-www-form-urlencoded

portal=application/json

rest=application/json

sse=application/json

view-vlsi-rest=application/json

acceptHeader... http-header-name * admin=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Cache-Control,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrftoken,DNT,Host,Origin,Referer, User-Agent

broker=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,Gateway-Location,Gateway-Name,Gateway-Type,Host, Origin,Referer,User-Agent,X-CSRF-Token,X-EUC-Gateway,X-EUC-Health,X-Forwarded-For,X-Forwarded-Host,X-Forwarded-Proto

portal=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,Host,Origin,Referer,User-Agent,X-CSRF- Token

rest=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X- Require-Cloud-Admin-Privilege

view-vlsi=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X- Require-Cloud-Admin-Privilege

view-vlsi-rest=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X- Require-Cloud-Admin-Privilege

exposeHeader... http-header-name * n/a
filterHeaders true

false

true n/a
checkOrigin true

false

true n/a
checkReferer true

false

false n/a
allowCredentials true

false

false admin =true

broker=true

health=true

misc =true

portal=true

rest=true

saml=true

sse=true

tunnel=true

view-vlsi=true

view-vlsi-rest=true

allowMethod... http-method-name GET,HEAD,POST health=GET,HEAD

misc =GET,HEAD

rest=GET,POST,PUT, PATCH,DELETE

saml =GET,HEAD

sse=GET,POST

tunnel=GET,POST

allowPreflight true

false

true n/a
maxAge cache-time 0 n/a
balancedHost... load-balancer-name OFF n/a
portalHost... gateway-name OFF n/a
chromeExtension... chrome-extension-hash ppkfnjlimknmjoaemnpidmdlfchhehel
Observação: Esse valor é o ID da extensão do Chrome para Horizon Client para Chrome.
n/a

A seguir estão exemplos de propriedades CORS no arquivo locked.properties.

enableCORS = true
allowPreflight = true
checkOrigin = true
checkOrigin-misc = false
allowMethod.1 = GET
allowMethod.2 = HEAD
allowMethod.3 = POST
allowMethod-saml.1 = GET
allowMethod-saml.2 = HEAD
acceptContentType.1 = application/x-www-form-urlencoded
acceptContentType.2 = application/xml
acceptContentType.3 = text/xml

Verificação de origem

A verificação de origem é ativada por padrão. Quando ativado, uma solicitação é aceita somente sem uma Origem, ou com uma Origem igual ao endereço que a URL externa especifica, para qualquer endereço balancedHost, para qualquer endereço portalHost, para qualquer hash chromeExtension, para null, ou para localhost. Se Origem não for uma dessas possibilidades, um erro "Origem Inesperada" será registrado e um status de 404 será retornado.

Observação: Alguns navegadores não fornecem um cabeçalho Origin ou nem sempre fornecem um. Opcionalmente, o cabeçalho Referer em uma solicitação pode ser verificado na ausência de um cabeçalho Origin. O cabeçalho Referer tem um "r" no nome do cabeçalho. Para verificar o cabeçalho Referer, adicione a seguinte propriedade ao arquivo locked.properties:
checkReferer=true

Se vários hosts do Servidor de Conexão tiverem balanceamento de carga, você deverá especificar o endereço do balanceador de carga adicionando uma entrada balancedHost ao arquivo locked.properties. A porta 443 é assumida para esse endereço.

Se os clientes se conectarem por meio de um appliance do Unified Access Gateway ou outro gateway, você deverá especificar todos os endereços de gateway adicionando entradas portalHost ao arquivo locked.properties. A porta 443 é assumida para esses endereços. Você também deve especificar entradas portalHost para fornecer acesso a um host do Servidor de Conexão por um nome diferente do nome especificado pela URL Externa.

Os clientes de extensão do Chrome definem sua Origem inicial como sua própria identidade. Para permitir que as conexões sejam bem-sucedidas, registre a extensão adicionando uma entrada chromeExtension ao arquivo locked.properties. Por exemplo:
chromeExtension.1=bpifadopbphhpkkcfohecfadckmpjmjd 

Consulte também Verificação do host.