Поддержка CORS
CORS (Cross-origin resource sharing, совместное использование ресурсов между разными источниками) - механизм, использующий специальные HTTP заголовки, указыващие браузеру, что приложение, выполняемое в одном домене, имеет доступ к определенным ресурсам, расположенным на сервере из другого домена (под доменом или источником понимается совокупность URL-схемы, доменного имени и номера порта).
КриптоПро DSS позволяет ограничить перечень допустимых источников. Для этого
предусмотрен специальный параметр командлетов Set-DssProperties,
Set-DssStsProperties, Set-VsProeprties, Set-LssProperties:
-AllowedCorsOrigins. В значении данного параметра можно указать через
запятую список допустимых URL-адресов источников, с которых разрешено обращаться
к соответствующим сервисам.
Пример 1
Set-DssProperties -AllowedCorsOrigins "https://test-cors.org,http://example.com"
URL-адрес источника должен удовлетворять следующим требованиям:
- URL-адрес должен быть абсолютным (т.е. начинаться со схемы).
- URL-адрес не должен заканчиватья на
/. - URL-адрес на должен содержать относительный путь, строку запроса (query string) и фрагмент.
Пример 2
https://test-cors.org - правильный адрес.
https://test-cors.org/,/test-cors.org,
https://test-cors.org/path?query=string#fragment - неправильные
адреса.
По умолчанию значение для параметра AllowedCorsOrigins не задано. В этом
случае разрешен любой источник. Указание пустой строки в значении параметра
также отключает валидацию источников. Следует отметить, что разрешение любых
источников не отключает поддержку CORS вообще: сервер продолжит формирование
необходимых в рамках данного механизма HTTP-заголовков.
Текущее значение параметра можно посмотреть с помощью Get- командлетов:
Get-DssProperties, Get-DssStsProperties,
Get-VsProeprties, Get-LssProperties.
Пример
PinMode : Allow
TSPList : {testtsp, csptsp, qtsp}
SignatureTypeList : {GOST3410, CMS, CAdES, XMLDSig...}
ServiceCertificate : 859D63834C7F61B81FF44D89382CD4081B20011B
ValidateCertificateBeforeSignature : False
ServiceType : Server
MonitoringTimeout : 10000
PdfSignatureSize : 100000
CadesUseOcspAuthorizedPolicy : False
TokenTimeout : 600
RequireStrongConfirmation : False
TransactionCacheMode : DistributedCache
IsAdditionalCertStoreEnabled : False
AdditionalCertStoreName :
CadesUseProxy : False
OcspList :
ServiceIdentifier :
AllowedCorsOrigins : http://www.test-cors.org
DisplayName : SignServer
Механизм CORS поддерживают все REST сервисы КриптоПро DSS:
- Сервис Подписи;
- Сервис Управления Пользователями;
- Сервис Подписи Lite;
- Сервис Проверки Подписи.