Application user (interactive)
This is the typical case when a person is signed in to SuperOffice. Requirements:- Application is interactive/reactive
- Application has UI in SuperOffice
- Users have their own sign-in credentials
- Users have their own options
System user (non-interactive)
All applications that run as background tasks, without user interaction, must receive a system user token and use the system-user flow for interacting with our web services. None of the OpenID Connect flows are supported. The system user has unlimited access to the tenant and is not restricted by functional rights or data rights. Requirements:- The application runs in the background
- The application must bypass the sentry
- No UI elements in SuperOffice
- Runs as a service
PartnerSystemUserService endpoint to exchange a system user token for a system-user ticket.
When used in a SOAP request, the system-user ticket is used as credentials, placed inside each SOAP header as seen in the ContactAgent.GetContactEntity method.
Semi-interactive scenario
Hybrid applications can, as the name suggests, have some UI components inside SuperOffice CRM Online and can operate or be configured on a partner web portal. The majority of applications are hybrids. Applications that use OAuth2/OpenID Connect to authenticate users via the Authorization Code flow, or Native App Flow, do receive a refresh token. The refresh token is (as of this writing) good for as long as the user is authorized to access the application, and can be securely stored on behalf of that user for subsequent API interaction. To use a refresh token, the application must issue a POST request to the tokens endpoint with the following details:- Client ID
- Client secret
- Redirect URI
- Grant type specified as
refresh_token - The actual refresh token
access_token necessary to issue in subsequent REST or SOAP requests.
When used in RESTful requests, the access_token is placed in each request Authorization header using the Bearer prefix.
access_token is placed in each SOAP header.