Konfigurácia autentifikácie SmartWeb aplikácie má nasledovnú štruktúru v súbore smartweb.json
. Príklady konfigurácie sú uvedené nižšie.
{ /* objekt s konfiguráciou autentifikácie používateľov */ "authentication": { "authModes": [ "AUTH_AUTO_LOGON_IN_SESSION", // automatické prihlásenie do D2000 bez zobrazenia prihlasovacej obrazovky "AUTH_CREDENTIALS_IN_SESSION", // autentifikácia mena/hesla k D2000 používateľovi "AUTH_CREDENTIALS_IN_RPC", // autentifikácia mena/hesla cez RPC (aplikačne definovaný používatelia) "AUTH_CERTIFICATE_LOCALLY", // autentifikácia certifikátu k lokálnemu keystoru "AUTH_CERTIFICATE_REMOTELY", // autentifikácia certifikátu cez RPC ku keystoru spravovanému v D2000 ], // definícia D2000 použivateľa na vytvorenie JAPI session // iba pre mód AUTH_AUTO_LOGON_IN_SESSION alebo AUTH_CREDENTIALS_IN_RPC "authSessionUsername": "D2000UserName", // používateľské meno do D2000 "authSessionPassword": "D2000UserPassword", // heslo do D2000 // cesta ku keystore a koreňový certifikát na validáciu klientských certifikátov // iba pre mód AUTH_CERTIFICATE_LOCALLY "keystorePath": "C:\cesta ku keystore\keystore.jks", "caCertificateAlias": "SmartWebUsersCert", // alias koreňového certifikátu v keystore.jks, // definícia autentifikačnej RPC, iba pri zapnutom móde AUTH_CREDENTIALS_IN_RPC "authRpc": { "eventName": "E.SMARTWEB_USER", "interfaceName": "I.XXX", "methodName": "authenticate", "useJava": "false" }, "authRpcParams": [ // poradie parametrov volanej autentifikačnej metódy, povinný je len OUT parameter _OK (BOOL); "USERNAME", "PASSWORD", "CERTIFICATE", "NONE", "_OK" ], // definícia logOn RPC metódy, volaná automaticky po úspešnej autentifikácie, nepovinný OUT parameter _OK (BOOL) identifikuje úspešnosť volania logOn metódy; "logOnRpc": { "eventName": "E.SW_DT_Connect", "interfaceName": "I.XXX", "methodName": "logOn", "useJava": "false" }, "logOnRpcParams": [ // poradie parametrov volanej logOn metódy, povinný je len OUT parameter _OK (BOOL); "USERNAME", "PASSWORD", "CERTIFICATE", "NONE", "_OK" ], "logOutRpc": { "eventName": "E.SW_DT_Connect", "interfaceName": "I.XXX", "methodName": "logOff", "useJava": "false" } } }
Príklady konfigurácie
Jednoduchá autentifikácia cez D2000 používateľov
{ "authentication": { "authModes": [ "AUTH_CREDENTIALS_IN_SESSION" ] } }
Jednoduchá autentifikácia cez aplikačne definovaných používateľov
V nasledujúcej konfigurácii je naviac zaregistrovaná aj "logOn" metóda z dôvodu identifikácie aktuálne prihláseného používateľa vo volaných RPC metódach.
{ "authentication": { "authModes": [ "AUTH_CREDENTIALS_IN_RPC" ], // preddefinované username D2000 používateľa s ktorým sa bude vytvárať session "authSessionUsername": "D2000UserName", // preddefinované heslo D2000 používateľa s ktorým sa bude vytvárať session "authSessionPassword": "D2000UserPassword", // definícia autentifikačnej RPC "authRpc": { "eventName": "E.SW_APPLICATION_AUTH", "methodName": "authenticate" }, "authRpcParams": [ "USERNAME", "PASSWORD", "_OK" ], // definícia logOn RPC metódy "logOnRpc": { "eventName": "E.SW_APPLICATION_AUTH", "methodName": "logOn" }, "logOnRpcParams": [ "USERNAME", "_OK" ] } }
Autentifikácia cez D2000 používateľov a lokálne overovanie klientských certifikátov
Overovanie klientských certifikátov prebieha lokálne v SmartWeb aplikácii. Všetky klientské certifikáty musia byť uložené v keystore pod aliasom identickým s prihlasovacím menom (pozor na case sensitivity) a musia byť podpísané koreňovým certifikátom smenom definovaným v caCertificateAlias
atribúte konfigurácie. Pre úspešnú konfiguráciu potrebné správne nakonfigurovať element authentication
v súbore standalone.xml
aplikačného servera Wildfly. Klientské certifikáty je potrebné generovať podľa postupu popísaného v kapitole Správa klientských certifikátov.
{ "authentication": { "authModes": [ "AUTH_CREDENTIALS_IN_SESSION", "AUTH_CERTIFICATE_LOCALLY" ], // cesta ku keystore s klientskými certifikátmi a koreňovým certifikátom na validáciu klientských certifikátov "keystorePath": "C:\cesta ku keystore\keystore.jks", "caCertificateAlias": "SmartWebUsersCert" // alias koreňového certifikátu v keystore.jks, } }
Autentifikácia cez D2000 používateľov a vzdialené overovanie klientských certifikátov
Overovanie klientských certifikátov prebieha v D2000 volaním autentifikačnej RPC metódy s parametrom, cez ktorý sa pošle Base64 serializovaný certifikát.Pre úspešnú konfiguráciu potrebné správne nakonfigurovať element authentication
v súbore standalone.xml
aplikačného servera Wildfly, kde keystore súbor musí obsahovať koreňový certifikát s ktorým sú podpísané všetky klientské certifikáty.
{ /* objekt s konfiguráciou autentifikácie používateľov */ "authentication": { "authModes": [ "AUTH_CREDENTIALS_IN_SESSION", "AUTH_CERTIFICATE_REMOTELY" ], // definícia autentifikačnej RPC "authRpc": { "eventName": "E.SW_APPLICATION_AUTH", "methodName": "authenticate" }, "authRpcParams": [ "USERNAME", "CERTIFICATE", "_OK" ] } }
Autentifikácia cez aplikačne definovaných používateľov a lokálne overovanie klientských certifikátov
Overovanie klientských certifikátov prebieha lokálne v SmartWeb aplikácii. Všetky klientské certifikáty musia byť uložené v keystore pod aliasom identickým s prihlasovacím menom (pozor na case sensitivity) a musia byť podpísané koreňovým certifikátom smenom definovaným v caCertificateAlias
atribúte konfigurácie. Pre úspešnú konfiguráciu potrebné správne nakonfigurovať element authentication
v súbore standalone.xml
aplikačného servera Wildfly. Klientské certifikáty je potrebné generovať podľa postupu popísaného v kapitole Správa klientských certifikátov. V nasledujúcej konfigurácii je naviac zaregistrovaná aj "logOn" metóda z dôvodu identifikácie aktuálne prihláseného používateľa vo volaných RPC metódach.
{ "authentication": { "authModes": [ "AUTH_CREDENTIALS_IN_RPC", "AUTH_CERTIFICATE_LOCALLY" ], // preddefinované username D2000 používateľa s ktorým sa bude vytvárať session "authSessionUsername": "D2000UserName", // preddefinované heslo D2000 používateľa s ktorým sa bude vytvárať session "authSessionPassword": "D2000UserPassword", // cesta ku keystore s klientskými certifikátmi a koreňovým certifikátom na validáciu klientských certifikátov "keystorePath": "C:\cesta ku keystore\keystore.jks", "caCertificateAlias": "SmartWebUsersCert", // alias koreňového certifikátu v keystore.jks, // definícia autentifikačnej RPC "authRpc": { "eventName": "E.SW_APPLICATION_AUTH", "methodName": "authenticate" }, "authRpcParams": [ "USERNAME", "PASSWORD", "_OK" ], // definícia logOn RPC metódy "logOnRpc": { "eventName": "E.SW_APPLICATION_AUTH", "methodName": "logOn" }, "logOnRpcParams": [ "USERNAME", "_OK" ] } }
Autentifikácia cez aplikačne definovaných používateľov a vzdialené overovanie klientských certifikátov
Overovanie klientských certifikátov prebieha v D2000 volaním autentifikačnej RPC metódy s parametrom, cez ktorý sa pošle Base64 serializovaný certifikát. Pre úspešnú konfiguráciu potrebné správne nakonfigurovať element authentication
v súbore standalone.xml
aplikačného servera Wildfly, kde keystore súbor musí obsahovať koreňový certifikát s ktorým sú podpísané všetky klientské certifikáty. V nasledujúcej konfigurácii je naviac zaregistrovaná aj "logOn" metóda z dôvodu identifikácie aktuálne prihláseného používateľa vo volaných RPC metódach.
{ /* objekt s konfiguráciou autentifikácie používateľov */ "authentication": { "authModes": [ "AUTH_CREDENTIALS_IN_RPC", "AUTH_CERTIFICATE_REMOTELY" ], // preddefinované username D2000 používateľa s ktorým sa bude vytvárať session "authSessionUsername": "D2000UserName", // preddefinované heslo D2000 používateľa s ktorým sa bude vytvárať session "authSessionPassword": "D2000UserPassword", // definícia autentifikačnej RPC "authRpc": { "eventName": "E.SW_APPLICATION_AUTH", "methodName": "authenticate" }, "authRpcParams": [ "USERNAME", "PASSWORD", "CERTIFICATE", "_OK" ], // definícia logOn RPC metódy "logOnRpc": { "eventName": "E.SW_APPLICATION_AUTH", "methodName": "logOn" }, "logOnRpcParams": [ "USERNAME", "_OK" ] } }
Automatická autentifikácia cez preddefinovaného D2000 používateľa bez prihlasovacej obrazovky
{ "authentication": { "authModes": [ "AUTH_AUTO_LOGON_IN_SESSION" ], // preddefinované username D2000 používateľa s ktorým sa bude vytvárať session "authSessionUsername": "D2000UserName", // preddefinované heslo D2000 používateľa s ktorým sa bude vytvárať session "authSessionPassword": "D2000UserPassword" } }