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"
}
}