Skip to main content

SSO

Single sign-on connections let members sign in through the identity provider of the enterprise instead of a Soln password.

Open Account Center, then select SSO.

New connections are enabled as soon as they are saved.

For the DingTalk, Feishu, and WeCom plugins, installation creates the corresponding SSO connection. Use the callback and entry URLs shown by the plugin rather than manually creating a duplicate connection. See Enterprise Identity Plugins and the provider guides for DingTalk, Feishu, and WeCom. WeCom authorized sign-in can also add a missing plugin member binding.

Before You Start​

  • You need an identity provider administrator who can create an application, read its metadata, and register the Soln service provider values
  • You need the enterprise email address of the members; the email claim or attribute must match a member of this space
  • Keep the Soln connection dialog open while you register values on the identity provider side, because the callback URL and the service provider values are shown there

Set Up An OpenID Connect Connection​

  1. In the identity provider, register a web application and note its issuer address, client ID, and client secret
  2. In Soln click + next to the SSO menu entry to create a connection. Keep the dialog open
  3. In the identity provider, set the redirect URI to the Authorization callback URL shown in the Soln dialog
  4. In Soln enter the connection name, the connection code (lowercase letters, digits, _, -), the issuer address, the client ID, and the client secret. The code and the identity protocol cannot be changed later
  5. Choose the token authentication method that matches the client registered in the identity provider: Client Secret Basic, Client Secret Post, or public client without a secret
  6. Keep the scopes openid, profile, and email, then map the claims to the names the identity provider actually returns. The defaults are sub, email, email_verified, and name
  7. Choose the email trust policy: require the email verified claim to be true, or trust the email returned by the provider. The verified claim is only read in the first case
  8. Save the connection, then open the Launch URL from the connection list to start a workspace sign-in and check that the sign-in lands on the expected member

OpenID Connect Defaults​

FieldDefaultOther options
Issuer address–The issuer URL of the identity provider, for example https://identity.example.com
Token authentication methodClient Secret BasicClient Secret Post, or public client without a secret
Scopesopenid, profile, emailThe same three scopes
Claim mappingssub, email, email_verified, nameAny claim name the identity provider returns
Email trust policyRequire the email verified claim to be trueTrust the email returned by the provider
Authorization callback URLShown read-only by SolnRegister it as a redirect URI in the identity provider

Set Up A SAML 2.0 Connection​

  1. In the identity provider, create a SAML application. You need the service provider values from step 3 first, so start with the connection in Soln
  2. In Soln click + next to the SSO menu entry, choose SAML 2.0, and provide the identity provider metadata, either as a metadata URL or as metadata XML
  3. In the identity provider, register the values that the Soln dialog shows under the service provider configuration: SP Entity ID, ACS URL, SLO URL, and the SP certificate
  4. In Soln configure the request binding, the signature and digest algorithm, the NameID format, the signature and encryption requirements, IdP-initiated login, the authentication context and its comparison, the accepted clock skew, and the maximum assertion age
  5. Fill the SAML attribute mappings with the attribute names the identity provider returns for the user identifier, email, and name
  6. Save the connection, then open the Launch URL to verify the sign-in
  7. Replace the SP certificate with the rotation steps below when it must be renewed

SAML 2.0 Defaults​

FieldDefaultNotes
Metadata sourceURLMetadata URL or metadata XML
Request bindingHTTP-RedirectHTTP-POST
Signature algorithmsha256sha512
Digest algorithmsha256sha512
Require signed assertionsOnTurn off only when the identity provider cannot sign assertions
Require signed responsesOnTurn off only when the identity provider cannot sign responses
Require encrypted assertionsOffEnable when the identity provider must encrypt assertions; the identity provider needs the SP certificate
Allow IdP-initiated loginOnTurn off to accept only sign-ins started from Soln
Force re-authenticationOffEnable to ask the identity provider for authentication on every sign-in
NameID formaturn:oasis:names:tc:SAML:1.1:nameid-format:emailAddressAny NameID format the identity provider supports
Authentication contexturn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransportRemoved when "do not send authentication context requirements" is enabled
Context comparisonexactminimum, maximum, better
Accepted clock skew120 secondsRaise it when the identity provider clock drifts
Maximum assertion age5 minutesRejects older assertions
Attribute mappingsnameID, email, displayNameMust match the attributes the identity provider actually sends

Values To Register On The Identity Provider​

Soln valueIdentity provider field
SP Entity IDAudience URI / SP Entity ID
ACS URLACS URL / Reply URL / Assertion Consumer Service URL
SLO URLSingle logout URL
SP certificate fingerprintSigning or encryption certificate of the service provider
Authorization callback URL (OpenID Connect only)Redirect URI / Callback URL

Identity providers name these fields differently; register the values from the Soln dialog under the matching concept.

Verify The Connection​

  1. Open the Launch URL of the connection, or share .../auth/start?sso=enterprise&provider=<connection code> (or &launch=<launch URL>) with the members who should use this connection
  2. Sign in with a real enterprise account and confirm that the sign-in lands on the matching member instead of creating a new one
  3. Check User Login Activity: the new session appears with its sign-in method, IP address, and device

Troubleshooting​

SymptomWhat to check
Assertion signature validation failsIdentity provider metadata and certificate, the signature and digest algorithm, and whether signed assertions or responses are required
The identity provider signs in, but Soln rejects the resultThe attribute mappings and NameID format must match what the identity provider sends
The email is reported as unverifiedThe email trust policy and the verified claim: with the default policy the claim must be true in the ID token
Sign-in fails with a time errorThe clock difference between the identity provider and Soln; raise the accepted clock skew
Encrypted assertions cannot be decryptedThe certificate rotation was not completed: let the identity provider reload the SP metadata, then activate the pending certificate
The redirect URI is rejectedCopy the exact callback URL from the Soln dialog into the redirect URIs of the identity provider

Connection List​

ColumnDescription
ConnectionConnection name
ProtocolOpenID Connect or SAML 2.0
Launch URLAddress that starts the workspace sign-in with this connection: the runtime origin plus /auth/start?sso=enterprise&launch=<launch URL>
StatusEnabled or disabled
Updated atTime the connection was last changed

Search matches the connection name, code, issuer address, and client ID. Row actions are Edit and More, which contains the certificate actions and Delete; deleting a connection also deletes the external identity bindings it created.

Create Or Edit A Connection​

Common fields:

FieldDescription
Connection name / codeDisplay name and stable code of the connection
Identity protocolOpenID Connect or SAML 2.0

OpenID Connect fields:

FieldDescription
Issuer address / Client ID / Client SecretCredentials of the registered application at the identity provider. Leaving the secret empty keeps the current one
Token authentication methodClient secret basic (default), client secret post, or public client without a secret
ScopesScopes requested during sign-in: openid, profile, and email, selected by default
Claim mappingsClaims that provide the user identifier, email, and name
Email trust policyEither require the email verified claim to be true in the ID token (default), or trust the email returned by the provider

The default claim mappings are sub for the user identifier, email, email_verified, and name. The email verified claim is only read when the trust policy requires it.

SAML 2.0 fields:

FieldDescription
Identity provider metadataRequired. Metadata URL with a valid URL, or the metadata XML
Request bindingRequired. HTTP-Redirect or HTTP-POST
Signature and digest algorithmRequired. Algorithms used for signing and digesting requests
NameID formatOptional identifier format expected by the identity provider
Signature and encryption requirementsRequire signed assertions, signed responses, or encrypted assertions
Identity provider initiated loginAllows sign-in started by the identity provider
Force re-authenticationRequests authentication on every sign-in
Authentication contextRequired unless "do not send authentication context requirements" is enabled; it also sets how the comparison is evaluated
Clock skew and assertion ageRequired. Accepted time difference and maximum assertion lifetime
Attribute mappingsRequired. SAML attributes that provide the user identifier, email, and name

Service provider configuration shows the SP Entity ID, ACS URL, SLO URL, the active SP certificate SHA-256 fingerprint, and the certificate expiry time, plus the pending and previous certificate fingerprints when a rotation is in progress. These values are given to the identity provider.

SP Certificate Rotation​

Each step asks for confirmation first.

  1. Generate pending certificate publishes a new SP certificate to the metadata. Let the identity provider read the new metadata before continuing
  2. Activate pending certificate starts using the new certificate for signing and encryption while the previous one stays available for verification. Only activate after the identity provider has synchronized the latest SP metadata
  3. Retire previous certificate removes the previous certificate from the metadata. Do it only after the identity provider uses the current certificate steadily; assertions still encrypted with the previous certificate can no longer be decrypted

Deleting a connection also deletes the external identity bindings it created.