The purpose of this page is to help you better understand when to use each Authorization flow, and how the SDKs fit in them. The following scenarios and their possible use cases are listed from the most secure to the least secure.
In this scenario, the entire integration with the Inbenta API lives exclusively in a server side environment. This scenario is developed entirely from scratch and uses the Secret flow for authorization.
This is, by far, the most secure scenario.
The authorization and user process goes like this:
access_token
if needed.
access_token
for the server to store.
access_token
to send requests to other Inbenta API.
Inbenta strongly recommends that you use this scenario when the integration is contained behind a login screen, and some of the data that the API can return is private with different levels of access.
“Hiding” the API use in the server allows you to control who can access your content, set what kind of content they can access, and prevent data leaks.
You should consider this scenario if you need to apply restriction to how your users access the data (such as a VPN, geolocalization restriction, etc.). When you proxy the Inbenta APIs behind the server, it gives you the flexibility to apply any specific restrictions you may need.
This is the only scenario applicable for the Case Management API, because it literally is a “private data with different access levels” scenario as described above.
As there is no API consumption from the browser, it does not make sense to integrate the SDKs in this scenario.
In this scenario, the authorization process happens server side, but the APIs are consumed client side (preferably using the SDK). Only use the Secret flow authorization for the authorization process when you use this scenario.
This is a less secure approach than the previous scenario, but it is far more secure that using only the domain key.
The authorization and user process goes like this:
access_token
to the server (because the SDK does not do that for you).
access_token
if needed.
access_token
for the server to store.
access_token
to the javascript. The JS builds the SDK.
You can implement this scenario when your data is private but without different levels of access, as it provides good security and allows the use of the SDK.
If you plan to use domain keys, but the number of domains exceeds the allowed limits, you could implement this scenario and control which ones of your domains may be authorized through the server against the Inbenta Auth API.
To apply this scenario, build the SDK with the createFromAccessToken method and use the access_token
that the server provides. For more information, see the SDK setup page of your product.
In this scenario, both the authorization and the consumption of the APIs are done in the browser client (preferably using the SDK). This means you can delegate the entire process to the SDKs. This makes it the easiest way to integrate Inbenta.
Because the SDK uses the domain key authorization flow, it is also the least secure of the three scenarios presented here.
The authorization and user process goes like this:
access_token
.
access_token
for the SDK to store in the browser.
access_token
, the SDK performs requests to a specific Inbenta API.
This scenario may fit your needs if your data is private but the integration is contained behind a login screen with a good security level. Remember that this delegates the real security to your own environment.
When all your API instance data is considered public, you may use the domain key flow and the client side integration scenario. This is the fastest way you can integrate Inbenta.
To apply this scenario, build the SDK with the buildWithDomainCredentials method and use the domain key directly. For more information, see the SDK setup page of your product.