Ping Identity
Ping Identity SSO
Configure 1KosmosPingOne as a SAML identity provider (IdP) for Knocknoc. Once connected, your usersUsers authenticate against 1Kosmos — including its biometric and passwordless factors —Ping, and Knocknoc maps their group membership to access entitlements.
This example assumes your Knocknoc instance is at https://<tenant>.knoc.cloud. Substitute your own instance URL throughout (e.g. https://demo.knoc.cloud).
In this integration:
- Knocknoc is the Service Provider (SP) — it consumes the SAML assertion.
1KosmosPingOne is the Identity Provider (IdP) — it authenticates the user and issues the assertion.
┌──────────┐These
1.stepsAccesscoverrequest ┌──────────┐ │ User │ ─────────────────────▶ │ Knocknoc │ └──────────┘ │PingOne (SP)cloud).│PingOne▲for└────┬─────┘Enterprise│and│PingFederate2.expose the same building blocks — a SAMLAuthnRequestapplication,│attribute5.mapping,Assertionandreturnedan▼IdP│metadata+URLgroup—claimsso┌───────────────┐the└──────────────────────────Knocknoc-side│values1Kosmosare│identical4.andAuthenticatedthe│flow(IdP)transfers│with└───────────────┘minor3.menuUserdifferences.authenticates (biometric / passwordless)
User vs Admin SAML. Knocknoc supports SAML for the user portal and, separately, for the admin
interface.interface,The two useusing different endpoint paths (/api/saml/...vs/api/admin/saml/...). Configure Users first; once confirmed working, extend to Admins while keeping a local break-glass admin account.
Before you begin
You will need:
Community administratorAdministrator access to your1Kosmos AdminXPingOnetenant.environment.- Administrator access to your Knocknoc instance.
AnTheidentityKnocknocprovider already configured in AdminX (Settings > IdP Configuration). 1Kosmos allowsone IdP per tenant.
A note on metadata.Unlike Entra ID — which publishes a hostedApp Federation Metadata URLyou paste straight into Knocknoc — 1Kosmos, when acting as the IdP, provides only adownloadable metadata XML fileplus individual endpoint values. Before rollout, confirm how your Knocknoc build accepts IdP metadata (hosted URL, uploaded file, or manual endpoint entry); this determines which method you use inStep 3.
Step 11: — Gather IdP details from 1Kosmos
In AdminX, go to Settings > IdP Configuration and open your identity provider.
.pemSet Authentication Request to Signed (recommended). Keep these to hand — you will use them in Step 3.
Step 2: Add Knocknoc as a SAML app in 1KosmosPingOne
Knocknoc), select SAML 2.1 Application details
Knocknochttps://<tenant>.knoc.cloud/ClickIn NextProvide App Metadata.
2.2 SAML settings
urn:oasis:names:tc:SAML:2.0:nameid-format:persistentusername2.3 Claims mapping
Knocknoc readschoose fourManually Enter specific claims. The claim names must match exactly — username, realName, and sessionDurationgroups. In the Claims Mapping section, click Add new for each:set:
usernameUser.UsernamerealNamedisplaynamedisplayNamesessionDuration480groupsgroupsClick Next.
2.4 Advanced options
| Field | Value (Users) | Value (Admin) |
|---|
https://<tenant>.knoc.cloud/api/saml/acs
https://<tenant>.knoc.cloud/api/admin/saml/acs
Entity ID
https://<tenant>.knoc.cloud/api/saml/metadata
https://<tenant>.knoc.cloud/api/admin/saml/metadata
Click ACSSave.
Shortcut: instead of manual entry you can select Import From URL
and point PingOne at the Knocknoc SP metadata endpoint (https://<tenant>.knoc.cloud/api/saml/) to populate ACS and Entity ID automatically. Generate the Knocknoc keypair first (Step 4) so the SP certificate is present in the metadata.acsmetadataStep 2: Set the NameID format
In the application's Configuration > SAML settings, set:
Field Value Subject NameID Format
urn:oasis:names:tc:SAML:2.0:nameid-format:persistentMap the subject (SAML_SUBJECT) to the user's Username.
Step 3: Configure attribute mapping
Knocknoc reads four specific claims. The claim names must match exactly. On the Attribute Mapping page, add each pair (claim name on the left, PingOne attribute on the right) and tick Required where noted:
Claim name (required) PingOne attribute Notes
usernameRequired. The user's login identifier.https://<tenant>.knoc.cloud/api/admin/saml/acsUsernameACS MethodPOSTrealName(full name) If unavailable, use a display-name attribute, or combinePOSTFormattedGiven Name+Family Name.Signing certificate(optional)sessionDurationUploadliteralKnocknoc'svalue,public-keye.g..pem480if Knocknoc signs its requestssameLogin duration in minutes (whole number). Enter as a literal/expression value, not a directory attribute.groupsGroup NamesEmits the names of every group the user belongs to.Click Save.
AlwaysTheconfirmsessionDurationclaim controls theexactKnocknocEntityloginIDsession length andACSisURLindependentagainstofyourPingOne'sKnocknocAssertion Validity Duration (the lifetime of the SAMLconfigurationassertionscreen before going live.itself).Step
3:4: Configure Knocknoc (SP)In PingOne, open the application's Configuration tab and copy the IdP Metadata URL. Toggle the application on to enable it. In Knocknoc, log in to the admin interface and open Settings.
ProvideIn the1KosmosMetadataIdPURLmetadatafield,usingpaste themethodPingOneyourIdPbuild supports (hosted metadata URL, uploaded metadata XML from Step 1, or manual entry of Entity ID + SSOMetadata URL+ signing certificate). Click Generate new keypair,andthensave.Save. (Optionally, supply your own keys/certificate manually.)ClickSave.metadata
Manual-entryBecausereferencePingOne(ifservesyourabuildlive,supportshostedit):URL,
KnocknocfieldstaysPasteinfromsync1Kosmoswith(Step 1)IdP Entity IDEntity IDIdP SSO URLSingle SignOn ServiceIdP SLO URL(optional)Single Logout ServiceIdPPing's signing certificateSigningautomatically — no manual certificate(.pem)handlingrequired.Step
4: Passing group membership
Knocknoc maps thegroupsclaim to its access entitlements (ACLs).1Kosmos does not emit agroupsattribute by default— the standard session attributes are onlyfirstname,lastname,status,username,andphone. You must create and map it.
1. Create a session attributeGo toSettings > 1Kosmos Attributes > Add new. Name itgroups.
2.5: Mapit to your directoryIn your AD / LDAP directory integration, map the new attribute to the directory's group field (for example, Active DirectorymemberOf). Without this mapping the claim ships empty.
3. Expose it as a claimConfirmgroupsis present in the Knocknoc app'sClaims Mapping(Step 2.3), with the claim name set to exactlygroups.
Matchinggroups inKnocknoc.KnocknocPingOne's
Group Namesattribute sends human-readable group names, so use Knocknoc's by-name matching: set each Knocknocmatches the group values it receives against thegroup's Group Namefield on each Knocknoc group. Decide your scheme up front:By name—to theclaimexactcarries human-readablePingOne groupnamesname (e.g.US-Admin-SSH); use those strings as the Group Name in Knocknoc.By GUID/Object ID— the claim carries directory object IDs (e.g.6a696eec-482f-4b40-97c8-9ea3dba8ac3a); use those IDs as the Group Name in Knocknoc..Multi-value check. Verify on a test user that
1KosmosPingOne emits multiple groups as repeated<AttributeValue>elements rather than a single delimited string. Knocknoc expects discrete values; a delimited string is the most common cause of group-mapping failures.Step
5:6 — Test
- Browse to
https://<tenant>.knoc.cloud/. An SSO Login button should be present.- Click it. If not already authenticated to
1Kosmos,Ping, you are redirected to the1KosmosPingOne sign-in page.Authenticate (scan the QR code with the 1Kosmos mobile app, or enter username, password and OTP).Authenticate.- Confirm you are returned to Knocknoc and that any ACLs tied to your groups now show Granted.
Once Users work, repeat for the Admin interface using the
/api/admin/saml/...endpoints — and keep a local break-glass admin in case SAML breaks.Troubleshooting
Symptom Likely cause Redirect loop / "invalid issuer" Entity ID mismatch — checkconfirm it ends in/api/saml/metadata(or/api/admin/saml/metadata)Assertion rejected WrongKnocknoc keypair not generated, orexpired signing certificate; re-download from Step 1, or regeneratetheKnocknocIdPkeypairMetadata URL is wrong/unreachableUser authenticates but lands with no access groupsclaim empty (checkdirectorytheGroup Namesmapping) or the Knocknoc Group Namein Knocknocdoesn't match theclaimPingOnevaluegroup(namevs GUID)All users land in one group Groups arriving as a delimited string, not repeated <AttributeValue>elementsSession ends too soon / too late sessionDurationclaim missing or wrong; it is whole minutes (e.g.480)"NameID format" error Subject NameID format mismatch — confirm Persistent on both sides Reference — value exchange
Direction Values 1KosmosPingOne → KnocknocEntityIdPID,Metadata URL (carries SSO URL,SLOEntityURLID(optional),and signingcertificate, metadata XMLcertificate)Knocknoc → 1KosmosPingOneApplication access URL, SP Entity ID (/api/saml/metadata),ACS URL (/api/saml/acs, POST), SPsigningEntitycertID (optional)/api/saml/metadata)Need help? Contact Knocknoc support or your solutions engineer.