What Keycloak Mattermost SAML SSO changes for your team
If your organization already runs Keycloak, this integration lets staff sign in to Mattermost with the same identity they use for other internal systems. The integration uses SAML 2.0, with Keycloak as the identity provider and Mattermost as the service provider. It also depends on a Mattermost plan that includes SAML. Mattermost's pricing page says SSO (SAML, OIDC and OAuth) is included from the Professional plan, but the page lists no public prices and directs buyers to contact sales. Confirm the plan, seat count and SAML availability in writing before you scope the work, because the plan decides whether the integration can go ahead at all.
At sign-in, a user who opens Mattermost is redirected to Keycloak, where they authenticate with whatever methods your realm allows, such as passwords, one-time codes or passkeys. Keycloak then returns a signed SAML assertion to Mattermost through the browser. Mattermost reads that assertion to identify the user and to decide which account to create or update. For this to work, the assertion must carry an identifier Mattermost accepts as the account key, along with the profile attributes it expects. Keycloak builds these attributes through mappers on the SAML client. Confirm the exact attribute names and the identifier format in Mattermost's SAML documentation before you configure the client, because a mismatch here is a likely cause of failed first sign-ins.
Existing Mattermost users need a plan. Anyone who already has a local Mattermost account must be matched to their Keycloak identity without creating duplicate accounts, so test how Mattermost links an incoming SAML identity to an account that already exists. Decide whether local password sign-in stays enabled for a small set of administrators during rollout, so that a broken SAML configuration does not lock everyone out. Also check what happens when a person leaves: disabling the user in Keycloak blocks new SAML sign-ins, but an open Mattermost session may remain active until it expires. Confirm the session lifetimes that apply to your deployment.
Mattermost's documentation lists Keycloak as a custom identity provider, so support for this combination is not on the same footing as the providers Mattermost lists by name. Ask Mattermost, in writing, what support it offers for custom providers and what it expects you to test after each upgrade. Mattermost ships server binaries monthly, and Keycloak ships four minor releases a year, so both sides will change on their own schedules. Decide early who owns the Keycloak client, the signing and encryption certificates, and the regression tests that run after each upgrade on either side.
What you need before Keycloak Mattermost SAML SSO starts
Keycloak and Mattermost SAML sign-in depends on decisions made before any configuration begins: which Mattermost plan you license, which Keycloak release and database you run, and how hostnames and certificates fit together. The cards below cover each prerequisite and the check that confirms it is ready.
Mattermost plan with SAML
Mattermost lists SSO with SAML, OIDC and OAuth, along with AD/LDAP user sync, as included from the Professional plan on its pricing page. Confirm your contracted plan before planning the work, because the pricing page lists no public prices and directs buyers to sales. Ask the vendor to confirm in writing that your plan includes SAML SSO.
Mattermost server version
Read the SAML single sign-on documentation for the exact Mattermost server version you run, since settings and behavior can differ between releases. Mattermost publishes a new server version each month, and the support window for each release is listed on its releases page. Record the version number, because it determines which configuration steps apply.
Keycloak release compatibility
This guide was written against Keycloak 26.8.1, the current release at the time of writing, published October 13, 2026. Confirm that this Keycloak release is compatible with the Mattermost server release you run, because the Mattermost documentation does not guarantee a specific identity provider version. Pin the release in your plan so that every later step is tested against the same version.
Realm and administrator access
You need a realm in which to create the SAML client, plus an administrator account in Keycloak with rights to manage clients, mappers and keys. On the Mattermost side, you need a system administrator account to enter the SAML settings and upload certificates. Agree who holds each account and where the credentials are stored before work starts.
Production-grade database
Keycloak's dev-file database is for development only. For production, use a database from its supported list, such as PostgreSQL 14 to 18, and confirm the version against the Keycloak database guide before provisioning. Keycloak migrates its schema at startup by default, so plan database backups and a test restore before the first production start.
TLS and public hostnames
Keycloak's production guide calls for TLS on all communication, and SAML assertions carry signed identity data across the browser, so both services need valid certificates. Give Mattermost and Keycloak public hostnames with DNS records that match the certificates and the SAML endpoint URLs you configure. Keep the Keycloak admin console on a separate hostname or path from public frontend URLs, as the production guide recommends.
Why Mattermost support lists Keycloak as a custom identity provider
Mattermost lists Keycloak as a custom identity provider rather than as one of its officially supported SAML providers. That is a statement about certification, not about whether the integration works. SAML 2.0 is a documented standard, Mattermost's SAML single sign-on feature is included from the Professional plan according to the Mattermost pricing page, and Keycloak implements SAML 2.0 as one of its supported protocols. Teams should treat the Keycloak setup as a documented SAML pattern that Mattermost does not certify for Keycloak specifically, and plan their support model with that distinction in mind.
In practice, the difference shows up in three places. First, support escalation: when a sign-in fault appears, Mattermost may ask you to reproduce it against a supported identity provider or to involve Keycloak's own community or vendor channels, so your runbook should record which party owns each layer of the chain, from the Keycloak client and its mappers to the Mattermost SAML settings and the assertion contents. Second, testing before production: because Mattermost does not certify the pairing, your team carries more of the proof that sign-in, attribute mapping, logout behavior and account provisioning work with your exact Keycloak and Mattermost versions. Third, vendor responsibility when Mattermost changes SAML behavior in a server release. Mattermost ships a new server version in binary form on the 16th of each month, so a SAML change can arrive on a schedule your team does not control.
Ask Mattermost directly what support covers for your plan and for a custom identity provider. Put the question in writing, ask whether any SAML problem is handled under your subscription regardless of the identity provider, and ask what evidence they need to open a case, such as the SAML settings, log lines or a sample assertion with sensitive values removed. Record the answer, the date, the name of the person who gave it and the plan level in the project decision log, next to the decision to use Keycloak. If the answer changes at renewal or after a plan change, the record shows what was agreed and when it was reviewed.
Use the same log to assign ownership. Name who watches Mattermost release notes for SAML changes before each upgrade, who runs the test sign-in in a staging environment after every Mattermost and Keycloak version change, and who holds the Keycloak client configuration in version control. Keycloak's own upgrade notes for the 26.8 line call out changes to login failure handling and token validation, so an identity provider upgrade can also need a retest of the Mattermost sign-in path. Confirm the current Mattermost support window for your server version on the Mattermost server releases page before you schedule that work.
Configure Keycloak Mattermost SAML SSO step by step
This sequence connects a Keycloak realm to Mattermost over SAML 2.0 so users can sign in with their Keycloak credentials. Each step ends with a check, so the team confirms the plan, client, signing, attributes, metadata and a single test sign-in before widening access. Mattermost lists Keycloak as a custom identity provider, so the checks carry more weight.
Confirm the Mattermost plan and SAML availability
The Mattermost pricing page lists SSO, including SAML, as included from the Professional plan, but your contract and server version decide what your deployment can use. Ask your Mattermost account contact to confirm in writing that your license includes SAML. Then, as a system administrator, open the SAML settings in the System Console and confirm the options appear. Check: the SAML section is visible and editable on your server, and you have a record of the plan and version you will configure against.
Create the SAML client in a Keycloak realm
Create a SAML client in the realm that will serve Mattermost, or in a dedicated realm if your identity team separates application clients. Enter the entity ID and assertion consumer service URL exactly as the Mattermost SAML single sign-on documentation specifies, including the protocol, host and path. The Keycloak server administration guide describes the client settings for this step. Check: the client appears in the realm's client list, and the saved entity ID and assertion consumer URL match the Mattermost documentation character for character.
Set name ID format and signing options
Choose the name ID format that matches the user identifier Mattermost expects, as stated on the Mattermost SAML page. Configure signing for the assertion, the response, or both, and select the signature algorithm the Mattermost documentation supports. If you enable assertion encryption, plan how the decryption key reaches Mattermost and confirm that your Mattermost version handles encrypted assertions. Check: export the realm's SAML descriptor and confirm the signing certificate and signing settings reflect what you configured.
Add attribute mappers for required user fields
Add a mapper for each attribute Mattermost requires to create or match an account, such as username, email, first name and last name, and any attribute the documentation names for team or role handling. Use the attribute names the Mattermost page specifies, since SAML attribute names are case sensitive and a mismatch is a common cause of failed logins. Check: sign in with a single test user, capture the SAML response in a browser developer tool or a SAML tracer extension, and confirm each attribute name and value appears as Mattermost expects.
Exchange metadata or certificate with Mattermost
Retrieve the identity provider metadata from the Keycloak realm's SAML descriptor endpoint. Enter the metadata URL or the certificate, along with the single sign-on URL and entity ID, into the matching Mattermost SAML fields as the Mattermost documentation describes. Keep a copy of what you entered so the values can be reviewed later. Check: compare the entity ID, single sign-on URL and certificate fingerprint shown in Mattermost against the Keycloak descriptor, and confirm they are identical.
Set the Mattermost SAML options as documented
Configure the remaining Mattermost SAML options exactly as the documentation describes, including attribute mapping, login button text and account creation behavior. Leave enforcement of SAML-only sign-in off until the test in the final step succeeds, so administrators keep a fallback path. Your Mattermost version may label some options differently, so confirm each label on the Mattermost SAML page. Check: save the settings, reload the page and review every field against your change record.
Test sign-in with one account and review
Sign in to Mattermost through SSO with one pilot account from a fresh browser session. Confirm the account is created or matched correctly, the email and username are right, and any team or role behavior matches your design. If sign-in fails, review the SAML response for the audience, destination, signature, time validity and attribute values, and compare them with the settings from earlier steps. Check: a successful pilot sign-in with the results recorded before any other user or enforcement change.
How Keycloak attributes map to Mattermost accounts
This table lists each identity value Keycloak can send in a SAML assertion, the Mattermost account field it should populate, and the decision your team must make before build. Rows marked for confirmation need the exact SAML attribute name checked against the Mattermost SAML documentation for your version. The main takeaway is that identifier and role decisions matter more than display names, because they determine which account a sign-in reaches and what access it grants.
| Keycloak source | SAML attribute name | Mattermost field | Decision for your team |
|---|---|---|---|
| Username (user property) | Confirm against Mattermost SAML documentation | Username | Choose a stable, unique value users cannot change, and decide how duplicate names are handled. |
| Email (user property) | Confirm against Mattermost SAML documentation | Email address | Decide whether email is the login identifier and whether Keycloak verifies it before Mattermost trusts it. |
| First name (user property) | Confirm against Mattermost SAML documentation | First name | Decide whether Keycloak sets names on every sign-in or users edit them in Mattermost. |
| Last name (user property) | Confirm against Mattermost SAML documentation | Last name | Apply the same rule as first name so display names stay consistent across accounts. |
| Role attribute (realm or client role mapper) | Confirm whether Mattermost reads a role attribute and which values it accepts | System role | Decide which Keycloak roles grant system admin, if any, and keep admin roles out of default assignments. |
| Team or group attribute (group or user attribute mapper) | Confirm whether team sync is supported on your plan and in the SAML docs | Team membership | Decide whether Keycloak or Mattermost admins own team membership, since split control causes drift. |
| Subject (NameID) set on the Keycloak client | Confirm the accepted NameID format in Mattermost SAML documentation | Account matching key | Decide which identifier links a SAML login to an existing account before any users sign in. |
Assertion signing and encryption choices for Keycloak and Mattermost
The first decision is what Keycloak signs. In a SAML sign-in, the identity provider can sign the whole response, the assertion inside it, or both. Mattermost needs to verify whichever element it expects, so the choice has to match what the Mattermost SAML configuration accepts. Confirm this against the Mattermost SAML single sign-on documentation for your server version, then set the matching options on the Keycloak SAML client. Do not assume that a default in Keycloak matches what Mattermost validates. Test a single account after each change and inspect the SAML response in a browser tool to confirm which elements carry a signature before you widen the rollout.
Next, decide which certificate Mattermost trusts. Mattermost holds the public certificate used to verify Keycloak signatures, and that certificate comes from the Keycloak realm's signing key for the client. Record the realm, the key identifier and the certificate expiry date in your change log, so anyone reviewing a failed login can see which key is in use. Confirm with your Mattermost administrator where the certificate is loaded and whether it is held in the server configuration or in a file the server reads. Keep the identity provider and service provider settings under the same change control, since a mismatch on either side produces the same generic sign-in error.
Certificate rotation is the most common cause of a sudden sign-in outage for SAML integrations. A signing certificate expires on a fixed date, and the platform will reject every assertion once it does, even though nothing else has changed. Plan rotation as a scheduled task with a calendar reminder well before expiry, a named owner on each side, and a rollback path. Where the platform accepts more than one certificate during a transition, add the new certificate first, verify sign-in with a test account, and only then retire the old one. Ask both vendors and your own administrators which rotation steps the current versions support, and do not rely on memory of an earlier release.
Assertion encryption is a separate choice and adds value only for a specific threat model. Signing protects integrity: it lets Mattermost confirm that the assertion came from Keycloak and was not altered. Encryption protects confidentiality of the attribute values inside the assertion while the message passes through the browser and any intermediaries. If your attributes are low sensitivity and the connection uses TLS end to end, encryption adds key management work without a clear gain. If the assertion carries sensitive identifiers, or your security team requires confidentiality against browser-side inspection, encryption becomes worth the extra key lifecycle. Confirm that the Mattermost configuration accepts encrypted assertions before you design around them, and confirm the Keycloak client settings that produce the encryption key pair.
Treat certificate expiry as a recurring operational task rather than a one-time setup step. Before go-live, ask the team to document each certificate, its expiry date, the people who can rotate it and the test account used to verify sign-in. Keep at least one test account outside the general user population so a failed rotation can be diagnosed without locking out administrators. Run a rotation rehearsal in a non-production Mattermost environment where one exists, and make sure the rehearsal covers both the Keycloak change and the Mattermost reload. These steps cost little compared with an unplanned outage on the day a certificate expires.
Security settings to harden this Keycloak SAML integration
A SAML sign-in between Keycloak and Mattermost puts an identity provider and a collaboration platform in the trust path for every employee account. The cards below cover the settings that most affect that trust, from transport security and endpoint separation to assertion validation, session length and administrative access. Confirm each setting against your own security policy before go-live, because the right values depend on your risk model and on what your auditors expect.
TLS on every endpoint
Keycloak's production guide calls for TLS on all communication, so the browser-facing Keycloak hostname, the Mattermost site URL, and the back-channel calls between them should all use HTTPS with certificates your organization trusts. Check that the SAML metadata, the ACS and single sign-on URLs, and the Mattermost site URL use the same scheme and hostname, because a mismatch causes failed logins and tempts teams to weaken settings. Confirm the certificate chain and renewal process with the team that owns your load balancer or reverse proxy.
Separate admin and public hostnames
Keycloak's production guide recommends exposing the admin console and Administration REST API on a different hostname or context path from public frontend URLs. For this integration, the users signing in to Mattermost only need the login flow endpoints, so the reverse proxy should block administrative paths on the public hostname and route them only from your management network. Test that a request to the admin console from outside the approved network fails, and record the proxy rules as part of the change.
Signature validation on SAML responses
Mattermost should accept SAML responses only when they are signed by the Keycloak realm key that you have registered for this client. Confirm in the Keycloak client settings whether assertions, responses or both are signed, and set the matching options in Mattermost so that unsigned or tampered assertions are rejected. Decide whether assertion encryption is required by your policy, and if so, verify that the encryption certificate is exchanged and rotated through a documented process rather than copied between tickets.
Restricted redirect URIs
The Keycloak client for Mattermost should list only the exact assertion consumer service URL and the Mattermost site URL that you control, with no wildcards or unused development hosts. Open redirects and loose patterns let an attacker who controls a similar hostname receive assertions or sign-in responses. Review the list whenever the Mattermost hostname changes, and remove entries left over from testing, since each one widens the set of places a sign-in can return to.
Session lifetimes that match policy
Set Keycloak SSO session idle and maximum lifetimes, and the Mattermost session length, according to the policy your organization applies to collaboration tools. Shorter idle timeouts reduce exposure on shared workstations, while longer values reduce repeated sign-ins for staff who use Mattermost all day. Confirm whether Mattermost session revocation is triggered when a user is disabled in Keycloak, and test that behavior with a disabled test account before relying on it for offboarding.
Role and group checks before administration
Do not grant Mattermost system administration based only on a signed-in account. Map a specific Keycloak group or role claim to Mattermost administration through the attribute mapping you configure, and require that the claim comes from a group your identity team maintains. Confirm which claims Mattermost reads from the SAML assertion, and review who holds membership in the mapped group, because membership changes in Keycloak will flow into Mattermost access on the next sign-in.
Administrative access to both systems
Limit who can change the Keycloak realm, the SAML client, and the Mattermost system console, and keep these roles separate from everyday application access. Use named administrator accounts, require multi-factor authentication for administrative logins in Keycloak, and keep a documented break-glass procedure for the case where SSO is unavailable. Review the administrator lists on a schedule your policy sets, and confirm that changes to the SAML client and Mattermost SSO settings are logged to a system your security team can read.
Logging and metrics coverage
Keycloak exposes Prometheus-format metrics at /metrics on its management interface when started with --metrics-enabled=true, and the observability guide documents optional HTTP request and cache histograms. Enable the setting deliberately, restrict who can reach the management interface, and confirm that your monitoring stack scrapes it. Pair these metrics with Keycloak event and admin event logs and Mattermost audit records, and confirm with your security team which events, such as failed logins and admin changes, must be retained and for how long.
How to test Keycloak SAML sign-in before users depend on it
Before any user signs in to Mattermost through Keycloak, run a defined test plan against the exact topology that will serve production traffic. Start with a dedicated test user in Keycloak, not a personal account, and assign it only the groups and attributes the Mattermost SAML client is meant to read. Sign in from a clean browser session each time, so cached Keycloak sessions or Mattermost cookies do not hide a broken assertion or a stale redirect. Record which SAML attributes arrive at Mattermost and confirm that the attribute mappers in the Keycloak client produce the email, username and name values Mattermost expects. Mattermost documents its own SAML settings, so check each setting against that page rather than against memory of an earlier environment.
Next, test the account lifecycle paths that real users will hit. Sign in as a user who has never existed in Mattermost to confirm first-login account creation, then check the resulting account's email, username and team membership. Create a Mattermost account with the same email address first, sign in through Keycloak, and observe whether the accounts match or whether a duplicate appears, because that behavior decides how you handle users who already exist. Test sign-out from both sides: signing out of Mattermost, and signing out of Keycloak and then opening Mattermost. Note whether the Keycloak session still allows silent sign-in. Then test a user whose assertion omits the email or username attribute, and a disabled Keycloak user, which should be refused at the Keycloak login step. Record the exact error text each user sees, because support staff will need it.
Test the production path itself. Mattermost high availability is available only on the Enterprise and Enterprise Advanced plans, so if your design uses more than one application server, run these tests through the same load balancer, TLS termination point and hostnames that production uses. A test against one node on a private address can pass while the SAML ACS URL, the entity ID or the forwarded protocol header fails behind the proxy. Confirm that the Keycloak client's valid redirect URIs and the Mattermost site URL match the public hostname exactly, and that the signing certificate and any encryption settings reach every node in the same way.
Rehearse certificate rotation before you need it. Generate a new signing certificate in a staging realm, update the Keycloak client and the Mattermost SAML configuration in the order your runbook specifies, and confirm that sign-in works with the new certificate and fails cleanly with the old one. Time the steps and note which ones required a restart or a maintenance window. Your rehearsal should also confirm who holds the Keycloak admin credentials and where the certificate and key are stored, since a rotation that only one engineer can perform is a delivery risk.
Finally, plan recovery. Keep at least one local Mattermost system administrator account that does not depend on SAML, store its credentials under your normal privileged access controls, and test that you can sign in with it during the same window as the SSO tests. Document how to disable SAML enforcement and fall back to local sign-in, and confirm which Mattermost and Keycloak settings must change to do so. Keycloak and Mattermost are both self-hosted, so the recovery path should not require a call to a vendor. Repeat the test plan after each Keycloak or Mattermost upgrade, since either can change how assertions, sessions or certificates behave.
Common Keycloak Mattermost SAML SSO failures and fixes
This table lists the sign-in failures teams most often meet when Keycloak and Mattermost exchange SAML messages, with the likely cause, the fix and the check that confirms the fix. Work through each row by applying the fix, then running the named check before you close the issue. Most failures trace to a mismatch between the two sides in URLs, identifiers, certificates, clocks or attributes, so compare those values first.
| Symptom | Likely cause | Fix | Check that proves the fix |
|---|---|---|---|
| Sign-in fails at the return step after Keycloak authenticates the user | The assertion consumer URL registered in the Keycloak SAML client does not match the Mattermost SAML endpoint | Set the Keycloak client's valid redirect and assertion consumer URL to the exact Mattermost SAML address | Compare the URL in the Keycloak client with the Mattermost SAML settings, then run a test sign-in in a private browser window |
| Mattermost does not recognize the identity provider during sign-in | The entity ID in Keycloak and the identity provider entity ID in Mattermost differ, often after a copy error | Use one identical entity ID on both sides and update the Mattermost configuration if the Keycloak value changed | Download the Keycloak SAML descriptor and confirm its entityID matches the Mattermost setting character for character |
| Every assertion fails validation after a signing key is rotated or regenerated | Mattermost still holds the retired certificate while Keycloak signs with the new realm key | Upload the current signing certificate to Mattermost or refresh its metadata, then remove the retired key from the client | Compare the certificate fingerprint shown in the Keycloak realm keys with the one stored in Mattermost, then sign in fresh |
| Intermittent failures for some users, or failures that clear after a restart | Keycloak and Mattermost hosts disagree on time, so assertion validity windows look expired or not yet valid | Sync both servers to the same time source and review the assertion lifetime settings | Compare system time on both hosts against the time source and check sign-in logs for timestamp rejections |
| Users sign in but show blank name or email, or cannot be matched to an existing account | A Keycloak attribute mapper sends a different attribute name than Mattermost expects, or the user profile lacks the value | Align attribute names in the Keycloak mapper with the Mattermost SAML attribute mapping and complete the user profile fields | Inspect a SAML response for a test user and confirm each mapped attribute appears with the expected name and value |
| Redirects point to an internal host or path, or the login page loads but the callback fails | The reverse proxy rewrites the hostname or path, so Keycloak or Mattermost issues URLs that differ from the public addresses | Set the public hostname and proxy headers in Keycloak and the site URL in Mattermost to the public address | Open both login flows through the proxy and confirm every hostname and path in the redirects matches the public address |
| A user disabled in Keycloak can still use Mattermost until an existing session ends | Mattermost sessions and Keycloak sessions are managed separately, so disabling the user in Keycloak does not end the Mattermost session | Deactivate the user in Mattermost as well and review session expiry and revocation settings in both systems | Disable a test user in Keycloak, then confirm whether the open Mattermost session still works and whether the account is deactivated |
| Sign-in breaks shortly after a Keycloak or Mattermost upgrade | Changed defaults, deprecated settings or altered SAML behavior in the new version, such as login failures stored in the database by default in Keycloak 26.8 | Read the upgrade notes for both products, reapply the SAML settings and test the upgrade on a staging copy first | Run a sign-in test on staging for a new user, an existing user and an administrator before upgrading production |
Questions buyers ask about Keycloak Mattermost SAML SSO
How much does Keycloak Mattermost SAML SSO integration cost?
The cost has four parts, and each is paid to a different party. Mattermost licensing is a prepaid annual subscription priced by seat licenses, and Mattermost's pricing page lists no public prices and directs buyers to sales. Keycloak is open source under the Apache 2.0 license, so there is no license fee, but you pay for the servers, database, TLS certificates, backups and staff time that run it. Configuration and testing is the labor to set up the SAML client, attribute mappers, assertion signing and encryption, and to test sign-in. DeployOpen issues a quote from a written scope that lists these deliverables. Ask any quote to separate one-time work from recurring items such as support and upgrades.
Does Mattermost SAML single sign-on require a paid plan?
Yes. According to Mattermost's pricing page, SSO including SAML is included from the Professional plan, so a plan below that does not give you SAML sign-in. Mattermost sells Professional, Enterprise and Enterprise Advanced as prepaid annual subscriptions based on seat licenses. The pricing page lists no public prices, so ask Mattermost sales for the current figures for your user count. Confirm the plan in writing before you start the project, because the choice affects which features you can use later, such as high availability clustering, which the pricing page places in the Enterprise plan.
Can our own team set up Mattermost SAML SSO with Keycloak?
Yes, if you have people who know both products well. Mattermost documents SAML single sign-on in its administration guide, and Keycloak documents SAML clients, signing keys and attribute mappers in its server administration guide. The harder part is the troubleshooting: Mattermost lists Keycloak as a custom identity provider, so your team owns problems that fall between the two products. Your team needs experience with SAML assertions, certificate handling, user attribute mapping and the Keycloak admin console. If those skills are thin, a fixed-scope project with a written test plan reduces the risk of a broken login on go-live day.
How long does a Keycloak to Mattermost SAML integration take?
No duration applies to every environment, so ask for a timeline in the written scope. The main drivers are whether Keycloak already runs in production with TLS and a reverse proxy, how many realms and attributes need mapping, whether assertion encryption is required, and whether Mattermost runs as a single server or a high availability cluster. Shared file storage and database replicas add work when they are present. Testing is often the longest step, because login must be checked with real user accounts, role changes and logout. Your change window and approval cycle also set the calendar, even when the technical work is short.
What does our team need to provide for this integration?
Plan for named people and access before work begins. You need a Keycloak administrator who can create clients, mappers and keys, and a Mattermost system administrator who can change the SAML settings and restart the service. Your team should also provide a staging environment that matches production as closely as practical, DNS and TLS certificate access for both hostnames, and a list of test users with the roles they hold. A written test plan and a change window for the production switch are needed. Agree who signs off each test result, and who can roll back the Mattermost SAML settings if sign-in fails.
What happens when Mattermost support lists Keycloak as a custom identity provider?
Mattermost lists Keycloak as a custom identity provider, so the vendor's support may not cover problems on the Keycloak side of the login. Your own support model has to fill that gap. Agree before go-live who investigates Keycloak configuration, who investigates Mattermost settings, and where logs are read. Keep an exported copy of the Keycloak client and mapper settings, and record each Mattermost setting that the integration depends on. Mattermost releases server versions on the 16th of each month, so retest SAML login after each Mattermost upgrade in staging. Confirm the support boundary with Mattermost directly, because its position on custom identity providers can change.
How do Keycloak upgrades affect the Mattermost SAML client?
Keycloak plans four minor releases a year and a major release every two to three years, and it states that breaking changes in a minor release will be opt-in. Still, each upgrade can change behavior that your SAML client depends on, so read the upgrade notes for every version you cross. Check signing and encryption settings, certificate handling and any validation rules that became mandatory. Keycloak runs database schema migrations automatically at startup by default, and administrators can apply them manually for large deployments. Keep the Keycloak Operator on manual approval if you deploy with it. Test a full SAML sign-in in staging before each production upgrade.
How does DeployOpen price a Keycloak and Mattermost SAML project?
DeployOpen does not publish a price list. Most engagements are fixed-scope, so the quote follows from a written scope that names the deliverables, timelines and what the client provides. For this integration, the scope should cover the Keycloak client and mappers, assertion signing and encryption choices, the Mattermost SAML configuration, the test plan and the handover. Mattermost licenses are bought from Mattermost, and DeployOpen is not a reseller of them. Ask the quote to list the Mattermost plan assumed, the hosting you already pay for, and whether ongoing support, upgrades or continuous testing are separate retainers.
How DeployOpen scopes and delivers this integration
DeployOpen scopes Keycloak and Mattermost SAML SSO as a fixed-scope engagement, covering the Keycloak SAML client, attribute mappers, signing and encryption settings, and the Mattermost SAML configuration. Mattermost documents Keycloak as a custom identity provider, so we test the full sign-in path before handover. Ongoing support is available as a retainer.
How we scope
- The written scope names the Keycloak realm, SAML client, and Mattermost plan and version in use.
- We confirm which Mattermost plan includes SAML sign-in before quoting, since the plan determines feature access.
- Scope records the attribute mappings for email, username, and role claims that Mattermost will receive.
How we build
- Create the Keycloak SAML client with the Mattermost assertion consumer URL, entity ID, and signing settings.
- Configure signature and encryption choices on both sides and document which certificate each party trusts.
- Map Keycloak user attributes to Mattermost fields, then test provisioning with a small pilot group of accounts.
How we hand over
- Deliver the exported Keycloak client configuration, Mattermost SAML settings, and a record of each decision.
- Provide a sign-in test script covering login, logout, certificate rotation and a rejected-user case.
- Walk administrators through renewing the signing certificate before it expires, with a dated runbook entry.
How we support
- Ongoing support is available as a retainer, covering Keycloak and Mattermost upgrades that touch the SAML path.
- Re-test sign-in after each Mattermost server release and Keycloak minor release, since either can affect SSO behavior.
- Confirm with Mattermost which configurations your plan supports before changing identity settings in production.

