Endpoint
| Property | Value |
|---|---|
| Authentication | None (publicly accessible) |
| Content-Type | application/samlmetadata+xml |
| Content-Disposition | inline; filename="sp_metadata.xml" |
Purpose
When configuring SAML SSO between an IdP (e.g., Okta, Azure AD, OneLogin) and EK, the IdP needs to know several things about the SP:- Entity ID — a unique identifier for the SP.
- Assertion Consumer Service (ACS) URL — where the IdP should POST SAML responses.
- Supported NameID format — how the IdP should identify the user.
- Signing certificate (if applicable) — the public key the IdP can use to verify signed AuthnRequests.
Response Format
The endpoint returns a SAML 2.0EntityDescriptor document. Below is a representative example:
Guaranteed vs. Optional Components
Guaranteed (always present)
| XML Element / Attribute | Description |
|---|---|
<md:EntityDescriptor entityID="..."> | The SP entity ID. Defaults to the ACS URL unless CUSTOM_ENTITY_ID_FOR_GENERIC_SSO is set, in which case that value is used instead. |
<md:SPSSODescriptor> | Container for all SP SSO descriptor information. Always includes WantAssertionsSigned="true" and protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol". |
AuthnRequestsSigned attribute | Always present on SPSSODescriptor. Set to "true" when an SP signing certificate is configured, "false" otherwise. |
<md:NameIDFormat> | Always urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress. EK expects the IdP to provide the user’s email address as the NameID. |
<md:AssertionConsumerService> | The ACS endpoint. Always uses HTTP-POST binding, index 0, and isDefault="true". The Location is derived from the EK backend root URL: {BACKEND_ROOT_URL}/user/generic/sso/saml/acs/admin. |
Optional (conditionally present)
| XML Element / Attribute | Condition | Description |
|---|---|---|
<md:KeyDescriptor use="signing"> | Present only when the server is configured with a valid SP signing certificate and key via SAML_SP_CERT_FILE and SAML_SP_KEY_FILE. | Contains the SP’s X.509 signing certificate so the IdP can verify signed AuthnRequests. When absent, AuthnRequests are sent unsigned and AuthnRequestsSigned is "false". |
Related Environment Variables
| Variable | Effect on Metadata |
|---|---|
CUSTOM_ENTITY_ID_FOR_GENERIC_SSO | If set, overrides the default entityID (which is the ACS URL). |
SAML_SP_CERT_FILE | Path to the SP’s PEM-encoded X.509 certificate. When set alongside SAML_SP_KEY_FILE, the KeyDescriptor block is included and AuthnRequestsSigned becomes "true". |
SAML_SP_KEY_FILE | Path to the SP’s PEM-encoded private key. Required alongside SAML_SP_CERT_FILE for request signing to be enabled. |