Single sign-on (SAML) setup guide
Let your team sign in to Formaya through the identity provider your organisation already uses. Setup is an exchange of a few values between Formaya and your provider, then one DNS record to prove you own the email domain.
How it works
Single sign-on is available on the Business plan and is configured by a workspace owner or admin under Settings → Members → Single sign-on (SAML). The card has three parts, and the setup follows them in order:
- Your service provider details. Three values Formaya gives you: an entity ID, an ACS URL and a metadata URL. These go into your identity provider when you add Formaya as an application. They are specific to your workspace, so a staging workspace and a production workspace need two separate applications on the provider side.
- Identity provider. Three values your provider gives you: its entity ID (also called issuer), its sign-in URL and its signing certificate. If the provider shows a metadata URL, paste that into Import from metadata URL and press Import: the three fields fill themselves. Otherwise paste the three by hand. Only the workspace owner can change these; changing them switches sign-in off until the domain below is verified again, so a new provider is always approved by whoever controls the domain.
- Email domain. The domain of your work addresses, for example
acme.com. Formaya shows a TXT record; add it to the domain's DNS and press Verify domain. Only addresses on this domain can sign in through the provider, and a domain can be verified by one workspace at a time.
Then turn the Single sign-on is on switch on, save, and use Test sign-in. Members sign in from the Formaya login page by typing their work email and pressing Continue with SSO. Nobody needs an invitation: an address on the verified domain that the provider vouches for is created as a member on first sign-in, or matched to its existing account.
Require single sign-on is a second switch. Once on, people on the verified domain can no longer use a password or Google to sign in. Workspace owners keep their password, so a broken provider cannot lock everyone out.
Field map
Every provider asks for the same two things and hands back the same three, under its own names. Use these two tables to copy in the right direction.
From Formaya into your provider
| Formaya card row | Okta | Microsoft Entra ID | Google Workspace | JumpCloud | OneLogin |
|---|---|---|---|---|---|
| Entity ID (audience) | Audience URI (SP Entity ID) | Identifier (Entity ID) | Entity ID | SP Entity ID | Audience (EntityID) |
| ACS URL (reply URL) | Single sign-on URL | Reply URL (Assertion Consumer Service URL) | ACS URL | ACS URL | ACS (Consumer) URL, and Recipient |
| Metadata URL | not used | not used (upload not needed) | not used | Upload Metadata (optional) | not used |
From your provider into Formaya
| Formaya card field | Okta | Microsoft Entra ID | Google Workspace | JumpCloud | OneLogin |
|---|---|---|---|---|---|
| IdP entity ID | Issuer | Microsoft Entra Identifier | Entity ID | IdP Entity ID | Issuer URL |
| Sign-in URL (HTTP-Redirect) | Sign on URL | Login URL | SSO URL | IDP URL | SAML 2.0 Endpoint (HTTP) |
| Signing certificate | Signing Certificate | Certificate (Base64) | Certificate | the downloaded certificate | X.509 Certificate |
| Import from metadata URL (fills the three above) | Metadata URL | App Federation Metadata Url | file only, use the fields | Copy Metadata URL | file only, use the fields |
The certificate field accepts the PEM text with its BEGIN and END lines, or just the base64 body between them.
Okta
- In the Admin Console open Applications → Applications and press Create App Integration. Choose SAML 2.0, Next. If your org shows a Create your app wizard with integration cards instead, pick Classic experience; the card wizard is for publishing to Okta's catalog.
- General Settings: name it, for example Formaya. Next.
- Configure SAML, section A:
- Single sign-on URL ← Formaya's ACS URL. Leave Use this for Recipient URL and Destination URL ticked.
- Audience URI (SP Entity ID) ← Formaya's Entity ID.
- Default RelayState: empty.
- Name ID format: EmailAddress. Application username: Email.
- Leave Show Advanced Settings as it is: response and assertion signed, RSA-SHA256, unencrypted, Signed Requests off.
- Next, then on the Feedback step choose I'm an Okta customer adding an internal app and press Finish.
- On the app's Sign On tab, under Metadata details, press More details. Copy Issuer → Formaya IdP entity ID, Sign on URL → Formaya Sign-in URL, and download the Signing Certificate → Formaya certificate field. View SAML setup instructions shows the same three.
- Still on the Sign On tab, under Attribute statements, press Add expression three times: name
emailwith expressionuser.profile.email,givenNamewithuser.profile.firstName,snwithuser.profile.lastName. Older consoles show these as Attribute Statements inside the wizard withuser.emailstyle values. - Assignments tab: assign the app to the people or groups who may sign in. Okta refuses anyone not assigned.
Ad and tracker blockers break Okta's own sign-in page with a Failed to fetch error, because its script host is on common block lists. Allow okta.com and oktacdn.com, or test in a window without extensions.
Microsoft Entra ID
- In the Microsoft Entra admin center go to Entra ID → Enterprise apps → New application, press Create your own application, name it, choose Integrate any other application you don't find in the gallery (Non-gallery) and press Create. You need the Cloud Application Administrator or Application Administrator role.
- In the app, open Single sign-on and select SAML.
- Basic SAML Configuration, Edit:
- Identifier (Entity ID) ← Formaya's Entity ID.
- Reply URL (Assertion Consumer Service URL) ← Formaya's ACS URL.
- Sign on URL, Relay State, Logout Url: leave empty. Save.
- Attributes & Claims, Edit. Open Unique User Identifier (Name ID), set the source attribute to
user.mailand Choose name identifier format to Email address. The default additional claims already includeemailaddress,givennameandsurname, which is all Formaya reads. - SAML Certificates: next to Certificate (Base64) press Download → Formaya certificate field.
- In the Set up <your app> section copy Login URL → Formaya Sign-in URL and Microsoft Entra Identifier → Formaya IdP entity ID.
- Users and groups: add the users or groups who may sign in. With Assignment required set to Yes, which is the default for enterprise apps, nobody else can.
Entra's default Name ID is the user principal name, which is not always the person's email address. Formaya reads the emailaddress claim first, so the default works, but setting the Name ID to user.mail as above keeps the two consistent.
Google Workspace
- In the Admin console, as a super administrator, go to Apps → Web and mobile apps, press Add app → Add custom SAML app, name it, Continue.
- On Google Identity Provider details: copy SSO URL → Formaya Sign-in URL, Entity ID → Formaya IdP entity ID, and download the Certificate → Formaya certificate field. Continue.
- On Service provider details:
- ACS URL ← Formaya's ACS URL.
- Entity ID ← Formaya's Entity ID.
- Start URL: empty. Signed response: leave unticked; Google signs the assertion either way.
- Name ID format: EMAIL. Name ID: Basic Information → Primary email. Continue.
- Attribute mapping (optional, gives new accounts their real name): add First name →
givenNameand Last name →sn. Finish. - Open the app, press User access, choose ON for everyone or turn it on per organisational unit, Save. Google says changes can take up to 24 hours, in practice usually minutes.
JumpCloud
- In the Admin Portal go to SSO Applications, press + Add New Application, choose Custom Application, Next, select Manage Single Sign-On (SSO) with Configure SSO with SAML, Next, and give it a display label.
- On the SSO tab, either press Upload Metadata and give it the file from Formaya's Metadata URL, or fill in by hand:
- SP Entity ID ← Formaya's Entity ID.
- ACS URL ← Formaya's ACS URL.
- SAMLSubject NameID:
email. SAMLSubject NameID Format: emailAddress. - Signature Algorithm: RSA-SHA256. Sign Assertion: ticked. Login URL:
https://formaya.app/login. - IdP Entity ID: any identifier you choose, for example
formaya-jumpcloud. Copy the same value → Formaya IdP entity ID. - Under Advanced Settings, IDP URL defaults to
https://sso.jumpcloud.com/saml2/<name>and cannot be changed after activation. Copy it → Formaya Sign-in URL.
- Under Attributes, add a user attribute mapping
email→ email, and optionallygivenName→ firstname andsn→ lastname. - Activate the application. Download the IDP Certificate (or press Export Metadata and take the certificate from it) → Formaya certificate field.
- On the User Groups tab, bind the groups who may sign in.
OneLogin
- In the admin portal go to Applications → Applications → Add App, search for SAML Custom Connector (Advanced), give it a display name, Save.
- Configuration tab:
- Audience (EntityID) ← Formaya's Entity ID.
- Recipient and ACS (Consumer) URL ← Formaya's ACS URL.
- ACS (Consumer) URL Validator: the ACS URL as a regular expression, for example
^https:\/\/formaya\.app\/api\/sso\/saml\/.*\/acs$. - SAML nameID format: Email. SAML initiator: Service Provider. SAML signature element: Assertion, or Both. Save.
- Parameters tab: set NameID value to Email. Add parameters
email→ Email,givenName→ First Name,sn→ Last Name, each with Include in SAML assertion ticked. Save. - SSO tab: copy Issuer URL → Formaya IdP entity ID, SAML 2.0 Endpoint (HTTP) → Formaya Sign-in URL, and under X.509 Certificate press View Details and download the certificate → Formaya certificate field.
- Give access through Users or Roles.
Other SAML 2.0 providers
Keycloak, Authentik, Auth0, PingOne, Duo, Rippling, Cisco Duo and the rest all work; the vocabulary is what differs. Look for these on the provider side:
- The service provider, relying party or client is Formaya. Its entity ID, audience, client ID or issuer of the request is Formaya's Entity ID. Its ACS, reply, callback, redirect or assertion consumer URL is Formaya's ACS URL. Many providers can import all of this from Formaya's Metadata URL.
- The provider's own entity ID or issuer goes into Formaya's IdP entity ID; its SSO, login or single sign-on service URL for the HTTP-Redirect binding goes into the Sign-in URL; its signing (not encryption) certificate goes into the certificate field.
- Set the Name ID format to email address, or send an
emailattribute. Sign the assertion. Leave assertion encryption off; Formaya has no decryption key. - Formaya starts every sign-in itself (SP-initiated) and signs its requests. A sign-in started from the provider's own portal is refused, so if your provider offers a "sign request" verification option you can switch it on using the certificate in Formaya's metadata.
Attributes Formaya reads
| Purpose | Accepted names | Required |
|---|---|---|
| Email address | email, mail, urn:oid:0.9.2342.19200300.100.1.3, the Microsoft …/claims/emailaddress claim, or the Name ID when its format is emailAddress | Yes |
| Display name | displayName, cn, name, the Microsoft …/claims/name or …/claims/displayname claims | No |
| First and last name | givenName and sn or surname, or the Microsoft …/claims/givenname and …/claims/surname claims | No |
Without a name attribute a new account is named after the part of the address before the @. An existing account keeps the name and language it already has.
Domain verification
Save the email domain on the card and it shows a TXT record of the form formaya-sso=…. Add it in your DNS provider either on the domain itself (name @) or on the subdomain _formaya, then press Verify domain. Propagation is usually under a minute; Formaya checks the record again whenever the identity provider details change.
A domain can be verified by one workspace at a time. Subdomains are separate domains: acme.com does not cover mail.acme.com.
Troubleshooting
| You see | What it means |
|---|---|
| No single sign-on is set up for this email domain | No workspace has an enabled, verified configuration for the domain of the address typed. Check the domain spelling, the verification, and the main switch. |
| Single sign-on for this organisation needs the Business plan | The configuration exists but the workspace owner's plan no longer includes it. |
| Single sign-on failed | The provider's response was rejected: wrong certificate, wrong entity ID, an ACS URL that does not match, or a response older than ten minutes. Compare all three values again, and make sure the application on the provider points at this workspace and not at another one. |
| Your identity provider returned an email outside your organisation's domain | The provider sent an address that is not on the verified domain. Check the Name ID or email attribute mapping. |
| Your identity provider did not send an email address | Neither the Name ID nor an email attribute carried an address. Set the Name ID format to email or add the email attribute. |
| Platform administrators sign in with their password and authenticator | Formaya platform admins are deliberately excluded from SSO. |
| The provider says the user is not assigned | Assign the person or their group to the application on the provider side. |
| Okta shows "Failed to fetch" | A browser ad or tracker blocker is blocking Okta's script host. Allow okta.com and oktacdn.com. |
Still stuck? Write to us through the contact page with the name of your provider and the exact message shown.