Vzdálené podepisování

Služba Vzdáleného podepisování (SecuSign) vyžaduje pro svou funkčnost určitá nastavení – ta jsou závislá na zabezpečení služby pro volající aplikace nebo uživatele (podle požadavků zákazníka).

Nové metody

Pro dostupnost metod ListCerts, GetCertificate a SignHash, potřebných pro Vzdálené podepisování, je třeba upravit obsah souboru WebService\Default.asmx tak, že se do hodnoty Class doplní V3 (zvýrazněno tučně):

<%@ WebService Language="C#" CodeBehind="Default.asmx.cs" Class="Software602.SecuSign.TSPWebServiceV3" %>

Identifikace HSM certifikátu (prefix)

Ve výchozím nastavení SecuSign SDK je zapotřebí pro identifikaci HSM certifikátu nastavit ve volání metody Seal prefix HStore:

Příklad:

<CertificateID>HStore:dfa3013e-51c2-6f78-0d1b-e66c22ff815b</CertificateID>

Aby volající nemusel prefix HStore ve volání metody Seal specifikovat, je možné tento nastavit pomocí konfiguračního klíče:

<add key="Seal_DefaultToQStore" value="true"/>

Důvěryhodné prostředí

V důvěryhodném prostředí, kdy služby SecuSign SDK bude využívat důvěryhodná aplikace, např. spisová služba s vlastní databází uživatelů, je možné v konfiguračním souboru webové služby WebService\Web.config do elementu <appSettings> nastavit:

<add key="TrustUserID" value="true"/>

V takovém případě se předpokládá, že uživatele již autentizovala (ověřila) volající důvěryhodná aplikace, a webová služba SecuSign tak volající aplikaci důvěřuje předané „ID“ uživatele.

Nutnou podmínkou při opečetění dokumentu pro uživatele s vlastním ID je, aby jeho ID bylo nastaveno již při generování certifikátu Vzdálené pečeti v HSM.

Toto nastavení má vyšší nároky na zabezpečení komunikace mezi volající aplikací a webovou službou SecuSign SDK. Komunikaci je zapotřebí zabezpečit klientským certifikátem (viz AuthCertHash).

Ověřování uživatelů

V rámci služeb vzdáleného podepisování lze uživatele ověřovat pomocí 602 ID, pomocí Sofa, SSO přihlášením, případně načtením autentizačního certifikátu k TSA serveru.

Ověření uživatelů pomocí 602 ID

Ověření přístupu uživatelů skrze jejich 602 ID účty je výchozím nastavením služby Vzdáleného podepisování.

Pro všechny operace (metody) webových služeb SecuSign, vyjma Seal/SealEx pro Vzdálené pečetění, se definuje pomocí konfiguračního klíče:

<add key="VerifyUsers" value="true" />

Pokud klíč VerifyUsers = true, musí být nastaven klíč VerifyUsersInSofa pro 602ID na hodnotu false.

<add key="VerifyUsersInSofa" value="false" />

Pro časové razítko k podpisu je nutné, aby se uživatel vždy autentizoval svým 602 ID účtem. K tomu slouží výchozí konfigurační klíč:

<add key="VerifyUsersOfTSA" value="true" />

Ověření uživatelů pomocí Sofa

Ověření přístupu uživatelů skrze jejich Sofa účty je výchozím nastavením služby Vzdáleného podepisování.

Pro všechny operace (metody) webových služeb SecuSign, vyjma Seal/SealEx pro Vzdálené pečetění, se definuje pomocí konfiguračního klíče:

<add key="VerifyUsers" value="true" />

Pokud klíč VerifyUsers = true musí být nastaven klíč VerifyUsersInSofa pro Sofa na hodnotu true.

<add key="VerifyUsersInSofa" value="true" />

Pro časové razítko k podpisu je nutné, aby se uživatel vždy autentizoval svým Sofa účtem. K tomu slouží výchozí konfigurační klíč:

<add key="VerifyUsersOfTSA" value="true" />

Ověření uživatelů SSO přihlášením (AD/AAD)

Ověření přístupu na základě SSO přihlášení uživatele v Active Directory, popř. Microsoft Entra, je vedlejším nastavením služby Vzdáleného podepisování.

Pro tento způsob, který je dostupný od verze 2.1.8096.0307, je zapotřebí provést několik úkonů, a to jak na straně klientského SecuSign SDK serveru, tak i na serverové části HSM WS.

Na klientském SecuSign SDK serveru:

  • Ve webové službě SecuSign definuje konfigurační klíč <add key="VerifySSO" value="true" />.

    • zároveň nesmí být nastaven žádný z konfiguračních klíčů: VerifyUsers, VerifyUsersOfTSA, TrustUserID.

  • U aplikace SecuSign ve Správci IIS se povolí Windows autentizace a zároveň zakáže autentizace anonymní.

Ohledně nastavení serverové části HSM WS, kterou zajišťuje operátor HSM Software602 a.s., kontaktujte svého projektového manažera.

Načtení autentizačního certifikátu k TSA serveru

Možnost načtení z osobního úložiště uživatele pro TSA server. Pro zprovoznění této konfigurace je nutné importovat certifikát PDF/P12 pro autentizaci do úložiště uživatele Windows.

V rámci rozšíření byla rozšířena konfigurace o možnost přidat autentizační certifikát z osobního úložiště pomocí klíčů:

  • TSA_CertHash= hodnota otisku

  • TSA_URL = adresa TSA služby

Dále je třeba v IIS nastavit uživatele pro spouštění aplikačního poolu služby v IIS. Poté by mělo být funkční volání podpisu s časovým razítkem z nastaveného serveru.

Ověření funkčnosti

Předpoklady pro ověření funkčnosti:

  • Uživatel se autentizoval k webové službě SecuSign SDK.

  • Identifikátor podpisového certifikátu (CertificateID) byl volající aplikací získán v metodě ListCerts.

  • Heslo k podpisovému certifikátu (PrivateKeyPIN) zadal uživatel a volající aplikace ho předává v metodě Seal / SealEx / SignHash.

Funkčnost webových služeb SecuSign SDK pro službu SecuSign Vzdálené podepisování lze ověřit těmito způsoby:

Pokud není k dispozici vlastní .NET/Java aplikace, lze využít open source projektu (aplikaci) SoapUI.

Po stažení, instalaci a spuštění aplikace SoapUI je třeba přes menu File > New Soap Project vlastní projekt pojmenovat a importovat webové definice služeb (WSDL). Ty lze získat z adresy webové služby SecuSign SDK, např. http://localhost/secusign/default.asmx?wsdl resp. https://domena/secusign/default.asmx?wsdl.

Po importu rozklikněte pojmenovaný projekt > TSPWebServiceSoap > metodu Seal.

Do již vytvořeného, nebo nového požadavku (pravé tlačítko na Seal > New request), vložte následující XML:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://software602.com/secusign/">
   <soapenv:Header/>
   <soapenv:Body>
      <sec:Seal>
         <sec:FileName>TestDocument.pdf</sec:FileName>
         <sec:Input>Base64Binary</sec:Input>
         <sec:FileType>PDF</sec:FileType>
         <!--Optional:-->
         <sec:CertificateID>dfa3013e-51c2-6f78-0d1b-e66c22ff815b</sec:CertificateID>
         <!--Optional:-->
         <sec:PrivateKeyPIN>679854<sec:PrivateKeyPIN>
         <!--Optional:-->
         <sec:SignatureType>DEFAULT</sec:SignatureType>
         <!--Optional:-->
         <sec:Params/>
      </sec:Seal>
   </soapenv:Body>
</soapenv:Envelope>

Místo Base64Binary v <sec:Input>…</sec:Input> přes pravé tlačítko > Insert file as Base64 vložte libovolný PDF soubor z disku.

Pokud ověření funkčnosti služby SecuSign (Vzdáleného podepisování) pomocí výše uvedeného postupu nebylo úspěšné, zkontrolujte tato konfigurační nastavení SecuSign SDK uvedená v následujících čtyřech kapitolách.

Webová služba

Je povolen (odkomentován) klíč:

<add key="Seal_DefaultToQStore" value="true"/>

Odchozí komunikace

Je povolena odchozí komunikace odpovídající backendové prostředí podle kapitoly Prostupy a prostředí a v případě nutnosti komunikace SecuSign SDK serveru do internetu přes proxy server je provedena konfigurace podle kapitoly Proxy server.

Licenční certifikát

Viz kapitola Licenční certifikát.

Autentizační certifikát

V případě potřeby kontaktujte podporu Software602 a.s. – projektového či obchodního manažera.

Podpis s potvrzením v 602Key

Vzdálený osobní certifikát ve kvalifikovaném prostředku (HSM) služby Vzdáleného podepisování lze vedle zabezpečení heslem zabezpečit ještě druhým faktorem. Tím může být potvrzování přes mobilní aplikaci 602®Key.

Uživatel nastaví způsob potvrzování ve správcovské aplikaci – typicky Sofa.

V případě, že je u certifikátu nastaveno zabezpečení 602Key (hodnota vrácená v parametru AuthMode metody ListCerts2, viz Technická příručka k webovým službám a .NET rozhraní), pak při podepsání certifikátem s tímto zabezpečením je zapotřebí ve volající aplikaci zobrazit dialog, který informuje uživatele o nutnosti potvrzení v mobilní aplikaci 602®Key, a s vhodným timeout (např. 1 minuta) vyčkat na odpověď služby.

Pro zprovoznění potvrzování podpisu pomocí 602Key je potřebné mít v SDK nastavenou adresu webové služby HSM WS v konfiguraci webové služby (WebService\Web.config) klíčem:
  • Produkční prostředí:

    <add key="HSM_WS_URL" value="https://rsmint.secusign.cz/default.asmx"/>
  • Testovací prostředí

    <add key="HSM_WS_URL" value="https://rsminttest.secusign.cz/default.asmx"/>

Ve zvoleném umístění vytvořit soubor secusign.properties, který bude obsahovat klíče s URL adresou HSM WS služby a jejího WSDL (na daném prostředí):

  • Produkční prostředí

    HSM_WS_URI=https://rsmint.secusign.cz/default.asmx
    
    HSM_WS_WSDL_URI=https://rsmint.secusign.cz/default.asmx?WSDL
  • Testovací prostředí

    HSM_WS_URI=https://rsminttest.secusign.cz/default.asmx
    
    HSM_WS_WSDL_URI=https://rsminttest.secusign.cz/default.asmx?WSDL