OneLogin
Configure SURF to authenticate and provision users against OneLogin. This page covers user sign-in via SAML, user and group provisioning via the SCIM API, group sync, and conditional access.
Before you start
| Requirement | Detail |
|---|---|
| OneLogin access | Administrator on the OneLogin admin portal, with rights to add applications and edit security policies |
| SURF access | Administrator on the SURF Admin console |
| From SURF support | The SURF proxy address, if you plan to configure conditional access |
Two OneLogin applications are involved. A SAML Test Connector (IdP) app handles user sign-in. A separate SCIM Provisioner with SAML (SCIM v2 Core) app handles provisioning. They are configured independently.
Step 1: Configure user authentication with SAML
SURF supports SP-initiated SSO, meaning the sign-in flow starts from SURF rather than the OneLogin portal.
In OneLogin
- Navigate to the OneLogin admin console.
- Go to Applications β Add App and search for SAML Test Connector (IdP).
- Click the app to begin configuring it.
- Set the display name, for example
SURF User Login, and upload an app icon if wanted. - Click Save.
- Open the Configuration tab and enter:
| Field | Value |
|---|---|
| ACS (Consumer) URL Validator | https://prod-backend-surfapi.surf-admin.link/api/v1/admin/saml/v2/surf-sp |
| ACS (Consumer) URL | https://prod-backend-surfapi.surf-admin.link/api/v1/admin/saml/v2/login |
- Open the SSO tab, select More Actions in the top right and download the SAML Metadata.
In SURF Admin
- Go to Settings β Integrations and locate the SAML integration.
- Click the gear icon and choose Add integration.
- Upload the XML metadata file downloaded from OneLogin. Entity ID, Single SignOn URL and Public Certificate populate from the file.
- Set Use as Default.
- Click Submit on the SAML2 SSO config.
- Turn the integration on.
Step 2: Provision users with the SCIM API
All SCIM API operations authenticate with a bearer token, which is the SURF company secret.
Retrieve the company secret
- Log in to the SURF Admin console at
https://admin.surf-admin.link/ - Go to Settings β Additional Setup β Company Secret and copy the value.
Create the SCIM app in OneLogin
- Log in to OneLogin as an administrator.
- Go to Applications β Applications and click Add App.
- Search for and select SCIM Provisioner with SAML (SCIM v2 Core).
- Give the app a display name, for example
Surf Security SCIM API, and click Save. - Open the Configuration tab and enter:
| Field | Value |
|---|---|
| SCIM Base URL | https://prod-backend.surf-admin.link/api/v1/admin/scim/v2/ |
| SCIM Bearer Token | The company secret copied above |
- Click Enable on the API connection, then Save.
- Go to Provisioning and tick Enable provisioning.
Assign users for provisioning
- Go to Users β Users and open the user to assign.
- In the user menu, open Applications, click +, select the SCIM app, then Continue and Save.
- Return to the application's Users tab. The provisioning state reads Pending.
- Click Pending and select Approve. The state changes to Provisioned.
- Verify the user appears under SURF Admin β Users and Groups.
Step 3: Sync groups
Group membership is driven by OneLogin roles. The role name becomes the group name in SURF.
- In the SCIM application, open Rules and add a new rule.
- Select Set Groups in SCIM and set the role value to match
.*, so every role is mapped. - Go to Users β Roles, create a new role and assign it to the application.
- When creating users, make sure the email address and username are identical.
- Under Users β Applications, assign each user to a role and to the application.
- Sync the users.
Step 4: Configure conditional access
Restricts sign-in so OneLogin only authenticates users arriving through the SURF proxy.
4.1 Configure the proxy in SURF
- In SURF Admin, go to Policy management β Proxy Access Management.
- Configure the proxy:
| Setting | Notes |
|---|---|
| Hosting | SURF's proxy or Self hosted proxy. If SURF hosts it, the support team supplies the address. |
| Type | Server or PAC file |
| Is Global | Global applies the proxy to all traffic; Not Global applies it only to the URLs selected below |
| Mode | Persistent or Temporary |
| Custom Proxy DNS / IP | The proxy address including port |
- Click Set.
- Under Additional affected URLs, add your OneLogin domain, for example
yourcompany.onelogin.com, so the sign-in flow itself is proxied. - Turn Proxy Access Management ON.
4.2 Create the IP allow list in OneLogin
- Log in to the OneLogin admin console and go to Security β Policies.
- Create a user policy, or edit an existing one. Policies can also be applied per application.
- Open the IP Addresses section.
- Under IP Address Allow List, enter the SURF proxy address. Multiple addresses or ranges are separated by spaces.
- Save the policy.
Reference
| Purpose | Value |
|---|---|
| SCIM Base URL | https://prod-backend.surf-admin.link/api/v1/admin/scim/v2/ |
| SCIM bearer token | SURF Admin β Settings β Additional Setup β Company Secret |
| SAML ACS URL | https://prod-backend-surfapi.surf-admin.link/api/v1/admin/saml/v2/login |
| SAML ACS URL Validator | https://prod-backend-surfapi.surf-admin.link/api/v1/admin/saml/v2/surf-sp |
| SURF integrations page | https://admin.surf-admin.link/app/settings-integrations |
Troubleshooting
| Symptom | Check |
|---|---|
| Users cannot sign in after configuring SAML | No users or groups assigned to the application in OneLogin |
| SCIM connection rejected | Bearer token is not the company secret, or the base URL is missing its trailing slash |
| Users stay Pending | Provisioning requires admin approval. Approve them on the application's Users tab. |
| Groups do not appear in SURF | The Set Groups in SCIM rule is missing, or the role is not assigned to the application |
| User provisions but does not resolve | Email address and username differ on the OneLogin user record |
| Conditional access blocks SURF too | The OneLogin domain was not added to the affected URLs, or the allow list does not match the proxy address |
For anything not covered here, contact the SURF support team.
