Der eigentliche Umfang der API sind lediglich zwei Klassen mit Hilfe dessen sich die Zwei-Faktor-Authentifizierung (kurz 2FA) realisieren lässt:
SecSignIDAPI: die Klasse beinhaltet alle Funktionen zum Er- und Abfragen einer sogenannten Authentifizierungs-Session
AuthSession: die Klasse beinhaltet alle Informationen einer sogenannten Authentifizierungs-Session (kurz eben AuthSession)
SecSignIDApi.nodejs.js – Die SecSign ID Node.js Api. Die Datei enthält das Modul SecSignIDApi welches zwei Klassen enthält: SecSignIDApi und AuthSession
secsignid-example.js – Ein kleines Beispiel wie serverseitig eine Authentifizierungs-Sitzung erfragt und überprüft wird.
secsignid-server.js – Ein Beispielserver basierend auf dem Node.js framework. Der Webserver akzeptiert und leitet Anfragen an den SecSign ID Server weiter. Die erfragten und überprüften Daten der Authentifizierungs-Sitzung werden an den Browser weitergeleitet.
web-example/index.html – html Seite, welche vom Webserver Beispiel genutzt wird.
web-example/access-pass.html – html Seite, welche vom Webserver Beispiel genutzt wird.
web-example/login-success.html – html Seite, welche vom Webserver Beispiel genutzt wird.
Laden Sie die SecSign ID Node.js API (SecSignIDApi.nodejs.js) herunter und fügen Sie sie ihrem Node.js-Projekt hinzu, beziehungsweise binden Sie sie in die entsprechenden Dateien ein.
// include SecSign ID Api for node.js var SecSignIDApi = require('./SecSignIDApi.nodejs.js');
Fordern Sie vom ID Server eine neue Sitzung (Authentifizierungs-Session) an. Um eine Sitzung anzufordern muss der Name bzw. die SecSign ID als auch der Name der Webseite, Webdienstes oder des Node.js-Projektes zum Server geschickt werden. Der Name der Webseite bzw. Webdienstes wird dem Nutzer auf dem Smartphone angezeigt. Eine Authentifizierungs-Session besteht aus einer Session-ID, der SecSign ID sowie einem sogenannten ‚Access Pass‘. Die Klasse für die Session heißt ‚AuthSession‘. Der Access Pass umfasst eine Base64 kodierte PNG-Grafik. Diese muss dem Nutzer angezeigt werden. Die gleiche Grafik wird dem Nutzer auf seinem Smartphone angezeigt und über den Vergleich wird die Sitzung auf dem Smartphone angenommen.
// this auth session object will encapsulate all required data such as request id, authentication session id and the secsign id var authSession = null; // example for whom an auth session could be requested. // the value for secsignid should be your SecSign ID which you have created before. var authenticationSessionFor = { "secsignid" : "zoidberg", // the secsign id itself "servicename" : "Node.js test", // a name which will be shown in the push notification "serviceaddress" : "localhost" // an address which is shown at top in the app, when user has to pick the correct access pass }; // start by requesting an authentication session secSignIDApi.requestAuthSession(authenticationSessionFor, receivedAuthSessionCallback);
Nachdem eine Sitzung (Authentisierungs-Session) vom Server angefordert wurde, muss dem Nutzer in z.B. der Webseite der Access Pass angezeigt werden. Der Access Pass besteht aus einem Base64-kodierten PNG-Bild. Der Nutzer vergleicht das angezeigte Bild mit denen aus seinem Smartphone und bestätigt über die Auswahl des richtigen Symbols die Sitzung.
Für Webseiten gilt dabei, dass diese Sitzungsinformationen zwischengespeichert werden müssen, um später den Status der Sitzung abzufragen. In Webseiten kann dies mittels Formularfeldern geschehen. Aus dem Beispiel sind die notwendigen Informationen ersichtlich, die benötigt werden, um später den Status der Sitzung abzufragen.
// call back function for the call of secSignIDApi.requestAuthSession(...) var receivedAuthSessionCallback = function(authSessionObj){ if(authSessionObj.error){ console.log("Error " + authSessionObj.errorcode + " : " + authSessionObj.errormsg); } else { // received an authentication session // sent data is an url encoded parameter list: authsessionid=-429097454724893700&servicename=Node.js test&secsignid=samplesecsignid&authsessionstate=1&serviceaddress=localhost&requestid=..... // when data was parsed, it looks like: // { // secsignid: 'zoidberg', // requestid: 'F2C5F138E72008AD0ABCC2E83ACCD7B71B415FF58DA35DEAA5AA79D83B939246', // authsessionid: '-8337412603900330717', // authsessionstate: '1', // servicename: 'Node.js test', // serviceaddress: 'localhost', // authsessionicondata: 'iVBORw0KGgoA ... MAAAAABJRU5Er', // } // again, this is just an example so you know that you will get a hashmap/object or an associative array. // // the authentication session icon data must be shown to user e.g. by sending it back to the caller or the website. // to check the authentication state the request id and the authentication session is needed. // therefor the auth session object must be stored by sending it to the browser, so it could be posted back, by storing it in a session object or somewhere else // secSignIDApi.log("received auth session: ", authSessionObj); // create an authentication object. this stores the data about secsign id, request id and auth session id authSession = new SecSignIDApi.AuthSession(authSessionObj); // secSignIDApi.getAuthSessionState(authSession); // secSignIDApi.getAuthSessionState(authSessionObj); secSignIDApi.getAuthSessionState({ "secsignid" : authSessionObj.secsignid, "requestid" : authSessionObj.requestid, "authsessionid" : authSessionObj.authsessionid }, receivedAuthSessionStateCallback); } };
Die vom Server angeforderte Sitzung kann verschiedene Zustände annehmen. Sobald die Sitzung vom Server angefragt wurde, hat sie den Status ‚Pending‘. Sobald der Nutzer auf seinem Smartphone die Session bestätigen möchte, bekommt die Sitzung den Status ‚Fetched‘. Akzeptiert der Nutzer durch Auswahl des richtigen Symbols die Sitzung, nimmt sie den Status ‚Authenticated‘ an.
Weiterer Status kann ‚Denied‘, ‚Canceled‘, ‚Expired‘ sowie ‚Suspended‘ sein. Eine weitergehende Erklärung kann den Kommentaren API entnommen werden.
Auf das Akzeptieren (‚Authenticated‘) oder Ablehnen (‚Denied‘) der Sitzung durch den Nutzer muss reagiert werden. Dies kann entweder durch Aktion des Nutzer geschehen, dass z.B. mittels Schaltflächen das Formular zum Server geschickt wird oder über Polling. Erhält man den Status vom Server, kann darauf reagiert werden. Die Sitzung kann entweder akzeptiert, abgelehnt oder im Schwebezustand (‚Pending‘) sein.
// call back function for the call of secSignIDApi.getAuthSessionState(...) // var receivedAuthSessionStateCallback = function(authSessionObj){ if(authSessionObj.error){ console.log("Error " + authSessionObj.errorcode + " : " + authSessionObj.errormsg); } else { // the received parsed data: // { // authsessionid: '-6928134574892437226', // secsignid: 'local', // authsessionstate: '1' // } secSignIDApi.log("auth session state: ", authSessionObj); // check which state the session has // PENDING, EXPIRED, AUTHENTICATED, DENIED, SUSPENDED, CANCELED, FETCHED, INVALID, NOSTATE if(authSessionObj.authsessionstate == SecSignIDApi.AuthSession.PENDING){ console.log("the authentication session is pending"); } if(authSessionObj.authsessionstate == SecSignIDApi.AuthSession.AUTHENTICATED){ //release authSession and log user in secSignIDApi.releaseAuthSession(authSession, userIsLoggedInCallback); } if(authSessionObj.authsessionstate == SecSignIDApi.AuthSession.Denied){ console.log("the authentication session was denied"); // cancel session secSignIDApi.cancelAuthSession(authSession, canceledAuthSessionCallback); } // store the new state in auth session object authSession.setState(authSessionObj.authsessionstate); } };
Soll vom Client aus die Sitzung abgebrochen werden, kann dies über die Funktion ‚cancelAuthSession‘ erfolgen.
// call back function for the call of secSignIDApi.cancelAuthSession(...) var canceledAuthSessionCallback = function(authSessionObj){ if(authSessionObj.error){ console.log("Error " + authSessionObj.errorcode + " : " + authSessionObj.errormsg); } else { // the received parsed data: // { // authsessionid: '-6928134574892437226', // authsessionstate: '6' // } secSignIDApi.log("canceled auth session: ", authSessionObj); } };
Über ‚SecSignIDApi.nodejs.js‘ läuft die Kommunikation mit dem ID-Server. SecSignIDApi-Objekte müssen nicht speziell initialisiert werden. Siehe das Beispiel unter 2)
Die Methode zum Erfragen einer Sitzung erwartet als Parameter die SecSign ID, einen Namen der Webseite oder des Node.js-Projektes sowie eine IP-Adresse bzw die URL der Webseite. Als Rückgabewert erhält man ein AuthSession-Objekt.
Alle weiteren Funktionen der SecSign ID Api erwarten als Parameter ein gültiges AuthSession-Objekt.
Die Funktionen sind:
Wir haben eine stetig wachsende Liste an APIs und Plugins um die SecSign ID Zwei-Faktor Authentifizierung einfach und schnell in jedes Projekt zu integrieren.
Wir bieten nicht nur APIs in zahlreichen Programmiersprachen, sondern auch Plugins für CMS, Server und VPN Umgebungen, oAuth2 und zahlreiche mehr. Die Plugins nutzen unsere APIs und bieten zusätzliche Funktionen, zum Beispiel Nutzer Management, einfache und native Installation, Logging oder die Integration in Firewalls oder Active Directories.
Das JIRA Plugin beispielsweise nutzt die JAVA-API. Die PHP-API und JS-API wird von WordPress, Joomla, Drupal, Typo3 und vielen anderen genutzt. Die ASP.net/C#-API wird für die Windows und Cisco VPN genutzt und die C-API findet Verwendung um Unix SSH Services zu schützen. Die Objective-C API wird für unsere AppleTV und iPhone und iPad Apps genutzt.
Sie können die SecSign ID Zwei-Faktor Authentifizierung und den Zwei-Faktor Login durch eine einfach Integration des Plugins in Ihre Website oder Ihre Testumgebung kennenlernen. Oder testen Sie den Login auf unserer Website, ohne sich vorher zu registrieren. Sie haben bereits eine SecSign ID oder hätten gerne eine? Loggen Sie sich jetzt ein und nutzen Sie das Portal oder registrieren Sie sich ganz unkompliziert.
Erfahren Sie selbst, wie schnell und unkompliziert der Login Prozess mit der Challenge-Response Authentifizierung mit 2048-bit Schlüsselpaaren ist. Sie brauchen keine Passwörter, und es werden keine vertraulichen Logindaten übertragen. Einfache Integration und unkomplizierte Nutzung.
Für mehr Informationen zum patentierten SafeKey Verfahren finden Sie hier.
Falls Sie eine API für eine Programmiersprache vermissen kontaktieren Sie uns unverbindlich. Falls Sie Hilfe mit der Integration in ein existierendes System brauchen oder kein passendes Plugin für Ihr Content Management System finden, kontaktieren Sie unser Support Team und wir helfen Ihnen gerne weiter.
Die Inhouse Installation der SecSign ID bietet Ihnen die Flexibilität, sich mit Ihren bevorzugten Server, Services und Geräten zu verbinden. Passen Sie die SecSign ID Ihrer Unternehmensmarke an!
Unsere Lösungen lassen sich leicht anpassen: Wählen Sie zwischen der durch uns betriebenen SecSign Cloud oder betreiben Sie selber den SecSign Authentifizierungsserver Inhouse oder in einem Rechenzentrum Ihrer Wahl. Mehr zum Inhouse Zwei-Faktor Authentifizierungsserver
Wir passen die App an ihre Unternehmens Look-and-Feel an. Zwei-Faktor Authentifizierung angepasst an Ihre Bedürfnisse, für Ihre Kunden.
Integrieren Sie die SecSign Zwei-Faktor Authentifizierung in existierende Apps mit unserem SDK. Es könnte nicht einfacher gehen.
Nutzen sie den Zwei-Faktor Authentifizierungsserver zum Schutz Ihres Active Directory/LDAP. Ihr individuelles Identity and Access Management System, beispielsweise mit verpflichtenden Updates und zahlreichen Sicherheitseinstellungen.
Integration in sämtliche Login-Umgebungen: Web, Local, VPN, Remote Desktop, Mobile Logins und viele mehr.
Komplexe Integrationen gehören der Vergangenheit an: SecSign bietet Ihnen Plugins für nahezu alle Umgebungen.
Würden Sie gerne mehr über unsere innovativen und hochsicheren Lösungen zum Schutz von Nutzerkonten und empfindlichen Daten erfahren?
Nutzen Sie unser Kontaktformular und ein SecSign Kundenbetreuer wird innerhalb eines Arbeitstages Kontakt mit Ihnen aufnehmen.
Benötigen Sie Hilfe mit einem existierenden SecSign Account oder einer Produktinstallation? Die häufigsten Fragen haben wir in unseren FAQs zusammengefasst. Sie finden keine Lösung zu Ihrem Problem? Kontaktieren Sie den
Kundensupport
Ich Interessiere mich für