Eine der Möglichkeiten, Single Sign-on in iSpring Learn durchzuführen, ist die Verwendung von JSON Web Token (JWT). Es ist ein offener Standard für die Weitergabe von Claims zwischen Parteien in einer Webanwendungsumgebung. Es wird verwendet, um die Identität authentifizierter Benutzer zwischen einer Unternehmenswebseite und iSpring Learn zu verschlüsseln und weiterzugeben. Mit anderen Worten, es bietet eine fließende und sichere Übertragung der Anmeldedaten von Ihrer Webseite zu iSpring Learn.
Panel | ||
---|---|---|
| ||
WT arbeitet mit der mobilen Anwendung. |
Anforderungen
- Zugriff auf Ihr Hosting mit der Rolle Administrator
- Ein iSpring Learn-Konto
- Ein LMS-Benutzer mit der Rolle Kontoadministrator
Um einen Benutzer auf der iSpring Learn-Seite zu authentifizieren, sollte eine JWT-Nachricht die E-Mail-Adresse des Benutzers enthalten. Passwort und andere Benutzerinformationen sind für SSO nicht erforderlich.
Ein vollständiger Link mit einem JSON-Token sieht aus wie folgt:
https://yourcompany.ispringlearn.com/sso/login/jwt?jwt=XXXXXX.YYYYYY.ZZZ
Teile von JWT
Das JWT-Token ist codiert und besteht aus 3 Teilen, die durch Punkte geteilt sind:
XXXXXX ist ein codierter Header
BASE64-codiert, der Informationen über den Token-Typ ("JWT") und den Verschlüsselungsalgorithmus ("HS256") speichert. In der JS-Objektnotation sieht es so aus:Code Block { "Type": "JWT", "ALG": "HS256"}
YYYYYY ist eine codierte Nutzlast
Dies ist der Nachrichtentext des Tokens, das die Benutzer-ID (E-Mail) weitergibt. Es wird auch im BASE64-FORMAT dargestellt. Die saubere JS-Notation sieht wie folgt aus:Code Block { "IAT": 123456789, "JTI": f4as6d5f4as6d54fasd6df4, "ехр": 123456849, "email": "username@yourcompany.com"}
IAT (ausgestellt am)
Speichert die Zeit, zu der dieses Token erstellt wurde.
JTI (JWT ID)
Der Token-Identifikator, der automatisch und codiert ausgegeben wird.
ехр
Ablaufzeit dieses Tokens.
email
E-Mail-Adresse eines Benutzers (oder einer Benutzer-ID), den Sie authentifizieren möchten. Die E-Mail-Adresse eines Benutzers sollte identisch sein auf beiden Ressourcen, Ihrer Webseite und iSpring Learn/
ZZZ ist eine Signatur
Dieser Teil enthält einen Schlüssel zur Verschlüsselung der gesamten Nachricht (alle 3 Teile). Dies sieht folgendermaßen aus:Code Block HMACSHA256(base64UrlEncode(XXXXXX) + "." + base64UrlEncode(YYYYYY), secret)
secret
Dies ist ein kryptografischer Schlüssel, der von beiden Parteien dieses Prozesses verwendet wird, um die Nachricht zu kodieren.
Einrichten von SSO-Parametern
- Melden Sie sich bei Ihrem iSpring Learn-Konto an. Gehen Sie dann zu den SSO-Einstellungen und klicken Sie auf JWT.
Füllen Sie die Formularfelder aus.
Encryption algorithm
Der Algorithmus, der zum Signieren/Verschlüsseln verwendet wird.
Return URL
Die Webadresse einer Seite, an die Benutzer weitergeleitet werden, die die Identitätsauthentifizierung durchlaufen haben.
Security key
Der kryptografische Schlüssel und der geheime Teil des JWT-Tokens.
Identity provider URL
Die Webadresse einer Seite, auf der das JWT-Token generierende Skript gespeichert ist.
Logout URL
Die Webadresse einer Seite, auf der das Skript gespeichert ist, das JWT-Token für die Abmeldung der Benutzer generiert.
- Danach ordnen Sie die Felder in iSpring Learn und Ihrem SSO-Dienst einander zu.
Klicken Sie abschließend auf Aktivieren.
Panel bgColor #eaf4fd Für eine höhere Sicherheitsstufe empfehlen wir die Verwendung des HTTPS-Protokolls anstelle von HTTP.
Wenn Sie JWT in Ihrem iSpring Learn-Konto aktiviert haben und sich aus bestimmten Gründen nicht mit Single Sign-on anmelden können, geben Sie die folgende Webadresse ein: https://yourcompany.ispringlearn.com/login?no_sso. Jetzt melden Sie sich wie gewohnt mit Ihrer Benutzerkennung und Passwort bei dem Konto an.
Verarbeitungslogik
Der gesamte Prozess ist im UML-Zeitablaufdiagramm unten dargestellt:
Autorisierungsbeispiel
Wenn Benutzer noch nicht in der iSpring Learn-Datenbank enthalten sind, werden sie bei der Autorisierung mit JWT automatisch im System hinzugefügt und autorisiert. Das einzige Hindernis für ein automatisches Hinzufügen eines neuen Benutzers kann Ihr Abonnementlimit sein.
Ein weiteres Beispiel für eine automatische Autorisierung ist der Fall, wenn sich Benutzer ohne vorherige Autorisierung auf Ihrer Unternehmenswebseite bei iSpring Learn anmelden. Wenn die JWT-Technologie in Ihrem iSpring Learn-Konto aktiviert ist, werden Benutzer automatisch auf eine entsprechende Seite der Webseite des Identitätsanbieters weitergeleitet: https://www.yourwebsite.com/login-token/.
Nachdem die Benutzerkennung und das Passwort auf der Seite des Identitätsanbieters eingegeben wurden, werden die Benutzer in iSpring Learn autorisiert.
PHP-Code-Beispiele
Authentifizierungsdienstrealisierung (Anmeldung)
Dieser Dienst sollte auf Ihrer Webseite platziert werden. Er authentifiziert einen Benutzer und meldet diesen Benutzer remote auf der iSpring Learn-Seite an. In diesem Beispiel interagiert iSpring Learn LMS mit dem Authentifizierungsdienst. Mögliche Fälle und Ergebnisse:
- Wenn der Benutzer autorisiert ist, leitet das System diesen Benutzer an iSpring Learn weiter.
- Wenn nicht autorisiert, verarbeitet das System das Benutzereingabeformular. Wenn dies erfolgreich ist, leitet das System diesen Benutzer an iSpring Learn weiter.
Ein Beispiel auf GitHub: authentication.php
Verarbeitung Benutzerabmeldeanforderung
iSpring Learn LMS bietet auch die Möglichkeit, einen Benutzer vom System abzumelden. Dieser Dienst sollte auf Ihrer Webseite platziert werden. In diesem Beispiel prüft das Skript eine E-Mail, führt eine Benutzerabmeldung durch und zeigt die entsprechende Nachricht an.
Ein Beispiel auf GitHub: logout.php
Autorisierung ohne JWT
Wenn Sie JWT in Ihrem iSpring Learn-Konto aktiviert haben, sich aber aus irgendeinem Grund nicht mit Single Sign-on anmelden können, geben Sie die folgende Webadresse ein: https://yourcompany.ispringlearn.eu/login?no_jwt=1
Jetzt melden Sie sich wie gewohnt mit Ihrer Benutzerkennung und Passwort bei dem Konto an.