Generic selectors
Exact matches only
Search in title
Search in content

Node.js API

Zwei-Faktor Authentifizierung mit der SecSign ID

Verwenden Sie auf Ihrer Seite die SecSign ID Node.js Zwei-Faktor-Authentifizierung, die Ihnen eine einfache und zugleich hochsichere Benutzeranmeldung mit einem iOS- oder Android-Gerät bietet sowie Desktop-Anwendungen absichert.


Erfahren Sie, warum unsere Zwei-Faktor Authentifizierung die Beste ist und Sie die Sicherheit Ihres Unternehmens upgraden sollten. Für Entwickler haben wirhier Informationen zusammengetragen.

Erfahren Sie mehr über Inhouse-Installationen und Ihre individuelle Firmen-App mit Ihrem Corporate Design.

Downloaden Sie das Plugin kostenlos in der Cloud für bequemen und sicheren Schutz.


Inhaltsverzeichnis

    Das SecSign ID Plugin bietet eine echte Zwei-Faktor-Benutzerauthentifizierung (2FA) auf Ihrer Joomla Seite. 2FA fügt eine zusätzliche Sicherheitsschicht hinzu, indem es das mobile Gerät des Nutzers als zusätzlichen physischen Token mit in die Authentifizierung einbindet. Mehr Informationen zur Zwei-Faktor Authentifizierung gibt es auf unserer Website. Sie finden im Node.js API Archiv neben der API ‚SecSignIDApi.nodejs.js‘ ebenfalls ein voll funktionsfähiges Beispiel zur Node.js Zwei-Faktor-Authentifizierung. Der entsprechende Quelltext wurde auf unserer Github Seite veröffentlicht.

    Fragen? Kontaktieren Sie uns, wenn Sie Hilfe beim Setup des SecSign ID Plugins brauchen oder Ihnen ein Plugin für eine andere Programmierumgebung fehlt.

    1. Das Beispiel aufsetzen

    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)

    1. Laden Sie das SecSign ID Node.js Beispiel Archiv herunter und entpacken Sie es
    2. Installieren Sie Node.js auf Ihrem Computer und öffnen Sie die Konsole oder das Terminal
    3. Wechseln Sie zu dem zuvor entpackten Ordner secsign-nodejsapi und geben Sie node secsignid-server.js ein
    4. Öffnen Sie ein neues Browserfenster und öffnen Sie die URL http://localhost:8080/ um die SecSign ID Zwei-Faktor Authentifizierung testen zu können

    Dateien:

    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.

    2. Integration der API

    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');

    3. Sitzung anfordern

    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);

    4. Anzeigen des Access-Pass und Sichern der Sitzungsparameter

    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.

    1. Request ID: die Request ID ist die ID der aktuell angeforderten Sitzung. Über diese ID werden weitere Abfragen z.B. über den Sitzungs-Status zugeordnet.
    2. SecSign ID: der Name des Nutzers
    3. AuthSession ID: die ID der angeforderten Sitzung.
    4. Service Name:der Name des Projektes bzw. der Webseite.
    5. Service Address: die IP-Adresse bzw. URL des Projektes bzw. der Webseite

    // 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);
    }
    };

    5. Abfrage des Sitzungs-Status

    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);
        }
    };
    

    6. Abbruch der Sitzung

    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);
    	}
    };

    7. Das SecSignIDApi Objekt

    Ü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:

    1. requestAuthSession
    2. getAuthSessionState
    3. releaseAuthSession
    4. cancelAuthSession

    8. Unsere APIS

    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.

    available_apis

    9. Erfahren Sie mehr

    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.

    Ihr eigener ID-Server

    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!

    your_own_id

    Warum sollte ich SecSign nutzen?

    Inhouse oder Cloud Lösungen

    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

    Einfache Anpassung an Ihre Bedürfnisse

    Wir passen die App an ihre Unternehmens Look-and-Feel an. Zwei-Faktor Authentifizierung angepasst an Ihre Bedürfnisse, für Ihre Kunden.

    Anwendungsfertiges SDK

    Integrieren Sie die SecSign Zwei-Faktor Authentifizierung in existierende Apps mit unserem SDK. Es könnte nicht einfacher gehen.

    Unkompliziertes Nutzer-Management

    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.

    Schützen Sie ALLE Logins

    Integration in sämtliche Login-Umgebungen: Web, Local, VPN, Remote Desktop, Mobile Logins und viele mehr.

    Plugins für alle Anwendungsgebiete

    Komplexe Integrationen gehören der Vergangenheit an: SecSign bietet Ihnen Plugins für nahezu alle Umgebungen.

    SecSign 2FA