SSO Setup
Tensoras.ai supports Single Sign-On (SSO) via a standalone SAML 2.0 Service Provider, enabling your team to authenticate using your existing identity provider. SSO is available on Enterprise plans.
Overview
With SSO enabled, members of your organization sign in through your identity provider (IdP) instead of using email and password. Tensoras supports SAML 2.0 for SSO connections.
Supported Identity Providers
Tensoras SSO works with any SAML 2.0-compatible provider, including:
- Okta
- Microsoft Entra ID (Azure AD)
- Google Workspace
- OneLogin
- JumpCloud
- PingIdentity
- Custom SAML providers
SP Metadata
When configuring your identity provider, you will need the following values from Tensoras:
| Field | Value |
|---|---|
| Entity ID (Audience URI) | https://cloud.tensoras.ai/api/auth/saml/metadata |
| ACS URL (Assertion Consumer Service URL) | https://cloud.tensoras.ai/api/auth/saml/callback |
| SP Metadata URL | https://cloud.tensoras.ai/api/auth/saml/metadata |
You can also download the SP metadata XML directly from the metadata URL.
Setup Steps
Step 1: Enable SSO in Console Settings
- Log in to cloud.tensoras.ai as an organization admin.
- Navigate to Settings > Security.
- Click Enable SSO.
- You will be prompted to enter the following values from your identity provider:
- IdP Entity ID — the entity ID of your identity provider
- SSO URL — the single sign-on URL where SAML requests are sent
- Certificate — the X.509 signing certificate from your identity provider (PEM format)
Note: Keep the SP metadata values from the table above handy. You will need them when configuring your identity provider in the next step.
Step 2: Configure Your Identity Provider
Okta
- In the Okta Admin Console, go to Applications > Create App Integration.
- Select SAML 2.0 and click Next.
- Enter the following:
- Single sign-on URL:
https://cloud.tensoras.ai/api/auth/saml/callback - Audience URI (SP Entity ID):
https://cloud.tensoras.ai/api/auth/saml/metadata - Name ID format:
EmailAddress - Application username:
Email
- Single sign-on URL:
- Under Attribute Statements, add:
email->user.emailfirstName->user.firstNamelastName->user.lastName
- Click Next, then Finish.
- Assign the application to users or groups in Okta.
- From the Sign On tab, copy the IdP Entity ID, SSO URL, and download the X.509 Certificate.
Microsoft Entra ID (Azure AD)
- In the Azure portal, go to Microsoft Entra ID > Enterprise Applications > New Application.
- Click Create your own application, name it “Tensoras”, and select Integrate any other application.
- Go to Single sign-on > SAML.
- Under Basic SAML Configuration, set:
- Identifier (Entity ID):
https://cloud.tensoras.ai/api/auth/saml/metadata - Reply URL (Assertion Consumer Service URL):
https://cloud.tensoras.ai/api/auth/saml/callback
- Identifier (Entity ID):
- Under Attributes & Claims, verify that the
emailaddressclaim is mapped. - Download the Certificate (Base64) and copy the Login URL and Azure AD Identifier from the SAML configuration page.
- Assign users or groups to the application.
Google Workspace
- In the Google Admin Console, go to Apps > Web and mobile apps > Add App > Add custom SAML app.
- Name the app “Tensoras” and click Continue.
- Copy the SSO URL, Entity ID, and Certificate from Google — you will paste these into Tensoras in Step 3.
- Set the ACS URL to
https://cloud.tensoras.ai/api/auth/saml/callbackand the Entity ID tohttps://cloud.tensoras.ai/api/auth/saml/metadata. - Add attribute mappings:
email->Basic Information > Primary emailfirstName->Basic Information > First namelastName->Basic Information > Last name
- Click Finish and turn on the app for your organizational units.
Step 3: Complete the Connection in Tensoras
- Return to Settings > Security in the Tensoras Console.
- Enter the IdP Entity ID, SSO URL, and Certificate you collected from your identity provider.
- Click Save Connection.
- The connection status should change to Active.
Step 4: Test the Connection
- Click Test Connection in the Tensoras Console.
- You will be redirected to your identity provider’s login page.
- After authenticating, you should be redirected back to Tensoras and signed in.
- If the test fails, verify that:
- The ACS URL and Entity ID are entered correctly in your IdP
- The user you are testing with is assigned to the Tensoras application in your IdP
- Attribute mappings include
email
How SSO Login Works
Once SSO is enabled and tested:
- Users navigate to cloud.tensoras.ai and enter their email address.
- Tensoras detects that their email domain has SSO configured and redirects them to the IdP.
- The user authenticates with the IdP.
- The IdP sends a SAML assertion back to the ACS URL.
- Tensoras validates the assertion, creates or updates the user account, and signs them in.
Note: When SSO is enabled, password-based login is disabled for all users in your organization. Organization admins retain the ability to log in with email and password as a fallback.
Enforcing SSO
By default, SSO is optional — users can still log in with email and password. To require SSO for all non-admin users:
- Navigate to Settings > Security.
- Enable Enforce SSO.
- All non-admin users will be required to authenticate through your identity provider.
SCIM Provisioning
SCIM (System for Cross-domain Identity Management) provisioning allows you to automatically create, update, and deactivate Tensoras user accounts from your identity provider.
Enabling SCIM
- Navigate to Settings > Security in the Tensoras Console.
- Under SCIM Provisioning, click Enable SCIM.
- A SCIM Bearer Token will be generated. Copy it immediately — it will only be shown once.
- The SCIM Base URL is displayed:
https://cloud.tensoras.ai/api/scim/v2
Configuring Your IdP for SCIM
In your identity provider, create a SCIM integration using:
| Field | Value |
|---|---|
| SCIM Base URL | https://cloud.tensoras.ai/api/scim/v2 |
| Authentication | Bearer Token (use the token generated above) |
SCIM Endpoints
The following SCIM 2.0 endpoints are available:
| Endpoint | Description |
|---|---|
GET /api/scim/v2/ServiceProviderConfig | Returns the SCIM service provider configuration and supported capabilities |
GET /api/scim/v2/Users | List all provisioned users |
POST /api/scim/v2/Users | Create a new user |
GET /api/scim/v2/Users/:id | Get a specific user |
PUT /api/scim/v2/Users/:id | Replace a user (full update) |
PATCH /api/scim/v2/Users/:id | Update specific user attributes |
DELETE /api/scim/v2/Users/:id | Deactivate a user |
GET /api/scim/v2/Groups | List all groups |
POST /api/scim/v2/Groups | Create a new group |
GET /api/scim/v2/Groups/:id | Get a specific group |
PUT /api/scim/v2/Groups/:id | Replace a group |
PATCH /api/scim/v2/Groups/:id | Update group membership |
DELETE /api/scim/v2/Groups/:id | Delete a group |
Token Management
- To regenerate a SCIM token, go to Settings > Security > SCIM Provisioning and click Regenerate Token. The previous token will be immediately invalidated.
- SCIM tokens do not expire automatically. Rotate them on a regular cadence (e.g., every 90 days) as a security best practice.
Troubleshooting
| Problem | Solution |
|---|---|
| ”SSO connection not found” | Verify the email domain matches the domain configured in your SSO connection |
| Redirect loop after login | Check that the ACS URL in your IdP matches https://cloud.tensoras.ai/api/auth/saml/callback exactly (no trailing slash) |
| User attributes missing | Verify attribute mappings in your IdP include email, firstName, and lastName |
| ”Invalid SAML response” | Ensure your IdP’s signing certificate has not expired and matches the certificate entered in Tensoras |
| Users cannot access Tensoras after IdP login | Confirm the user is assigned to the Tensoras application in your IdP |
| SCIM provisioning not syncing | Verify the SCIM Base URL and Bearer Token are entered correctly in your IdP |
Next Steps
- Authentication — Console authentication and API key management
- Billing — Enterprise plan pricing