Identity providers
Connect OneLogin
OneLogin's custom SAML connector asks for more fields than most providers, and two of them — Recipient and ACS URL Validator — are the ones people get wrong. Work through them in order and the connection comes up on the first try.
Before you start
- An organization in Paycux for the customer, with their email domain claimed.
- OneLogin account administrator access.
- The ACS URL and entity ID from the Paycux connection.
- A regular expression escape of the ACS URL for the validator field, which OneLogin requires and which is the most common source of a failed first sign-in.
Add the application
- 1In the OneLogin admin area open Applications, then Add App.
- 2Search for SAML Custom Connector (Advanced) and select it. The basic connector omits fields you will need.
- 3Set the display name and icon, then save. The configuration tabs only appear after the first save.
Fill in the Configuration tab
Four fields carry the connection. Audience and Recipient are usually identical to the entity ID and ACS URL respectively, and the validator is a regular expression that must match the ACS URL exactly.
| Field | Value | Notes |
|---|---|---|
| Audience (EntityID) | Paycux entity ID | Unique per connection |
| Recipient | Paycux ACS URL | Same value as the consumer URL |
| ACS (Consumer) URL Validator | Escaped regex of the ACS URL | Anchored, with dots and slashes escaped |
| ACS (Consumer) URL | Paycux ACS URL | Where the assertion is POSTed |
| SAML nameID format | Keeps the subject readable and stable enough for most estates | |
| SAML signature element | Response | Unless the connection is configured to expect a signed assertion |
1# ACS URL2https://api.paycux.com/sso/saml/acs/conn_01HQZX8N4T34# Validator alanina yazilacak kacisli surum5^https:\/\/api\.paycux\.com\/sso\/saml\/acs\/conn_01HQZX8N4T$
If the validator does not match, OneLogin refuses to send the assertion at all and reports a generic configuration error. When a sign-in fails before the browser ever reaches your ACS URL, this field is where to look first.
Add the parameters
OneLogin calls attributes parameters. Each one needs the include in SAML assertion flag ticked; a parameter without it is stored and never sent, which produces a connection that works but yields nameless users.
| Field name | Value | Flags |
|---|---|---|
| Include in SAML assertion | ||
| firstName | First Name | Include in SAML assertion |
| lastName | Last Name | Include in SAML assertion |
| id | OneLogin ID | Include in SAML assertion |
| groups | User Roles | Include in SAML assertion, if roles depend on them |
Finish the connection in Paycux
- 1Open the SSO tab of the OneLogin application.
- 2Copy the SAML 2.0 Endpoint (HTTP) and the Issuer URL, and view the X.509 certificate.
- 3Paste them into the Paycux connection, or use the Issuer URL to fetch metadata directly if the customer's OneLogin instance exposes it.
- 4Assign yourself under the Users tab or through a role, then run a test sign-in.
- 5Activate the connection once a test profile arrives with the attributes you expect.
Turn on SCIM provisioning
- 1Create a directory in Paycux for the same organization, choose OneLogin SCIM, and copy the endpoint URL and bearer token.
- 2Back in the OneLogin application, return to the Configuration tab and fill in SCIM Base URL and SCIM Bearer Token.
- 3Set the SCIM JSON Template to the default unless you have a reason to change it, then enable the API connection.
- 4On the Provisioning tab, tick Enable provisioning and decide which actions require admin approval. Requiring approval for deletions is a common and sensible choice.
- 5Choose what happens when a user is deleted or suspended in OneLogin: suspend is the safer default for most products.
When it does not work
| Symptom | Usual cause |
|---|---|
| Sign-in fails before reaching your app | The ACS URL Validator regex does not match the ACS URL. |
| Audience mismatch | The Audience field holds another connection's entity ID. |
| Attributes missing from the profile | Parameters exist but Include in SAML assertion was not ticked. |
| User is not in this app | Not assigned directly or through a role. |
| SCIM connection refused | The bearer token was pasted with surrounding whitespace, or into the wrong field. |
| Deletions never arrive | Provisioning actions are held for admin approval and nobody has approved them. |