Rocket.Chat and Keycloak SSO integration

Rocket.Chat and Keycloak SSO integration lets staff sign in to chat with the accounts your identity team already manages. This page covers the protocol choice, setup sequence, attribute mapping, plan requirements and the failures that usually block go-live.

On this page

What Rocket.Chat and Keycloak SSO integration changes for your team

The Rocket.Chat and Keycloak integration is a trust relationship between two systems, configured on both sides, in which Keycloak authenticates staff and Rocket.Chat accepts the result. You can build that trust with SAML 2.0 or OpenID Connect. Keycloak remains the source of identity throughout, so passwords, MFA policy and account disablement are controlled in Keycloak, while Rocket.Chat decides which features a signed-in user can reach. Both protocols are supported by Keycloak, which is licensed under Apache 2.0 and is a Cloud Native Computing Foundation incubating project.

Rocket.Chat does not simply borrow Keycloak's directory at login. It keeps its own user records, roles, and channel memberships, so a successful sign-in is only part of the picture. You need to plan three things together: how a user's account is created in Rocket.Chat the first time they sign in (provisioning), which Keycloak claims or attributes map to Rocket.Chat fields such as username, email and display name (attribute handling), and what happens to a Rocket.Chat account when the person leaves or changes role in Keycloak. If these are designed separately, you can end up with duplicate accounts, usernames that collide, or former staff who still hold a valid chat history with no clear owner.

Email is the field most teams underestimate. Rocket.Chat needs a reliable email address per user, and the mapping has to match the way your organization treats email as a unique identifier. Confirm early whether Keycloak holds verified email addresses for every staff member, including contractors and shared service accounts, and decide how accounts without one will be handled. Also confirm how your team wants to handle username changes, since a renamed Keycloak user can produce a second Rocket.Chat account unless the mapping is planned for that case.

Licensing affects what you can promise to the business. Rocket.Chat's free Starter plan includes single sign-on, so the basic integration does not require a paid subscription. Group and role mapping from identity providers is listed on Rocket.Chat's paid plans, so if your access model depends on Keycloak groups deciding Rocket.Chat roles, confirm the plan tier in writing before design starts. Ask the vendor to confirm which SSO and mapping features apply to your deployment size and version, because plan limits and capabilities are set by the vendor and may change.

Before building, make three decisions with the people who own identity and collaboration: which protocol to use, which Keycloak realm and client will represent Rocket.Chat, and who owns the attribute and offboarding rules. Then run a test with a small pilot group that includes a user with an unusual email or username, a user who moves between groups, and an account you disable in Keycloak. Those checks reveal most of the gaps that would otherwise surface after go-live.

What you need before connecting Rocket.Chat to Keycloak

Each item below must be in place before you import a certificate or create a client on either side. Rocket.Chat, MongoDB, Keycloak, DNS, TLS and the network path depend on one another, so a gap in one usually appears as a login failure somewhere else. Check them in this order and record the versions you confirm.

Rocket.Chat 8.x workspace

A running Rocket.Chat 8.x workspace on a release line that still receives security fixes. Standard releases are supported for 6 months and LTS releases for 12 months, so check the end-of-life date for your line before you start. Confirm that the SSO and group mapping features you plan to use are included in your plan, because group mapping is a paid-plan capability.

MongoDB 8.0 or later replica set

Rocket.Chat 8.x requires MongoDB 8.0 or later running as a replica set, and a three-member replica set is strongly recommended for high availability. Confirm that the replica set reports healthy members and that the Rocket.Chat connection string points to it. Fix any database problem first, because changing SSO settings will not correct a broken database connection.

Keycloak 26.x realm and admin account

A Keycloak 26.x server with a dedicated realm for Rocket.Chat users and an administrator account that can create clients, mappers and protocol settings. Confirm the exact 26.x minor version against the Rocket.Chat SSO documentation for your Rocket.Chat release, because no tested Keycloak version for this pairing is stated here. Record the confirmed version in your change plan.

DNS names and TLS for both services

Give Rocket.Chat and Keycloak their own stable DNS names, each with a certificate that browsers and the Rocket.Chat server trust. The Keycloak hostname appears in issuer and endpoint URLs, and the Rocket.Chat site URL appears in redirect addresses, so a later rename means updating the integration. Confirm that certificate chains include intermediates and that renewal is automated.

Network reachability between three parties

The user's browser must reach both Rocket.Chat and Keycloak to follow login redirects. The Rocket.Chat server must also reach Keycloak directly to read discovery or metadata documents and to complete token or assertion exchanges, depending on the protocol you choose. Test each path from the network zone and firewall rules that production will use.

Signing certificate plan

If you use SAML, Keycloak signs assertions with a realm key that Rocket.Chat must trust, so the certificate exchange becomes a recurring task. Decide who owns the key, where the public certificate is stored, how Rocket.Chat administrators will be warned before expiry, and how you will roll over to a new key. Confirm the key size and algorithm your security policy requires before you generate it.

Choosing SAML or OpenID Connect for Rocket.Chat and Keycloak SSO

The first decision is whether Rocket.Chat and Keycloak will exchange identity over SAML 2.0 or OpenID Connect. Make this choice before any configuration starts, because each protocol creates different objects in Keycloak, different values in Rocket.Chat, and different failure modes after go-live. SAML 2.0 depends on a signing certificate exchanged between the two systems and on assertion attributes that carry the user's identity and any group membership. OpenID Connect depends on a client ID, a client secret, a registered redirect URI, and claims returned in the ID token or user info response. Both work with Keycloak, so the decision is about operations and fit, not about which one is more secure in the abstract.

Certificate rotation is where the two protocols differ most in day-to-day operations. With SAML, the signing certificate that Keycloak uses for the realm or SAML client must match the certificate Rocket.Chat trusts. When that certificate is replaced, both sides must change in the same window, or every user will fail to sign in at once. With OpenID Connect, the client secret has its own rotation schedule, and a changed Rocket.Chat domain or callback path breaks the redirect URI registration. Ask your security team to record which credential expires, who owns it, and how the change is staged. Then confirm in Rocket.Chat's SSO documentation how the product stores and replaces each value for your release.

Attribute availability decides how much identity data reaches Rocket.Chat. In a SAML setup, the username, email, and any group attributes must be emitted by attribute mappers on the Keycloak SAML client, and their names must match what Rocket.Chat reads. In an OpenID Connect setup, the same information arrives as claims, which depend on requested scopes and on protocol mappers that place group or role values into the token. Rocket.Chat needs a usable email address for each account, so a missing email claim or attribute is a configuration defect, not a cosmetic one. Build a test user with known attributes and compare the raw assertion or token against the names the Rocket.Chat documentation expects.

Troubleshooting also differs. SAML failures often surface as signature validation errors, clock skew between servers, or audience and destination mismatches, and the assertion is XML that engineers must decode before they can read it. OpenID Connect failures usually appear as redirect URI mismatches, invalid client secrets, missing scopes, or claims that never reach the application, and decoded tokens are easier to inspect. Whichever protocol you choose, enable detailed logging on both Keycloak and Rocket.Chat during testing and keep a runbook for these errors.

The decision depends on two inputs. The first is what your security team already runs elsewhere, because reusing one protocol across applications simplifies certificate management, monitoring, and staff skills. The second is what the Rocket.Chat release you operate supports. Rocket.Chat's free Starter plan includes single sign-on, while LDAP and SAML user group mapping is listed on its paid plans, so confirm whether group-based access in your design requires a paid plan before you pick a protocol around it. Also check that your release is within its supported window, because unsupported versions stop receiving fixes. Confirm both points in Rocket.Chat's SSO documentation and record the answers in your design.

Configuring the Keycloak client and Rocket.Chat SSO in sequence

This sequence connects a Keycloak realm to Rocket.Chat through a single client, so workforce users sign in with their directory credentials. Each step closes with a check, so the team knows the link works before rolling it out to users. Confirm exact setting names and callback paths against the Rocket.Chat and Keycloak versions you run.

  1. Choose or create the Keycloak realm

    The platform or identity team decides whether Rocket.Chat uses an existing realm or a dedicated one. A dedicated realm keeps client settings, login flows and test users separate from other applications. Create the realm in the Keycloak admin console, then add one standard user who is not an administrator and one administrator account for setup work. Confirm the realm loads and both accounts can sign in to the Keycloak account page. This confirms the identity source is ready before any Rocket.Chat setting changes.

  2. Create the client for the chosen protocol

    Choose SAML 2.0 or OpenID Connect based on the Rocket.Chat SSO option your version offers and your security team's standard. Create the client in the chosen realm, set the client ID, and enter the Rocket.Chat callback or assertion consumer URL exactly as shown in Rocket.Chat's SSO settings for your version. Mismatched redirect URIs are a common cause of failed logins, so compare the values character by character. Check that the client appears in the clients list and that its protocol matches the Rocket.Chat setting you plan to use.

  3. Export the signing certificate or record OIDC endpoints

    For SAML, export the realm's signing certificate or the identity provider metadata from the realm's SAML descriptor, and store it where the Rocket.Chat administrator can paste it. For OpenID Connect, record the issuer URL, authorization endpoint, token endpoint, userinfo endpoint and JWKS URI from the realm's discovery document. Check the metadata or discovery document in a browser or with a command-line request, and confirm the issuer value matches the realm URL exactly. Save the values in your change record so the Rocket.Chat configuration can be traced later.

  4. Enter the values in Rocket.Chat SSO settings

    A Rocket.Chat administrator opens the workspace administration area, finds the SSO settings for the chosen protocol, and enters the certificate, metadata or OIDC endpoints from the previous step. Save the settings and keep the change record updated with the setting names used in your version. Check the save result on screen, then attempt one sign-in from a private browser window with the standard test account. Review the Rocket.Chat server logs for the authentication attempt, and confirm the exact log messages with your Rocket.Chat version's documentation before relying on them in alerts.

  5. Map the returned attributes to Rocket.Chat fields

    Rocket.Chat needs a username and an email address for each account it creates or links, so confirm that Keycloak returns both in the SAML assertion or OIDC token. Map the username, email and display name claims or attributes to the fields the Rocket.Chat SSO settings expect. Email is a requirement for account matching, so test with a user whose email is set. Group and role mapping is a separate feature, and the pillar facts list LDAP and SAML user group mapping on paid plans, so confirm which groups your plan supports before designing role rules. Check the created Rocket.Chat account for the expected username and email.

  6. Verify the token or assertion with a non-admin login

    Sign in to Rocket.Chat with the non-admin test account from a clean browser session. Confirm the user lands in the correct workspace with the expected name and email. For OpenID Connect, decode the ID token using a trusted local tool and check the issuer, audience, expiry and claim values. For SAML, decode the assertion and check the issuer, audience restriction, name identifier and attribute statements. Keep decoded samples out of shared tickets because they can contain personal data. Repeat the test with a second non-admin account before the team moves to pilot users.

  7. Define the client declaratively with the operator

    If the team deploys Keycloak with the Keycloak Operator, the KeycloakSAMLClient and KeycloakOIDCClient custom resources can define the client in version-controlled manifests instead of through the admin console. Apply the resources to the cluster where Keycloak runs, then confirm the client appears in the expected realm and that the earlier login test still passes. The Keycloak Operator documentation strongly recommends manual approval mode for operator updates, so upgrades to the operator and to Keycloak itself are reviewed before they run. Record the operator approval setting in the platform runbook so future changes follow the same review path.

Which Keycloak attributes map to Rocket.Chat users and roles

This table lists each identity field the Keycloak integration needs, where it comes from in Keycloak, the Rocket.Chat field it fills, and whether sign-in depends on it. Read the Required column as the minimum for account matching and first sign-in, and treat the email row as a checkpoint to confirm in Rocket.Chat's documentation before you design claims. Group and role mapping is a paid-plan feature, so confirm the mapping columns against the Rocket.Chat version in use.

Identity fieldKeycloak sourceRocket.Chat field it fillsRequired
UsernameUsername attribute of the Keycloak user, sent as the preferred_username claim (OIDC) or as the mapped SAML attributeRocket.Chat usernameYes. Confirm whether Rocket.Chat accepts the Keycloak value unchanged or needs a mapper.
Email addressemail claim (OIDC) or mapped email attribute (SAML), with the email_verified claim where availableEmail field used to match an existing account on first loginYes for matching. Confirm in Rocket.Chat's documentation whether a verified email is required.
Full namegiven_name and family_name claims, or a name claim, or the matching SAML attributesDisplay name on the user profileRecommended. Confirm whether Rocket.Chat requires it at first login.
Stable user identifiersub claim (OIDC) or SAML NameID, which does not change when a username changesExternal identity link for the account, if Rocket.Chat stores itRecommended. Confirm how Rocket.Chat relinks accounts after a username change.
Group membershipGroup mapper that adds a groups claim, or a SAML attribute listing group namesGroup mapping to Rocket.Chat user groupsNo for basic sign-in. Paid-plan feature; confirm group names and the mapping method.
Role claimRealm or client roles added to the token or assertion by a role mapperRole assignment in Rocket.ChatNo for basic sign-in. Paid-plan feature; confirm role names and how roles are applied on each login.

Hardening Keycloak SSO for Rocket.Chat in production

Keycloak's defaults suit a lab more than a production sign-in path. The cards below cover the settings that decide whether Rocket.Chat SSO stays secure and available: transport security, client restrictions, certificate ownership, token lifetimes, authentication policy, and the database and monitoring baseline.

TLS on both endpoints

Keycloak and Rocket.Chat both need TLS with certificates that match their public hostnames. Keycloak's production configuration guide expects a configured hostname and HTTPS, and the SAML or OpenID Connect exchange fails if either side presents an untrusted chain. Check that the Rocket.Chat site URL, the Keycloak issuer URL and every redirect between them use HTTPS, and confirm that internal network paths trust the same certificate authority.

Restricted redirect URIs and origins

In the Keycloak client for Rocket.Chat, list only the exact callback URLs that Rocket.Chat uses, and set valid web origins to its public address. Wildcard redirect URIs can let an attacker who controls another path on the same host receive authorization codes. Review the client after every Rocket.Chat upgrade or hostname change, because the callback path may change, and confirm the values against your Rocket.Chat SSO settings before go-live.

Certificate rotation ownership

Name one owner for each certificate in the chain: the Keycloak TLS certificate, the Rocket.Chat TLS certificate and any signing certificate exchanged for SAML. An expired certificate often shows up as a failed login for every user at once, so the rotation runbook should say who renews each certificate, who installs it in Keycloak and Rocket.Chat, and how the change is tested. Write this down before launch and confirm where SAML signing keys are stored.

Short session and token lifetimes

Set Keycloak access token, refresh token and SSO session lifetimes to values your security policy defines, short enough that a stolen token has limited use. Rocket.Chat keeps its own login session, so a long Keycloak session can keep an idle user signed in on a shared device. Review idle and maximum session settings in both systems together, then test a sign-out from Keycloak to confirm how the Rocket.Chat session responds.

MFA and the local recovery path

Where your security policy requires multi-factor authentication, enforce it in Keycloak's browser authentication flow so every SSO sign-in is covered. Rocket.Chat also keeps a local administrator login for recovery, and that login bypasses SSO. Store its credentials in a secrets vault, restrict who can use it, and test it on a schedule so administrators can still sign in when Keycloak is unavailable. Confirm which Rocket.Chat MFA features apply to that account on your plan.

Supported database and login monitoring

Keycloak's database guide lists PostgreSQL 14 to 18 among its supported production databases, and its default dev-file database is for development only. Confirm the PostgreSQL version and high availability design before go-live. Enable the metrics endpoint described in Keycloak's observability guide and alert on failed login counts, so credential attacks and broken SSO show up in your monitoring stack.

Testing sign-in, logout and account changes before cutover

Before any user is moved to Keycloak sign-in, run a scripted test plan that covers the account states your users will actually hit. The plan should exercise the trust between Keycloak and Rocket.Chat, not just whether the login page loads. Write each case down with the expected result in Keycloak, the expected result in Rocket.Chat, and the evidence you will keep, such as a screenshot, the Rocket.Chat user record, or the Keycloak event log entry. Start with first sign-in for a new user who exists only in Keycloak. Confirm that Rocket.Chat creates the account on first login, that the username, display name and email attributes arrive through the mappers you configured, and that the account lands in the expected default channels and roles. Then test sign-in for an existing Rocket.Chat account whose email matches a Keycloak user. Check whether your configuration links the two accounts or creates a duplicate, because a mismatched or unverified email is the most common cause of a second account appearing.

Next, test the negative cases. Disable a test user in Keycloak and attempt sign-in to Rocket.Chat, then confirm that the session fails and that the user cannot reach the workspace through a cached token or the mobile and desktop clients. Remove a test user from a group or realm role that your Rocket.Chat role mapping depends on, then sign in again and confirm the Rocket.Chat role or group membership changes as your design intends. If group and role mapping depends on a paid Rocket.Chat plan, confirm that your edition supports it before you rely on the result of this case. Test logout from both directions. Sign out of Rocket.Chat and confirm whether the Keycloak session also ends, then sign out of Keycloak and confirm that Rocket.Chat no longer accepts the old session. Record the results separately, because Rocket.Chat and Keycloak can each keep their own session lifetimes. Confirm the token and session timeouts with your team rather than assuming defaults.

Keep these tests in a non-production Keycloak realm and a non-production Rocket.Chat workspace where possible, so that disabling accounts, changing groups and forcing logouts does not disturb real users. Test accounts should mirror the attributes, groups and roles of production accounts. Where you cannot run a separate workspace, use dedicated test identities and document exactly which production objects you touched and how you restored them. Failover of Keycloak is a separate exercise. Keycloak's high availability designs depend on a synchronously replicated database, and the failover tests for that database, the cluster and any availability zone behavior belong to the Keycloak infrastructure plan. Passing the sign-in tests above does not prove that Rocket.Chat keeps working when a Keycloak node or zone fails. Plan a second test window for that, and confirm with your database and platform owners how replication and failover are verified in your environment.

Agree on pass criteria, the owner for each case and the rollback steps before the test window opens. A cutover should not proceed while any negative case, such as a disabled account that can still sign in, is unresolved. Ask your implementation partner to show the test script, the evidence format and the list of environments they used, so that the same plan can be repeated after any Keycloak or Rocket.Chat upgrade.

Common Rocket.Chat and Keycloak SSO failures and fixes

This table lists the failures teams most often meet when wiring Rocket.Chat to Keycloak, with the likely cause and a starting fix for each. Read each row as a hypothesis to test, not a diagnosis, and confirm every fix against the logs and documentation for your exact Rocket.Chat and Keycloak versions. The main takeaway is that most SSO failures trace back to a small set of mismatches in URIs, certificates, clocks, claims and upgrade state.

SymptomLikely causeFix
Sign-in fails at the Keycloak redirect stepRedirect URI or assertion consumer URL registered in the Keycloak client does not match the Rocket.Chat site URL exactly, including scheme, host, port and pathCompare the client settings in Keycloak with the Rocket.Chat site URL and the SSO callback path in the Rocket.Chat documentation for your version, then correct the registered value and retest
Keycloak shows a login page but the return to Rocket.Chat failsSAML assertion consumer URL or OIDC redirect URI differs from what Rocket.Chat sends, often after a hostname or reverse proxy changeCheck the proxy forwarded headers and public URL settings, align them with the registered client, and confirm the exact callback path in your version's documentation
Signature validation errors after a certificate changeThe signing certificate or key was rotated in Keycloak, but Rocket.Chat still holds the old public certificate or the metadata was not re-importedRe-export the realm or client certificate from Keycloak, re-import it into Rocket.Chat, and keep rotation dates in your change calendar so both sides change together
Assertions or tokens rejected as not yet valid or expiredClock skew between the Keycloak host, the Rocket.Chat host and the proxy or load balancerConfirm all servers sync to the same time source, check time offsets in logs, and fix NTP before changing any SSO settings
Users authenticate but Rocket.Chat creates no account or the email field is emptyThe email claim or SAML attribute is not mapped in Keycloak, or the mapper name does not match what Rocket.Chat expects for your versionAdd or correct the email mapper on the client, sign in as a test user, inspect the returned claims or attributes, and confirm the field name in the Rocket.Chat SSO documentation
Users sign in but have no group, role or channel accessGroup or role claims are not included in the token or assertion, or group mapping is not enabled on the plan in useVerify the group or role mapper output for a test user, check whether group mapping is included in your Rocket.Chat plan, and confirm the mapping setting for your version before assigning access
Login loop or repeated redirects after a Rocket.Chat upgradeSettings, redirect paths or certificates changed during the upgrade, or cached sessions and client configuration from the previous version remain in useReview the release notes for the target version, reapply SSO settings, clear affected sessions, and confirm the post-upgrade configuration against the upgrade documentation for your Rocket.Chat and Keycloak versions
Sign-in works for some users but not othersAccounts already exist in Rocket.Chat with a different username or email, or users are blocked by an existing identity linkCompare the identity attributes of failing and working accounts, resolve duplicates in the Rocket.Chat admin console, and confirm the account linking behavior for your version

How much effort and cost does a Rocket.Chat Keycloak SSO integration take?

Can our own team integrate Rocket.Chat with Keycloak without outside help?

Yes, if you own both systems and can test with real accounts. The work is configuration rather than custom code: you create a client in Keycloak, exchange certificates or metadata for SAML or set up an OpenID Connect client, map attributes and groups, and confirm that Rocket.Chat matches users to the right accounts. What makes it harder: no admin access to one of the two systems, no test users in each group you plan to map, or no one who can decide which attributes are authoritative. Teams that already run Keycloak for other applications usually have most of the knowledge in-house. Teams that do not should expect a longer learning curve on mappers and login flows.

What drives the effort and cost of a Rocket.Chat Keycloak SSO project?

Scope drives effort more than anything else. The main factors are:

  • Protocol choice: SAML and OpenID Connect each need different certificate, client and metadata steps.
  • Attributes to map: every attribute that flows into Rocket.Chat (email, username, display name, roles) needs a mapper and a test case.
  • Group mapping: LDAP and SAML group mapping in Rocket.Chat is a paid-plan feature, so confirm your plan before designing it.
  • Keycloak maturity: a well-documented realm with clean groups is faster to work with than one with legacy flows.
  • Environments: each environment (test, staging, production) that must match adds configuration and verification work.

In a quote, ask which of these are included and how each environment is verified.

How long does a Rocket.Chat Keycloak SSO integration take?

The duration depends on the agreed scope and on how quickly approvals and access requests are completed, so no fixed timeline applies to every organization. Most of the elapsed time is often spent waiting for admin access, change approvals and test accounts rather than on configuration itself. Ask for a written timeline that lists each phase, the dependencies on your side, and the review points. A fixed-scope agreement sets scope, deliverables and timelines in writing before work starts, which makes the schedule easier to check against the plan.

What do we need to provide before the integration work starts?

Prepare four things so the work does not stall:

  1. Keycloak admin access to the realm, clients and mappers involved.
  2. Rocket.Chat admin access with rights to change authentication settings.
  3. A named identity owner who decides which attributes and groups are authoritative and approves changes.
  4. A test group of users in Keycloak, covering each role or group you plan to map, plus a way to reset their sessions.

If any of these is missing, the schedule usually slips at the start rather than in the build.

Does the quote include testing after Keycloak and Rocket.Chat upgrades?

Ask this directly, because both products need regular upgrades. Keycloak publishes minor releases several times a year, and Rocket.Chat release lines have defined support periods after which they stop receiving fixes. An SSO configuration can change behavior across these updates, so the question is whether the quote covers re-testing login, attribute mapping and group mapping after each upgrade. Ask whether that testing is a one-time part of the project or a recurring retainer, and who approves the upgrade window.

Does DeployOpen publish prices for Keycloak SSO work?

No. DeployOpen does not publish a price list. A quote follows from the written scope, which lists the protocol, attributes, group mappings, environments, the access you provide and the testing included. Share your scope in writing, including which Rocket.Chat plan you run, so the quote covers the features you need. Comparing quotes is easier when each one lists the same scope items.

Which costs are one-time and which recur after go-live?

The initial integration, mapping design and testing are one-time costs. Recurring costs come from keeping the integration working: Keycloak and Rocket.Chat upgrades, retesting SSO after each change, certificate renewal and changes to users, groups or roles. Your Rocket.Chat license or plan is a separate recurring cost that you pay to the vendor, not to DeployOpen. Ask the quote to show which items are one-time, which are recurring, and whether support is available as a retainer.

How DeployOpen scopes, delivers and supports this integration

DeployOpen scopes the Rocket.Chat and Keycloak SSO integration in writing before work starts, because the protocol choice, Rocket.Chat plan tier and identity model each change the build. Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing. DeployOpen, a Chainscore Labs company, runs the work inside your own infrastructure, and ongoing support is available as a retainer.

How we scope

  • Confirm whether SAML or OpenID Connect fits your Keycloak realm and Rocket.Chat version before design starts.
  • Record which Rocket.Chat features need a paid plan, such as user group mapping, so licensing is settled early.
  • The written scope lists the realm, clients, attribute mappers, email requirements and the handover documents.

How we build

  • Exchange certificates or metadata between Keycloak and Rocket.Chat, then import the client into a documented configuration.
  • Configure attribute mappers for username, email and roles, then test sign-in with a staged set of accounts.
  • Test sign-in, logout, account lock-out and Rocket.Chat email behavior in a non-production instance first.

How we hand over

  • Document the realm, client settings, mapper configuration and certificate renewal steps for your operations team.
  • Hand over runbooks for Keycloak and Rocket.Chat upgrades, since both products release on their own schedules.
  • Walk your administrators through sign-in troubleshooting, including which Keycloak and Rocket.Chat logs to check first.

How we support

  • Retainers cover ongoing support, upgrades and testing when your Keycloak or Rocket.Chat versions change.
  • Plan Keycloak minor upgrades and recheck mapper and certificate behavior after each change to either product.
  • Keep Rocket.Chat within a supported version line, since unsupported versions lose security fixes and client support.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.