Поддержка 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;
- Сервис Проверки Подписи.