SAML SSO with OneLogin
OneLogin federates through an application built on the SAML Custom Connector (Advanced). There is no KnoxCall entry in the OneLogin catalogue, so you build your own — which is fine, because everything KnoxCall needs is four URLs and a certificate. Before you start- KnoxCall: an Enterprise plan, the owner or admin role, and at least one domain verified for single sign-on — a domain you verified for sending mail is a different proof and does not admit a login.
- OneLogin: an administrator who can create apps and edit certificates (Super User, or an Account Owner).
1. Create the app
OneLogin admin console → Applications → Applications → Add App. Search for SAML Custom Connector (Advanced) and select it. Name it (for exampleKnoxCall), add an icon if you like, and save.
Saving creates the app and opens its tabs: Info, Configuration, Parameters, Rules, SSO, Access, Users, Privileges.
2. Configuration
Replaceacme with your workspace slug throughout. The authoritative copy of every KnoxCall value below is your own metadata document at https://acme.knoxcall.com/saml/acme/metadata — it is public, so fetch it in a browser and read the values off it rather than assembling them by hand.
KnoxCall’s SP entity ID is its metadata URL. That is deliberate and it is what the metadata document says; do not shorten it to the origin, or OneLogin’s audience will not match the one KnoxCall enforces and every assertion will be rejected.
These are the
default connection’s values — the connection every workspace starts with, and the one the /saml/<workspace>/… alias resolves to. If OneLogin is a second identity provider for this workspace, it gets its own connection with its own handle, and its values are /sso/<workspace>/<handle>/{metadata,acs,login,slo} — for a handle of onelogin, https://acme.knoxcall.com/sso/acme/onelogin/acs and its three siblings. Open that connection under Settings → Single sign-on and its Certificates tab lists all five, each with a copy button. See more than one identity provider.
Setting Login URL to the KnoxCall login endpoint makes the OneLogin portal tile an ordinary SP-initiated sign-in, which works with IdP-initiated login switched off. Leave it blank and the tile produces an unsolicited assertion instead, which KnoxCall refuses with
saml_idp_initiated_disabled unless you have deliberately opted in — see IdP-initiated sign-in.3. Parameters
The Parameters tab decides what the assertion carries. It starts with one row,NameID value.
The NameID should be a stable identifier
Open the NameID value row. OneLogin’s default value is Email, and an email changes when a person is renamed — which gives them a second KnoxCall account, because KnoxCall recognises people by their NameID (choosing the NameID). Change the value to OneLogin ID: a number OneLogin assigns, not made from the person’s name or address, so a rename leaves it alone. Keep SAML nameID format on the email-address format from step 2 — that is the format KnoxCall’s sign-in request names, and OneLogin’s own value has to sit under it. Once step 5 is done, run a sign-in from the connection’s Test tab in KnoxCall and read the NameID in the verdict: a number means you are done; an address means the connection will keep showing its NameID notice, and it will be right to.The two attributes KnoxCall reads
Add both with + on the Parameters tab, ticking Include in SAML assertion for each — a parameter without that flag is configured and not sent, which is the other common way this integration silently does nothing:
Both field names are on KnoxCall’s default list, so nothing has to be named on the KnoxCall side to read them.
The
email parameter is required. With the NameID set to the OneLogin ID, it is the only place KnoxCall finds the person’s address — and admission is decided by that address’s domain.
Roles as groups (optional)
Only needed if you want group membership to decide whether a new person lands as member or readonly. Add one more parameter, field namegroups, value User Roles, with Include in SAML assertion ticked. groups is one of the attribute names KnoxCall checks without being told to, and OneLogin emits one value per role the person holds.
Whatever OneLogin emits — role names, here — is what you type as the keys of the group map on the KnoxCall connection. The map’s values are bounded: a group mapped to anything but member or readonly is refused at save time, because “…an IdP group may only map to member or readonly…” — those two and no others. Owner and admin are granted by a human on the team page and by nothing else.
4. Encrypted assertions (optional)
On the Configuration tab, tick Encrypt assertion and give OneLogin the certificate from theuse="encryption" KeyDescriptor in KnoxCall’s metadata document. It is the same certificate as the signing one, published twice on purpose, because an IdP reads one descriptor for each job.
KnoxCall accepts encrypted and plain assertions alike and both take exactly the same path, so this is your call, not ours — and an app configured before 8 September 2026 has no encryption key of ours to use until our metadata is read again.
5. Take the OneLogin values back to KnoxCall
Two routes: import OneLogin’s metadata, or type the values by hand. The import is the one that cannot be mis-transcribed.Import the federation metadata
The app’s More Actions → SAML Metadata publishes OneLogin’s own metadata — one document carrying the issuer, the sign-on endpoint, the logout endpoint and the signing certificate, athttps://app.onelogin.com/saml/metadata/<app-id>. Hand KnoxCall that link, or the document itself:
"apply": true. What the preview reports, what an import never touches, and every refusal it can answer with are on the overview. Like the metadata you gave OneLogin, it is a snapshot: nothing re-reads that URL on a schedule, so run the import again when you move the app to a new certificate.
Or type the values
The app’s SSO tab carries all of them. In KnoxCall, Settings → Single sign-on → your connection:
Saving needs a re-authentication in the last five minutes; that is expected, and it is the same bar as changing a password.
6. Single Logout
OneLogin’s SLO endpoint goes into the KnoxCall connection, as in the table above, and KnoxCall’s goes into Single Logout URL on the Configuration tab — that is both directions, and step 2 has already done half of it. Leave the KnoxCall field empty if you do not want the SP-initiated direction. Empty means “this connection does not do SP-initiated Single Logout” and it never falls back to the sign-in URL. The KnoxCall field must be https; KnoxCall refuses anything else at save time, because aLogoutRequest carries the person’s email address as its NameID and the browser is redirected to that URL. Either way, signing out of KnoxCall always ends the KnoxCall session — never conditionally on the IdP leg. The full behaviour is in Single Logout.
7. Assign people, then test
Access on the app → add the roles that should have KnoxCall, or assign individual users from Users. OneLogin refuses sign-in to anyone unassigned before KnoxCall ever sees a request. Test with one account: openhttps://acme.knoxcall.com/saml/acme/login, sign in, and check the person lands in the workspace with the role you expected. If it fails, the login page names the cause — every message and code is in troubleshooting.
Rotating the OneLogin certificate
A OneLogin certificate belongs to the account, not to this app — it is created under Settings → Certificates and each app selects one from a dropdown. So a rotation is: create the new certificate, teach KnoxCall about it, then point the app at it. Rotate add-first:- In OneLogin, Settings → Certificates → New, and generate the replacement. Do not change the app yet.
- Copy the new certificate into the KnoxCall connection. Pasting a certificate adds it — a connection can hold several active certificates and an assertion signed by any of them verifies.
- On the app’s SSO tab, select the new certificate.
- Retire the old certificate in KnoxCall.