How it works
Popsink authenticates users through Clerk, our identity platform. Each SSO connection is tied to one or more email domains that you own, for exampleacme.com.
- A user opens the Popsink console and
enters their work email,
jane@acme.com. - Popsink sees that
acme.comhas an SSO connection and redirects the browser to your IdP. - The user authenticates there, with MFA if your IdP asks for it.
- The IdP sends a signed SAML assertion or OIDC token back to Popsink. The user lands in the console, signed in.
Before you start
Have the following ready:- Admin access to your IdP, so you can create an application (SAML) or an app registration / client (OIDC).
- The email domains to route to SSO. You must own them, and Popsink may ask you to prove ownership.
- A test user on one of those domains, assigned to the application. You will use it for the first sign-in.
Set up SSO
Request an SSO connection
- your Popsink organization name,
- the email domain(s) to connect,
- the protocol (SAML or OIDC) and your identity provider.
Create the application in your IdP
Send us your IdP details
- SAML: the IdP metadata URL. Alternatively, send the metadata XML file, or the SSO URL, IdP entity ID and signing certificate.
- OIDC: the issuer / discovery URL, the client ID and the client secret.
Test and go live
SAML 2.0
Values to enter in your IdP
We send you these values when we create the connection. They are unique to it.Attributes
Popsink identifies users by email address, so the email must match the address used to invite them into Popsink.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress. Tell us
which names you use and we will map them on our side.
- Microsoft Entra ID
- Okta
- Google Workspace
- In Entra ID → Enterprise applications, click New application → Create your own application and choose Integrate any other application you don’t find in the gallery (Non-gallery).
- Open Single sign-on → SAML.
- In Basic SAML Configuration, set Identifier (Entity ID) to the Popsink SP Entity ID and Reply URL to the Popsink ACS URL.
- Under Attributes & Claims, make sure the Unique User Identifier
(Name ID) is
user.mailoruser.userprincipalname, whichever holds the user’s real email address. - Under Users and groups, assign the users or groups who should have access.
- Copy the App Federation Metadata Url from the SAML Certificates section and send it to us.
OpenID Connect
Create an OIDC application of type web application that uses the authorization code flow.email claim. given_name and
family_name are used when present.
Send us the issuer URL (the base of /.well-known/openid-configuration),
the client ID and the client secret, over a secure channel.
Users, organizations and roles
SSO controls who can sign in. What they can access is still managed in Popsink.- The account is created at first sign-in. Users don’t need a Popsink account beforehand.
- Access to an organization requires an invitation. An organization admin invites the user by email from the console. At the user’s first SSO sign-in, all pending invitations for that email are accepted, and the user gets the role set on each one. A user who signs in without an invitation belongs to no organization yet. They are offered to create one.
- Roles are managed in Popsink. Organizations have
adminanduserroles, and environments haveadmin,userandreader. With SSO alone, IdP groups aren’t mapped to Popsink roles. To drive membership and organization roles from your IdP, turn on SCIM provisioning.
Removing access
Unassigning a user from the application in your IdP, or disabling them there, blocks their next sign-in. Without SCIM, a session that is already open stays valid until it expires. To cut access immediately, also remove the member from the organization in the Popsink console. With SCIM, deactivation in your IdP revokes open sessions right away (see Deactivating a user).SCIM provisioning
With SSO alone, users are created at their first sign-in, and an organization admin still has to invite each of them. With SCIM 2.0 provisioning, your IdP manages the Popsink users for you:- Assigning a user to the Popsink application in your IdP creates their Popsink account and adds them to your organization. No invitation needed.
- Changing their name or email in your IdP updates it in Popsink.
- Deactivating or unassigning them in your IdP removes their access to Popsink and signs them out everywhere, at once.
- IdP groups set their organization role (
adminoruser).
Supported identity providers
Set up SCIM
Request SCIM for your SSO connection
admin role, if any.We turn on SCIM for your connection and send you, over a secure channel:- the SCIM endpoint URL (also called the base URL or tenant URL),
- a bearer token.
Configure provisioning in your IdP
Assign users and groups
Map groups to roles
- Microsoft Entra ID
- Okta
- Open the enterprise application you created for SSO, then go to Provisioning.
- Set Provisioning Mode to Automatic.
- Under Admin Credentials, paste the SCIM endpoint URL into Tenant URL and the bearer token into Secret Token. Click Test Connection, then Save.
- Under Mappings, check that these attributes are mapped:
userName,emails[type eq "work"].value,name.givenName,name.familyNameandactive. - Set Provisioning Status to On and save. Entra runs a cycle about every 40 minutes. Use Provision on demand to test one user right away.
Attributes
Existing users
If your IdP provisions a user whose email already belongs to a Popsink account (for example, someone who signed in with SSO before you turned on SCIM), the account is linked, not duplicated. It keeps its organizations, its environment access and its history.Group to role mapping
Groups pushed by your IdP can be mapped to the organization roles of the organization linked to the connection:- Mappings are ordered. If a user belongs to several mapped groups, the
first mapping in the list wins. Put the
adminmapping first. - A user in no mapped group gets the default
userrole. - Only direct membership counts. Nested groups aren’t supported, and most IdPs reject pushing a group inside another group.
- An organization role set by a mapping can’t be changed in the Popsink console. Change the user’s groups in your IdP.
admin, user, reader) aren’t driven by SCIM. An
organization or environment admin still grants environment access in the
console, as described in Users, organizations and
roles.
Deactivating a user
When your IdP deactivates a user, unassigns them from the application, or deletes them:- All their Popsink sessions are revoked immediately. They are signed out of the console and of every data plane.
- Their membership in the linked organization is removed, with their environment access in that organization.
- Their Popsink account is kept but can’t sign in, and the resources they created (pipelines, connectors, environments) are left untouched.
Self-hosted data planes
On a self-hosted deployment, the data plane has no login of its own. It sends the browser to the control plane, which signs the user in, through your SSO when your domain has it, and returns a short-lived access token to the data plane. SSO covers self-hosted data planes as well, with no extra configuration on the IdP side. For the redirect to come back, Popsink must allowlist the URL of your data plane, for examplehttps://popsink.internal.acme.com. Include it in your SSO
request, or send it when you register a new deployment.
Troubleshooting
I'm asked for a password instead of being redirected to my IdP
I'm asked for a password instead of being redirected to my IdP
My IdP shows an error before sending me back
My IdP shows an error before sending me back
http instead of https. Also check
that your user is assigned to the application.I'm back on Popsink but sign-in fails
I'm back on Popsink but sign-in fails
mail attribute.
Also check that your IdP’s signing certificate hasn’t been rotated since you
sent us the metadata. If it has, send us the new metadata.I'm signed in but I don't see my organization
I'm signed in but I don't see my organization
A user assigned in my IdP doesn't appear in Popsink (SCIM)
A user assigned in my IdP doesn't appear in Popsink (SCIM)
emails.I can't change a member's role in the console
I can't change a member's role in the console
Our IdP signing certificate is about to expire
Our IdP signing certificate is about to expire