Generic selectors
Exact matches only
Search in title
Search in content

C-API

Zwei-Faktor Authentifizierung mit der SecSign ID

Verwenden Sie die SecSign ID Zwei-Faktor-Authentifizierung, die Ihnen eine einfache und zugleich hochsichere Benutzeranmeldung mit einem iOS- oder Android-Gerät bietet sowie Desktopanwendungen 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

    Die SecSign ID Zwei-Faktor Authentifizierung fügt einen zusätzlichen Sicherheitsfaktor zu Ihrer Website hinzu, indem es einen Token verwendet. In diesem Fall ist das physische Token Ihr Smartphone.

    Sie finden im C API Archiv neben der API ‚libsecsignid.c‘ mit dazugehöriger Header-Datei ebenfalls ein voll funktionsfähiges Beispiel zur Zwei-Faktor-Authentifizierung. Darüber hinaus finden Sie alle Quelltexte auf der SecSign GitHub page.

    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. Beispiel aufsetzen

    Vorraussetzungen

    Damit das Programm kompiliert werden kann und fehlerfrei ausgeführt werden kann, müssen folgende Vorraussetzungen erfüllt sein:

    1. Unix Plattform oder Mac
    2. gcc Kompiler
    3. libcurl installiert
    4. Internetverbindung (der SecSignID Server kommuniziert via Port 443)
    Setup

    Laden Sie das SecSign C Beispiel Archiv herunter und entpacken Sie es. Die Bibliothek besteht aus vier Dateien:

    1. Makefile: Wird zum kompilieren der Quelldateien genutzt
    2. ibsecsinid.c: C Bibliothek für die SecSignID Zwei-Faktor Authentifizierung
    3. libsecsinid.h: Zugehörige Header-Datei mit Typdefinitionen und Funktionsprototypen
    4. secsignid_example.c: Beispielprogramm zur Nutzung der SecSign ID

    Der gcc Kompiler und libcurl können zum Beispiel unter Debian wie folgt installiert werden:

    su
    apt-get update
    apt-get install build-essential
    apt-get install curl

    Beim Mac kann der Kompiler gcc und libcurl am einfachsten via Homebrew installiert werden.

    Um die Quellprogramme zu kompilieren, öffnen Sie eine Shell, bzw. das Terminal, wechseln Sie in das entpackte Verzeichnis in dem das C-Script liegt und geben Sie make ein. Das Programm secsignid_example wird erzeugt, welches mittels

    ./secsignid_example

    ausgeführt werden kann.

    2. Integration der API

    Laden Sie die SecSign ID C API herunter und fügen Sie sie ihrem C Projekt hinzu.

    #include "libsecsignid.h"

    Somit können nun alle Funktionen der Bibliothek genutzt werden und die Zwei-Faktor Authentifizierung leicht umgesetzt werden. Beim Kompilieren muss die SecSignID Bibliothek sowie das Flag -lcurl angegeben werden:

     gcc -o prog_with_secsignid prog_with_secsignid_source.c libsecsignid.c -lcurl 

    3. Debug Modus und Logging

    Die Bibliothek hat einen debug Modus, welcher jegliche Schnittstellenkommunikation ausgibt. So kann sicher gestellt werden, ob die Anfragen korrekt gesendet werden und wann nach dem Sitzungsstatus gefragt wird. Um den Debug Modus zu aktivieren, binden Sie die SecSignID API wie oben gezeigt ein und rufen Sie setDebug mit folgenden Parametern auf:

    1. NO = kein Debugging (Standard)
    2. YES = Ausgabe auf StdOut
    3. FILEDEBUG = Ausgabe in Datei

    Der 2. Parameter ist der Pfad zur Debug-Datei.

    #define DEBUGFILEPATH  "secsignid.debug"
    setbuf(stdout, NULL);
    setDebug(FILEDEBUG, DEBUGFILEPATH); 

    Logging ist für Schnittstellenfehler gedacht. Es werden technische Fehler (zum Beispiel falsche Syntax der Parameter) und API Fehler (zum Beispiel nicht gefundener Nutzer) geloggt. Mit Hilfe von setLog kann eingestellt werden, ob alle Fehler ins Syslog oder in eine separate Datei geschrieben werden. Der zweite Parameter gibt dabei den Dateinamen an:

    1. FILELOG = Fehler werden in eine Datei geschrieben, der 2. Parameter ist der Dateiname der Logdatei
    2. SYSLOG = Fehler werden ins Syslog geschrieben, 2. Parameter wird ignoriert, muss aber vorhanden sein
    3. NO = es wird kein Log geschrieben, 2. Parameter wird ignoriert, muss aber vorhanden sein

    #define LOGFILEPATH  "secsignid.log"
    setLog(FILELOG, LOGFILEPATH); 

    4. Eine Sitzung anfordern

    Fordern Sie vom ID Server eine neue Authentifizierungs-Sitzung an. Um eine Sitzung anzufordern muss der Name bzw. die SecSign ID als auch der Name des C-Projektes zum Server geschickt werden. Der Name des Programms wird dem Nutzer auf dem Smartphone angezeigt. Eine Authentifizierungs-Sitzung besteht aus einer Session-ID, der SecSign ID sowie einem Access Pass. 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.

    Wenn es keine Möglichkeit gibt ein Bild anzuzeigen (zum Beispiel bei einer 2-Step Zwei-Faktor Absicherung einer SSH Verbindung), kann der Accesspass auch weggelassen werden. Der Nutzer bekommt dann eine Anfrage auf sein Smartphone gesendet, welche bestätigt oder abgelehnt werden kann – ein Accesspass wird nicht präsentiert. Dieser Fall sollte allerdings nur für 2-Step Authentifizierungsprozesse verwendet werden..

    char *secsignid = "johndoe";
    char *serviceName = "libsecsignidCtest";
    char *serviceAddress = "localhost";
    int showAccessPass = 0; // keinen accesspass anzeigen
    
    struct AuthSession authSession = requestAuthSession(secsignid, serviceName, serviceAddress, showAccessPass); 

    Die Struktur AuthSession beinhaltet nun die vom Server zurück gesendeten Parameter wie die ID der Authentifizierungs-Sitzung, SecSignID, den Accesspass usw. Ab sofort wird bei jeder API-Funktion eine AuthSession übergeben und man erhält eine aktualisierte Version zurück.

    Soll ein AccessPass bestätigt werden, so kann das Base64-kodierten PNG-Bild zum Beispiel mit ImageMagick erzeugt werden. Der Nutzer vergleicht das angezeigte Bild mit denen aus seinem Smartphone und bestätigt über die Auswahl des richtigen Symbols die Sitzung.

    Soll kein Accesspass angezeigt werden, wird trotzdem vom Server das Base64-kodierten PNG-Bild gesendet, welches aber ignoriert werden kann. Der Nutzer kann auf seinem Smartphone den Login nur bestätigen oder ablehnen, sieht aber keinen Accesspass.

    Die Sitzungsinformationen müssen als AuthSession zwischengespeichert werden, um später den Status der Sitzung abzufragen. Die Struktur AuthSession beinhaltet folgende Informationen:

    struct AuthSession {
        char authSessionId[50]; //die ID der angeforderten Sitzung
        char serviceName[50]; //der Name des Services 
        char secSignId[50]; //Name des Nutzers
        char authSessionState; //Status der Authentifizierung
        char serviceAddress[100]; //die IP-Adresse bzw. URL des Projektes
        char requestId[100]; //die ID der Anfrage
        char authSessionIconData[4000]; // Accesspass als Base64 PNG
    }
    

    5. Status der Session abfragen

    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 der SecSignID Server API Dokumentation 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 oder über Polling (kontinuierliches Abfragen des Zustandes durch den Client). Erhält man den Status vom Server, kann darauf entsprechend reagiert werden.

    do {
      authSession = getAuthSessionState(authSession);
      
      //erfolgreiche Authentifizierung
      if(authSession.authSessionState == SECSIGN_ACCEPTED){
        //authSession aktualisieren und Sitzung freigeben
        authSession = releaseAuthSession(authSession);
        // ... weitere Login-Maßnamen ...
        return 1;
      }
      //rejected
      else if(authSession.authSessionState == SECSIGN_DENIED){
        return 0;
      }
    } while (1);

    6. Abbruch der Sitzung

    Soll vom Client aus die Sitzung abgebrochen werden, kann dies über die Funktion ‚cancelAuthSession‘ erfolgen.

    authSession = cancelAuthSessionState(authSession); 

    7. Einsatzmöglichkeiten

    Der große Vorteil der nativen C-API ist der Einsatz in einem PAM (Pluggable Authentication Module). Die SecSignID kann so genutzt werden um SSH Verbindungen oder die Benutzeranmeldung am Unix oder Mac Desktop durch eine 2-Step Zwei-Faktor Authentifizierung abzusichern.

    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