SSO/SAML

Master this essential documentation concept

Quick Definition

Single Sign-On / Security Assertion Markup Language - a system that allows users to log in once and access multiple applications, with SAML being the protocol that securely transfers authentication data between systems.

How SSO/SAML Works

sequenceDiagram participant U as User Browser participant SP as Service Provider
(e.g. Salesforce) participant IdP as Identity Provider
(e.g. Okta / Azure AD) U->>SP: 1. Access protected resource SP->>U: 2. Redirect to IdP with SAML AuthnRequest U->>IdP: 3. Forward AuthnRequest IdP->>U: 4. Present login form U->>IdP: 5. Submit credentials IdP->>IdP: 6. Validate credentials & generate SAML Assertion IdP->>U: 7. Return signed SAML Response (Base64) U->>SP: 8. POST SAML Response to ACS URL SP->>SP: 9. Verify signature & extract attributes SP->>U: 10. Grant access to resource

Understanding SSO/SAML

Single Sign-On / Security Assertion Markup Language - a system that allows users to log in once and access multiple applications, with SAML being the protocol that securely transfers authentication data between systems.

Key Features

  • Centralized information management
  • Improved documentation workflows
  • Better team collaboration
  • Enhanced user experience

Benefits for Documentation Teams

  • Reduces repetitive documentation tasks
  • Improves content consistency
  • Enables better content reuse
  • Streamlines review processes

Making SSO/SAML Configuration Knowledge Searchable and Reusable

When your team sets up SSO/SAML integration for a new application, the process often involves a screen-share walkthrough — someone from IT or DevOps records themselves configuring the identity provider, mapping attributes, and testing the assertion flow. That recording gets shared in a Slack channel or stored in a drive folder, and everyone assumes the knowledge is captured.

The problem surfaces six months later when a different team needs to connect a new tool to your existing SSO/SAML setup. They know a walkthrough exists somewhere, but scrubbing through a 45-minute recording to find the specific moment where certificate configuration is explained is impractical. Critical details — like how your organization structures NameID formats or which attribute mappings your IdP requires — stay buried in video timestamps nobody remembers.

Converting those SSO/SAML setup recordings into structured documentation changes how your team accesses that institutional knowledge. Instead of rewatching entire sessions, engineers can search directly for "SAML attribute mapping" or "IdP metadata URL" and land on the exact steps they need. A concrete example: onboarding a new SaaS tool that requires SSO/SAML configuration becomes a self-service process when the documentation is searchable, versioned, and linked from your internal wiki.

If your team regularly captures authentication and access management workflows on video, see how converting those recordings into structured documentation can make that knowledge actually usable.

Real-World Documentation Use Cases

Unifying Access Across a Multi-Product SaaS Suite

Problem

Enterprise customers using Jira, Confluence, and Zendesk separately must maintain three sets of credentials, leading to password fatigue, frequent account lockouts, and IT help desk tickets consuming ~30% of support capacity.

Solution

SAML 2.0 SSO federates all three applications to the company's existing Okta Identity Provider, so employees authenticate once via Okta and are silently passed a signed SAML Assertion to each application without re-entering credentials.

Implementation

['Register each SP (Jira, Confluence, Zendesk) in Okta by configuring the Entity ID and Assertion Consumer Service (ACS) URL for each application.', "Export the IdP metadata XML from Okta and import it into each SP's SAML configuration panel to establish trust.", 'Map Okta user profile attributes (email, department, role) to SAML Attribute Statements so each SP receives the correct group memberships for authorization.', 'Enable Just-in-Time (JIT) provisioning in each SP so new Okta users are automatically created on first login without manual admin steps.']

Expected Outcome

Password-related help desk tickets drop by ~70%, onboarding time for new employees accessing all three tools falls from 2 days to under 15 minutes, and offboarding is instant via a single Okta deactivation.

Securing a Customer-Facing Developer Portal with Corporate Identity

Problem

A SaaS company's developer documentation portal (built on Readme.io) is publicly accessible, but API key management pages and internal changelogs must be restricted to paying enterprise customers who already authenticate via their own corporate IdPs (Azure AD, Ping Identity).

Solution

Readme.io is configured as a SAML SP supporting multiple IdP connections, allowing each enterprise customer to supply their own IdP metadata. Users from Acme Corp authenticate against Acme's Azure AD and receive a SAML Assertion that grants them access to Acme-specific portal sections.

Implementation

["Create a separate SAML application entry in each customer's Azure AD tenant, providing them with Readme.io's Entity ID and ACS URL.", "Collect each customer's IdP metadata XML (or individual fields: SSO URL, Entity ID, x.509 certificate) and configure a dedicated IdP connection in Readme.io per customer.", "Use SAML Attribute Statements to pass a 'customer_tier' attribute, which Readme.io maps to visibility groups controlling access to gated content sections.", 'Test the flow end-to-end using SAML-tracer browser extension to inspect the Base64-decoded Assertion and confirm attribute values before go-live.']

Expected Outcome

Enterprise customers access restricted documentation using their existing corporate credentials with no additional passwords, reducing customer support requests about portal login by 85% and satisfying SOC 2 access control requirements.

Enforcing MFA Compliance Across Legacy Internal Tools via SAML

Problem

A financial services firm uses legacy internal tools (older Jenkins, Grafana, internal wikis) that have no native MFA support. Auditors flagged these as non-compliant with PCI-DSS requirements for multi-factor authentication on systems handling sensitive data.

Solution

Each legacy tool is configured as a SAML SP behind the company's Azure AD IdP, which enforces MFA (Microsoft Authenticator) as a Conditional Access policy before issuing SAML Assertions. The tools themselves never handle credentials—authentication and MFA are fully delegated to Azure AD.

Implementation

["Install and configure the SAML plugin for Jenkins (SAML Plugin) and Grafana's built-in SAML provider, pointing each to Azure AD as the IdP using the federation metadata URL.", 'Create an Azure AD Conditional Access policy requiring MFA for any authentication request originating from these SAML SP applications.', 'Map Azure AD group memberships to SAML Role attributes so Jenkins and Grafana automatically assign the correct permission levels (admin, read-only) from the Assertion.', 'Run a pilot with the DevOps team for one week, reviewing Azure AD sign-in logs to confirm MFA challenges are being triggered and Assertions are being accepted.']

Expected Outcome

All flagged legacy tools now require MFA without code changes to the tools themselves. The firm passes the subsequent PCI-DSS audit checkpoint, and the security team gains centralized visibility into all authentication events through Azure AD logs.

Automating Employee Offboarding Across 40+ SaaS Applications

Problem

When employees leave a 500-person tech company, IT must manually revoke access in 40+ SaaS tools. This process takes an average of 3 days, leaving a window where former employees retain active sessions and access tokens in tools like GitHub, Figma, Notion, and Datadog.

Solution

All 40+ tools are federated to Okta via SAML. Disabling a user in Okta immediately prevents new SAML Assertions from being issued for that user. Combined with Okta's session revocation and SCIM deprovisioning, access is cut off within minutes of the offboarding trigger.

Implementation

['Audit all 40 SaaS tools and confirm each supports SAML 2.0; migrate any tool still using local passwords to SAML-based login with Okta as the IdP.', 'Enable SCIM provisioning alongside SAML for tools that support it (GitHub Enterprise, Slack, Datadog) so user accounts are actively deactivated, not just blocked from new logins.', 'Create an Okta Workflow that triggers automatically when an HR system (Workday) marks an employee as terminated, deactivating the Okta account and initiating SCIM deprovisioning.', 'Configure session lifetime policies in each SP to a maximum of 8 hours so any active sessions expire quickly after the Okta account is disabled.']

Expected Outcome

Offboarding time drops from 3 days to under 30 minutes. A quarterly access review confirms zero instances of former employees retaining active access beyond the session expiry window, satisfying SOC 2 Type II access termination controls.

Best Practices

âś“ Always Validate the SAML Assertion Signature Before Trusting Attributes

A SAML Assertion is only trustworthy if the SP cryptographically verifies the IdP's digital signature using the IdP's public x.509 certificate. Skipping or weakening this check opens the door to Assertion forgery attacks where a malicious actor crafts a fake Assertion granting admin privileges. Ensure your SP is configured to reject unsigned or invalidly signed Assertions outright.

âś“ Do: Configure the SP to require signed Assertions AND signed SAMLResponse envelopes, and pin the IdP's x.509 certificate explicitly rather than relying on dynamic metadata fetching without integrity checks.
✗ Don't: Don't disable signature validation in development environments and then accidentally deploy that configuration to production—use environment-specific SP configurations with validation always enabled.

âś“ Set Short, Explicit Session and Assertion Lifetimes

SAML Assertions contain a validity window defined by the NotBefore and NotOnOrAfter conditions. Overly long assertion lifetimes (e.g., 24 hours) increase the risk window if an Assertion is intercepted or replayed. Similarly, SP-side session cookies should expire independently and not simply inherit the Assertion's validity period.

âś“ Do: Set SAML Assertion lifetimes to 5 minutes or less for the authentication event, and configure SP session timeouts separately (e.g., 8-hour idle timeout) based on your organization's security policy.
✗ Don't: Don't set NotOnOrAfter to values like 24 hours or 7 days to avoid user re-authentication complaints—address that UX concern with silent re-authentication flows instead.

âś“ Use Attribute Statements for Authorization, Not Just Authentication

SAML is often implemented only to confirm who a user is, but Attribute Statements in the Assertion can carry rich authorization data—group memberships, roles, cost centers, or subscription tiers—eliminating the need for the SP to maintain its own user directory. This keeps access control synchronized with the IdP's source of truth in real time.

âś“ Do: Map IdP group memberships or role attributes (e.g., 'groups': ['engineering-admin', 'billing-readonly']) into SAML Attribute Statements and configure each SP to consume these for role assignment on every login.
✗ Don't: Don't hard-code role assignments in the SP's local database and only use SAML for authentication—this creates drift where a user's IdP role changes but their SP permissions remain stale until manual intervention.

âś“ Implement and Test SP-Initiated and IdP-Initiated Flows Separately

SAML supports two login flows: SP-initiated (user starts at the SP, gets redirected to IdP) and IdP-initiated (user clicks an app tile in the IdP dashboard). IdP-initiated flows lack an AuthnRequest, making them more susceptible to open redirect and CSRF attacks if the SP doesn't validate the RelayState and enforce anti-CSRF measures.

âś“ Do: Test both flows explicitly during implementation; for IdP-initiated flows, validate the RelayState parameter and consider restricting which URLs are acceptable redirect destinations after successful authentication.
✗ Don't: Don't assume that testing only the SP-initiated flow is sufficient—many production issues and security vulnerabilities surface exclusively in IdP-initiated flows that were never tested.

âś“ Store and Rotate IdP Certificates Before Expiry with Zero-Downtime Procedures

The IdP's x.509 signing certificate has an expiration date, and when it expires or is rotated without coordination, every SP that has the old certificate pinned will reject all SAML Assertions, causing a complete authentication outage across all federated applications. Most organizations discover this only when users suddenly cannot log in.

âś“ Do: Set calendar alerts 90 and 30 days before certificate expiry; use your IdP's certificate rollover feature (e.g., Okta's 'add new certificate' without removing the old one) so both certificates are valid simultaneously during the SP update window.
✗ Don't: Don't delete the old IdP certificate from the IdP before every SP has been updated to trust the new certificate—this causes an immediate authentication outage for any SP still referencing the old cert.

How Docsie Helps with SSO/SAML

Build Better Documentation with Docsie

Join thousands of teams creating outstanding documentation

Start Free Trial