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 maître par défaut Autres valeurs par défaut
enableCORS true

false

false n/a
acceptContentType... http-content-type application/x-www-form-urlencoded,application/xml,text/xml

flexadmin=application/x-amf

admin=application/json,application/text,application/x-www-form-urlencoded

portal=application/json

view-vlsi-rest=application/json

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

flexadmin=true

health=true

misc =true

portal=true

rest=true

saml=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

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, à l'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 ou serveurs de sécurité 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 ou à un serveur de sécurité par le biais d'un nom qui est 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