OAuth con Therefore™ |
Scroll |
Concesión de código de autorización 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
Inquilino Nombre del inquilino de Therefore (obligatorio)
client_id Id de cliente registrado de la aplicación
redirect_uri Estado definido en especificación OAuth
Ámbitos •Therefore_Read – acceso de solo lectura •Therefore_User – acceso con permisos de usuario •offline_access – solicitud de un token de actualización
response_type Estado definido en especificación OAuth
Solicitud de ejemplo para obtener el token de acceso
POST https://oauth.thereforeonline.com/OAuth/Token?tenant=NTWare1 Autorización: Básica <oculta> → clientid:clientsecret
Cuerpo: code=<auth_code>&redirect_uri=<redirect_uri>&grant_type=authorization_code
Respuesta: { "access_token": "<token>", "token_type": "bearer", "expires_in": 1199, "refresh_token": "<token>" }
Solicitud de ejemplo de un nuevo token de acceso con token de actualización:
POST https://oauth.thereforeonline.com/OAuth/Token?tenant=NTWare1 Autorización: Básica <oculta> → clientid:clientsecret
Cuerpo: refresh_token=<refresh_token>&grant_type=refresh_token
Respuesta: { "access_token": "<token>", "token_type": "bearer", "expires_in": 1199, "refresh_token": "<token>" }
A continuación, el token OAuth emitido puede utilizarse como token de portador (en encabezado Auth) para todas las solicitudes de la API web. En Therefore™, OAuth debe estar habilitado y el cliente debe añadirse como cliente válido: Si la aplicación cliente no se añade aquí, la conexión fallará aunque el token sea en general válido. Esta es la forma fácil de revocar el acceso a Therefore™ para una aplicación específica.
Los tokens generados por OAuth pueden servir para autenticar usuarios para Therefore™ en el cliente web de Therefore™, Portal, API, WebAPI
Ejemplo (cliente web): https://<server>/TWA/Client/Web/Viewer/Viewer.aspx?docno=349738&ssoToken=<token> https://<server>/TWA/Portal/Portal.aspx?qNo=123&ssoToken=<token>
API de ejemplo: string sToken = "<token>; string sNodeInternal, sNodeFriendly; TheServer s = new TheServer(); s.ConnectBearerToken(TheClientType.CustomApplication, sToken, "", "", "", true, TheConnectMode.NoLicenseMove, out sNodeInternal, out sNodeFriendly);
|
---|