Benutzerdefinierte JWT-Token |
Scroll |
JSON Web Token (JWT) ist ein offener Standard (RFC 7519), der eine kompakte und eigenständige Methode für die sichere Übermittlung von Informationen zwischen Parteien als JSON-Objekt bietet. Diese Informationen sind vertrauenswürdig und können verifiziert werden, weil sie digital signiert sind. JWTs können unter Verwendung von RSA oder ECDSA über einen "Geheimwert" (mit dem HMAC-Algorithmus) oder über ein öffentlich/privates Schlüsselpaar signiert werden.
Obwohl JWTs verschlüsselt werden können, um Geheimhaltung zwischen Parteien zu erzielen, werden wir uns hier auf signierte Token konzentrieren. Signierte Token können die Integrität der in ihnen enthaltenen Ansprüche verifizieren, während verschlüsselte Token diese Ansprüche für andere Parteien unzugänglich machen. Wenn Token über öffentlich/private Schlüsselpaare signiert werden, zertifiziert die Signatur auch, dass nur die Partei mit dem privaten Schlüssel den Token signiert hat.
Um die Integration von Therefore™ in von Kunden bereitgestellte Authentifizierungsinfrastrukturen zu ermöglichen, unterstützt Therefore™ das Deklarieren von Ausstellern benutzerdefinierter JWT-Token. Über diese Funktionalität können Benutzer JWT-Token erstellen und zur Benutzerauthentifizierung an Therefore senden.
Therefore™ unterstützt HS256- und RS256-signierte JWT-Token. Bei HS256 muss ein gemeinsamer Schlüssel in Therefore™ gespeichert werden, damit Therefore den Token nach Zustandekommen einer Verbindung validieren kann. Bei RS256 muss der öffentliche Schlüssel des Zertifikats, das zum Signieren des Tokens verwendet wird, als CER-Datei an Therefore™ hochgeladen werden.
Nutzungsbeispiel: Ein Kunde verfügt bereits über eine Authentifizierungsinfrastruktur oder er möchte das Therefore™-Portal mit seinem eigenen Portal integrieren. Wenn ein Benutzer bereits beim Kundenportal authentifiziert ist, sollte es für ihn nicht erforderlich sein, sich zusätzlich bei Therefore™ zu authentifizieren, um auf diese Weise ein SSO-Benutzererlebnis zwischen verschiedenen Anwendungen zu schaffen. Die Kundenportal-Anwendung kann in diesem Fall einen solchen benutzerdefinierten Token erstellen und diesen verwenden, um den Benutzer mit dem bereitgestellten Benutzerkonto automatisch bei Therefore™ anzumelden. Es ist dann keine zusätzliche Anmeldung erforderlich.
1.Konfiguration im Therefore™ Solution Designer: Die folgenden Informationen müssen in die betreffenden Felder eingegeben werden:
Aussteller-ID: Diese muss der Aussteller-ID im JWT-Token entsprechen, der an Therefore™ gesendet wurde. Name: Die Benutzeroberfläche kann einen beliebigen Namen haben. Dies ist optional. Aktiv: Aktiviert oder deaktiviert einen Kundenaussteller. Geheimwert/Zertifikat: Definieren Sie zur Validierung des Tokens einen gemeinsamen Schlüssel oder laden Sie eine CER-Datei hoch.
2.Nutzung des Azure Key Vault für gemeinsame Geheimwerte konfigurieren:
Wenn Geheimwerte im Azure Key Vault gespeichert werden sollen, müssen dazu die folgenden Registrierungsschlüssel definiert werden:
HEKY_LOCAL_MACHINE\Software\Therefore\Server •KeyVaultAppId •KeyVaultAppSec •KeyVaultBaseUri  Nutzlast des benutzerdefinierten JWT-Tokens: {  "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": "Test AD",  "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress": "testad@therefore.net",  "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname": "ADOS\\testad",  "aud": "<CustomerId>",  "nbf": 1547106872,  "exp": 1547108072,  "urn:oauth:scope": "therefore_user"  "iss":https://testissuer.therefore.net }  aud = Kunden-ID des Therefore-Systems iss = Aussteller-ID, muss der Therefore-Konfiguration entsprechen urn:oauth:scope = Geltungsbereich des Tokens – Werte sind therefore_user (alle Benutzerrechte) oder therefore_read (nur schreibgeschützt)
3.Benutzerdefinierte JWT-Token können in Web Client, Portal, API und WebAPI zur Authentifizierung von Therefore™-Benutzern verwendet werden.
Beispiel (Web Client): https://<server>/TWA/Client/Web/Viewer/Viewer.aspx?docno=349738&ssoToken=<token> https://<server>/TWA/Portal/Portal.aspx?qNo=123&ssoToken=<token>
Beispiel-API: string sToken = "<token>; string sNodeInternal, sNodeFriendly; TheServer s = new TheServer(); s.ConnectBearerToken(TheClientType.CustomApplication, sToken, "", "", "", true, TheConnectMode.NoLicenseMove, out sNodeInternal, out sNodeFriendly);
4.Für einen Token können spezielle Berechtigungen definiert werden. Referenz: Berechtigungen für JWT-Token.
Nutzungstest:
1.Erstellen Sie Test-Token hier: https://jwtbuilder.jamiekurtz.com/ 2.Konfigurieren Sie den Aussteller in Thereforeâ„¢ Solution Designer. 3.Verwenden Sie den Token einer beliebigen der oben beschriebenen Zugriffsoptionen (Web Client, Portal, API, Web API).
|
---|