Overzicht
Hoe SAML te configureren voor LibreChat
Overzicht
SAML (Security Assertion Markup Language) is een veelgebruikt authenticatieprotocol dat Single Sign-On (SSO) mogelijk maakt. Het stelt gebruikers in staat om zich eenmalig te authenticeren bij een Identity Provider (IdP) en toegang te krijgen tot meerdere diensten zonder opnieuw te hoeven inloggen.
SLO (Single Logout) wordt niet ondersteund
Single Logout (SLO) wordt niet ondersteund in deze implementatie.
Wederzijdse uitsluiting van OpenID en SAML
Als OpenID-authenticatie is ingeschakeld, wordt SAML-authenticatie automatisch uitgeschakeld.
Er kan slechts één authenticatiemethode tegelijk actief zijn.
Authenticatiemethode activeren op basis van omgevingsvariabelen
De volgende tabel geeft aan welke authenticatiemethode is ingeschakeld, afhankelijk van de instellingen van de omgevingsvariabelen:
| OIDC | SAML | Actieve authenticatiemethode |
|---|---|---|
| ✅Ingeschakeld | ❌Uitgeschakeld | OpenID Connect (OIDC) |
| ❌Uitgeschakeld | ✅Ingeschakeld | SAML |
| ✅Ingeschakeld | ✅Ingeschakeld | OpenID Connect (OIDC) |
| ❌Uitgeschakeld | ❌Uitgeschakeld | Geen authenticatie ingeschakeld |
SAML-certificaatformaat en -configuratie
De SAML_CERT omgevingsvariabele wordt gebruikt om het ondertekeningscertificaat van de Identity Provider (IdP) op te geven voor het valideren van SAML-responses. Dit certificaat moet worden aangeleverd in PEM-formaat en kan op een van de volgende manieren worden opgegeven:
Als een bestandspad (relatief of absoluut)
Als SAML_CERT is ingesteld op een bestandspad, zal de applicatie het certificaat laden vanuit het opgegeven bestand.
Zowel relatieve paden als absolute paden worden ondersteund.
# Relative path (resolved based on the application root)
SAML_CERT=idp-cert.pem
# Absolute path
SAML_CERT=/path/to/idp-cert.pemVoorbeeld bestandsinhoud (idp-cert.pem):
-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUKhXaFJGJJPx466rl...
-----END CERTIFICATE-----Als een One-Line PEM String
Het certificaat kan ook worden verstrekt als een one-line PEM string (Base64-gecodeerd, zonder regeleinden).
SAML_CERT="MIICizCCAfQCCQCY8tKaMc0BMjANBgkqh...W=="Dit formaat is handig wanneer het certificaat direct in omgevingsvariabelen wordt opgeslagen.
Als een Multi-Line PEM String (met \n escape-sequenties)
Het certificaat kan ook worden verstrekt als een multi-line PEM string waarbij regeleinden worden weergegeven als \n.
SAML_CERT="-----BEGIN CERTIFICATE-----\nMIIDazCCAlOgAwIBAgIUKhXaFJGJJPx466rl...\n-----END CERTIFICATE-----\n"Dit formaat is nuttig bij het configureren van certificaten in .env bestanden, terwijl de volledige PEM-structuur behouden blijft.
Vereisten voor certificaatindeling
- Het certificaat moet altijd in PEM-formaat zijn (Base64-gecodeerd X.509-certificaat).
- Indien verstrekt als bestand, moet het een geldig RFC7468 strict textual message PEM format zijn.
- Wanneer je een certificaat op één regel gebruikt, zorg er dan voor dat er geen regeleinden in de waarde staan.
- Bij gebruik van een multi-line string, zorg ervoor dat regeleinden worden weergegeven als \n escape-sequenties.
Voor meer details, raadpleeg de node-saml documentation.
Stroom voor het bepalen van de weergavenaam op basis van SAML-attributen

Bij SAML-authenticatie wordt de weergavenaam van de gebruiker bepaald volgens het volgende proces.
flowchart TD
A[Start] --> B{{Is SAML_NAME_CLAIM available?}}
B -- Yes --> C[Value of SAML_NAME_CLAIM]
B -- No --> D{{Are both SAML_GIVEN_NAME_CLAIM & SAML_FAMILY_NAME_CLAIM available?}}
D -- Yes --> E[Value of SAML_GIVEN_NAME_CLAIM / SAML_FAMILY_NAME_CLAIM]
D -- No --> F{{Is only SAML_GIVEN_NAME_CLAIM available?}}
F -- Yes --> G[Value of SAML_GIVEN_NAME_CLAIM]
F -- No --> H{{Is only SAML_FAMILY_NAME_CLAIM available?}}
H -- Yes --> I[Value of SAML_FAMILY_NAME_CLAIM]
H -- No --> J{{Is SAML_USERNAME_CLAIM available?}}
J -- Yes --> K[Value of SAML_USERNAME_CLAIM]
J -- No --> L[Value of SAML_EMAIL_CLAIM]
style C fill:#FFDEA5,stroke:#FFA500
style E fill:#FFDEA5,stroke:#FFA500
style G fill:#FFDEA5,stroke:#FFA500
style I fill:#FFDEA5,stroke:#FFA500
style K fill:#FFDEA5,stroke:#FFA500
style L fill:#FFDEA5,stroke:#FFA500Bepalingsregels
- Als
SAML_NAME_CLAIMis opgegeven, wordt de waarde ervan gebruikt als de weergavenaam van de gebruiker. - Als zowel
SAML_GIVEN_NAME_CLAIMalsSAML_FAMILY_NAME_CLAIMzijn opgegeven, worden hun bijbehorende waarden samengevoegd om de gebruikersnaam te vormen. - Als alleen
SAML_GIVEN_NAME_CLAIMis opgegeven, wordt de waarde daarvan gebruikt. - Als alleen
SAML_FAMILY_NAME_CLAIMis opgegeven, wordt de waarde daarvan gebruikt. - Als
SAML_USERNAME_CLAIMis opgegeven, wordt de waarde daarvan gebruikt. - Als geen van de bovenstaande attributen is opgegeven, wordt
SAML_EMAIL_CLAIMgebruikt als de weergavegebruikersnaam.
Door dit proces te volgen, wordt er tijdens SAML-authenticatie een passende gebruikersnaam bepaald.
Configuratievoorbeelden
Hoe is deze gids?