- SAML2.0 / OIDC / CAS: matching by the role names / team names returned by the identity provider (claim / attribute names). When no name matches, default roles / default teams apply only to members actually created during this sign-in; existing members keep their assignments.
- LDAP: does not use name matching; instead it matches the user’s LDAP Group DN against mapping rules. See LDAP Role and Team Synchronization.
Sync Configuration Fields
The Sync Configuration section contains the following fields:If the Role Field / Team Field is left empty, no name matches. With the corresponding sync switch on, only newly created members can receive eligible defaults for that dimension; existing members keep their assignments. Without eligible defaults, that dimension is not synced and existing roles or teams are not cleared (see When Sync Takes Effect and Overwrite Semantics).
Matching Rules
Role/team name matching happens on the Flashduty server, with these rules:Name normalization
- The claim / attribute value can be a single string or an array of strings; non-string elements in an array are ignored.
- Each name is trimmed of leading/trailing whitespace; empty names and duplicates are removed. Deduplication is case-sensitive —
Opsandopsare two different names. - Matching is exact and case-sensitive:
Opsdoes not matchops.
Role matching
- The preset roles
Admin,Responder, andViewerare always eligible (no enabled-state requirement). - Custom roles must be enabled to match; a disabled role with the same name is never hit.
- When one name hits several roles, the role with the smallest role_id wins (e.g. if the account has several roles named
Ops, the smallest ID is used). - Names that match no role are skipped (the server logs a warning); other names are still resolved.
Team matching
- Only non-deleted teams are matched.
- Also exact and case-sensitive; duplicate team names resolve to the smallest team_id.
- Unmatched team names are skipped as well.
Default roles / default teams fallback
- Eligible defaults apply only when this sign-in actually creates a new member and no name matches for that dimension. Roles and teams fall back independently of each other. Existing members do not receive defaults on sign-in.
- Default roles: the preset roles (
Admin/Responder/Viewer) are always eligible; a custom default role must exist and be enabled, otherwise it is skipped with a warning logged. - Default teams: must exist and not be deleted, otherwise they are skipped.
- The resolved role IDs / team IDs are deduplicated and sorted in ascending order.
Where Each Protocol Reads the Names
Protocol Switching and Field Retention
When saving the SSO configuration, the console discards sync fields that do not belong to the current protocol (so switching protocols leaves no stale config behind):- LDAP: keeps the Group field, the Group DN mapping rules (
role_team_mapping), and the default roles;roles,teams, anddefault_team_idsare not saved. - SAML2.0 / OIDC / CAS: keeps
roles,teams,default_role_ids, anddefault_team_ids;groupand the mapping rules are not saved.
When Sync Takes Effect and Overwrite Semantics
- With sync enabled and matching names, valid mappings update the corresponding roles or teams on every SSO sign-in.
- Valid mappings replace assignments rather than append to them, including manually assigned roles or team memberships; they are not merged with existing assignments.
- Without matching names, eligible defaults apply only to members actually created during this sign-in; existing members keep their corresponding roles or teams.
- Without matching names or eligible defaults, that dimension is not synced: new members follow the existing creation flow, and existing members’ roles or teams are not cleared.
- When both sync switches are off, sign-in never changes a member’s roles or teams.
Single Sign-On Configuration
Overall configuration guide for every protocol
Authing Integration
Configuring Flashduty SSO via Authing
Keycloak Integration
Configuring Flashduty SSO via Keycloak
OpenLDAP Integration
Configuring Flashduty SSO via OpenLDAP