Skip to main content
Version: 2.7

SAML Authentication with ADFS

This guide explains how to configure Cortex Archive to authenticate users using SAML 2.0 with Active Directory Federation Services (ADFS).

The process consists of:

  1. Configuring Cortex Archive to trust your Identity Provider (IdP)
  2. Configuring ADFS to trust Cortex Archive as a relying party
  3. Validating identity claims and login behavior

A walkthrough video is provided at the end of this page.


Prerequisites​

Before starting, ensure the following are available:

  • An ADFS server connected to your Active Directory domain
  • A valid, unexpired certificate for SAML signing and encryption
    • The PFX (with private key) must be available on the Cortex Archive server
    • The public certificate only must be available on the ADFS server
  • Administrative access to:
    • The Cortex Archive host
    • The ADFS management console

Step 1: Configure Cortex Archive to Use SAML​

Enable SAML authentication​

In appsettings.json, set the authentication type to saml:

{
"Authentication": {
"Type": "saml"
}
}

Configure SAML identity provider settings​

Under the Authentication:Saml block, configure the following settings:

  • IdPMetadataUri The URL to your ADFS federation metadata. For most environments:
https://YOUR-ADFS-SERVER/FederationMetadata/2007-06/FederationMetadata.xml
  • PublicUri The externally accessible URL users use to access Cortex Archive (for example: https://archive.company.com)

  • CertificateFile (recommended) Full path to the .pfx certificate file containing the private key

  • CertificatePassword Password used when exporting the certificate

Example:

{
"Authentication": {
"Type": "saml",
"Saml": {
"IdPMetadataUri": "https://adfs.company.com/FederationMetadata/2007-06/FederationMetadata.xml",
"PublicUri": "https://archive.company.com",
"CertificateFile": "C:\\certs\\saml-signing.pfx",
"CertificatePassword": "your_certificate_password"
}
}
}

Step 2: Configure ADFS as a Relying Party​

On the ADFS server:

  • Create a new Relying Party Trust

  • Choose manual configuration

  • When prompted:

    • Entity ID / Relying Party Identifier: use the same value as PublicUri

    • Signing certificate: upload the public certificate (no private key)

    • Accept defaults unless your organization has specific security requirements

Step 3: Configure Claims Mapping​

Cortex Archive requires a stable identifier to associate incoming users with existing accounts.

At minimum:

  • Map SAM-Account-Name -> Name ID

  • This allows Cortex Archive to match users based on their Windows username.

    • Additional claims may be mapped depending on your configuration (email-based lookup, custom identifiers, etc.).

Optional Configuration Settings​

Most environments work with the default configuration. If authentication fails or behaves unexpectedly, the following options may be required.

Settings are shown using the format:

Block:SubBlock:Setting

When using:

  • appsettings.json -> nested JSON blocks

  • Environment variables -> Block__SubBlock__Setting

  • Authentication:LookUpBy Set to Email if users should be identified by email address instead of username

  • Authentication:IdentifierClaim Name of the claim sent by ADFS that identifies the user (for example: emailAddress or a URI-style claim)

  • Authentication:Saml:CertificateValidationMode Set to None to disable certificate validation (not recommended for production)

  • Authentication:Saml:RevocationMode Controls certificate revocation checking behavior

  • Authentication:Saml:ForceAuthn Forces credential entry at the IdP on every login, even if the user already has an active session

Troubleshooting​

If login fails, users are redirected unexpectedly, or claims are not recognized:

  • Review the Cortex Archive logs

  • Verify claim mappings in ADFS

  • Confirm certificate validity and trust chain

See Administration Authentication Troubleshooting for common issues and diagnostics.

Video Walkthrough​

The following video demonstrates a full end-to-end configuration using ADFS:

```