La fonctionnalité de partage des ressources cross-origin (CORS) régule les demandes cross-origin côté client en fournissant des déclarations de stratégie au client à la demande et en vérifiant les demandes pour assurer la conformité avec la stratégie. Cette fonctionnalité peut être configurée et activée si nécessaire.

Les stratégies incluent l'ensemble des méthodes HTTP à l'origine des demandes qui peuvent être acceptées, ainsi que les types de contenu valides. Ces stratégies varient en fonction de l'URL de demande et peuvent être reconfigurées selon vos besoins en ajoutant des entrées au fichier locked.properties.

Les points de suspension après un nom de propriété indiquent que la propriété peut accepter une liste.

Tableau 1. Propriétés de CORS
Propriété Type de valeur Valeur principale par défaut Autres valeurs par défaut
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
Note : Cette valeur est l'ID d'extension de Chrome pour Horizon Client pour Chrome.
n/a

Voici des exemples de propriétés CORS dans le fichier 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

Vérification de l'origine

La vérification de l'origine est activée par défaut. Lorsqu'elle est activée, une demande est acceptée uniquement sans origine, ou avec une origine égale à l'adresse spécifiée par l'URL externe, à n'importe quelle adresse balancedHost, à n'importe quelle adresse portalHost, à n'importe quel hachage chromeExtension, à null ou à localhost. Si l'origine ne correspond à aucune de ces valeurs, l'erreur « Origine inattendue » est journalisée et l'état 404 est renvoyé.

Note : Certains navigateurs ne fournissent pas un en-tête Origine ou n'en fournissent pas toujours un. Éventuellement, l'en-tête Référent dans une demande peut être vérifié en l'absence d'en-tête Origine. L'en-tête Référent comporte un « r » dans le nom d'en-tête. Pour vérifier l'en-tête Référent, ajoutez la propriété suivante au fichier locked.properties :
checkReferer=true

Si plusieurs hôtes du Serveur de connexion sont à équilibrage de charge, vous devez spécifier l'adresse de l'équilibrage de charge en ajoutant une entrée balancedHost au fichier locked.properties. Le port 443 est utilisé pour cette adresse.

Si les clients se connectent via un dispositif Unified Access Gateway ou une autre passerelle, vous devez spécifier toutes les adresses de passerelle en ajoutant des entrées portalHost au fichier locked.properties. Le port 443 est utilisé pour ces adresses. Vous devez également spécifier des entrées portalHost pour fournir l'accès à un hôte du Serveur de connexion par le biais d'un nom différent de celui spécifié par l'URL externe.

Les clients d'extension Chrome définissent leur origine initiale sur leur propre identité. Pour que les connexions aboutissent, enregistrez l'extension en ajoutant une entrée chromeExtension au fichier locked.properties. Par exemple :
chromeExtension.1=bpifadopbphhpkkcfohecfadckmpjmjd 

Reportez-vous également à la section Vérification de l'hôte.