OAuth mit Thereforeâ„¢ |
Scroll |
Authorization Code Grant https://oauth.thereforeonline.com/OAuth/Authorize?tenant=<tenant_name>&client_id=<client_id>&redirect_uri=https%3A%2F%2Foauth2testclient.azurewebsites.net%2F&state=HrjWnIN_kte4ZheGPJWTBQ&scope=Therefore_User%20offline_access&response_type=code
Tenant Name des Therefore-Mandanten (verbindlich)
client_id Die registrierte Client-ID der Anwendung
redirect_uri Wie in der OAuth-Spezifikation definiert angeben
Scopes •Therefore_Read – Nur Lesezugriff •Therefore_User – Zugriff mit Benutzerrechten •offline_access – Anfordern eines Refresher Tokens
response_type Wie in der OAuth-Spezifikation definiert angeben
Beispielanfrage zum Abrufen des Access Tokens
POST https://oauth.thereforeonline.com/OAuth/Token?tenant=NTWare1 Authorization: Basic <hidden> → clientid:clientsecret
Body: code=<auth_code>&redirect_uri=<redirect_uri>&grant_type=authorization_code
Response: { "access_token": "<token>", "token_type": "bearer", "expires_in": 1199, "refresh_token": "<token>" }
Beispielanfrage für einen neuen Access Token mit Refresh Token:
POST https://oauth.thereforeonline.com/OAuth/Token?tenant=NTWare1 Authorization: Basic <hidden> → clientid:clientsecret
Body: refresh_token=<refresh_token>&grant_type=refresh_token
Response: { "access_token": "<token>", "token_type": "bearer", "expires_in": 1199, "refresh_token": "<token>" }
Der ausgestellte OAuth-Token kann dann als Bearer Token (in Auth Header) für alle Web API-Anfragen verwendet werden. In Therefore™ muss OAuth aktiviert sein und der Client muss als gültiger Client hinzugefügt werden: Wenn die Client-Anwendung hier nicht hinzugefügt wird, schlägt die Verbindung fehl, auch wenn der Token sonst gültig ist. Dies ist auch eine einfach Methode, um den Zugriff auf Therefore™ für eine bestimmte Anwendung zu verweigern.
Von OAuth generierte Token können zur Authentifizierung von Therefore™-Benutzern in Therefore™ Web Client, Portal, API und WebAPI 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);
|
---|