Internal supports a number of different authentication standards for connecting to an API (via HTTP data source).
- Basic Authentication (shared)
- Basic Authentication (individual)
1 - Basic Authentication (shared)
In this method, HTTP requests are sent with one (shared) set of credentials, regardless of who the Internal user may be. Basic authentication details can be provided when you configure your HTTP data source by enabling the checkbox and then providing the username / password.
2 - Basic Authentication (individual)
In this method, HTTP requests are sent with an individual user’s credentials, which are uniquely tied to an Internal user. This can allow you to set up per-user controls on Spaces and simplify access logging. You’ll need to create a new auth provider to set up individual basic authentication.
3 - OAuth
This method uses OAuth as the authentication provider and is also tied to individual Internal users. Like individual basic authentication, this allows you to set up per-user controls on Spaces and simplify access logging. You’ll need to create a new auth provider to set up individual authentication with OAuth.
4 - Custom
Create a custom (multi-step) process to support virtually any kind of API authentication.
Adding a new auth provider
Go to Company Settings -> Auth Providers. Click the “Add Auth Provider” button.
Name your auth provider and select the standard you want to use:
- Basic Authentication
Associate auth provider with function
Next, you’ll want to associate the auth provider with a function. Go to Company Settings -> Data & Functions tab and select a function for which to add an Authorization Provider.
In the resulting Function Editor, select the "Auth" tab, and select the Auth Provider to associate with a specific environment.
Using spaces with authorization
Spaces that utilize data protected by individual authentication will require users to login using their credentials, before that user can access the Space.
Users can access their Profile (via the top-right dropdown menu) to view the status of their logins. They can also log out here - if there are multiple environments, users can select from a dropdown (one credential per environment for each user).