> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xorlab.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Pages under /latest/ document the current release. Paths that begin with a version number, for example /10.0/, are frozen snapshots of superseded releases kept for reference only — never present their instructions as current. If the reader's version is unknown, answer from /latest/ and say which version the answer describes.
> xorlab is deployed on-premises, hybrid, or as a cloud service, and integrates with either Microsoft 365 or on-premises mail infrastructure. Configuration steps often differ between these. State which deployment and integration mode an instruction applies to instead of presenting one as universal.
> Distinguish inline mode from monitoring mode when describing anything that acts on email. Monitoring mode observes a copy and cannot block or quarantine; inline mode routes mail through xorlab and can.
> Write the product name as lowercase 'xorlab'. Use the documented component names: xorlab Control Center (XCC), xorlab MTA, xorlab Sandbox (DANA), xorlab Natural Language Understanding (NLU). After the first mention, use the short forms XCC, MTA, Sandbox, and NLU. Do not use DANA as a standalone name for the Sandbox, but keep it where it is a literal string in configuration keys, container names, and hostnames.
> Do not invent configuration keys, rule parameters, list names, log properties, or API fields. If a value is not present in this documentation, say that it is not documented rather than guessing.

# Enable Request Signing for SAML

> Sign SAML authentication requests with a key store when your identity provider requires it.

This optional feature requires creating a key store containing the certificate of a custom certificate authority and a private key that is used to sign the authentication request.

1. Run this command in your shell to create a `keystore.p12` key store file using the certificate in the `certificate.crt` file and a corresponding private key in the `privateKey.key` file:

   ```shell theme={null}
   openssl pkcs12 -export -in certificate.crt -inkey privateKey.key -out keystore.p12
   ```

   After entering the command, you will be prompted to enter and verify an export password to protect the key store file. Remember this password as you will need it in step #6.

2. Switch to the CLI of the XCC and execute the following instructions one by one:

   ```shell theme={null}
   sudo su -s /bin/bash xcc_backend
   cd /var/lib/xorlab/xcc/config/work/ag_local/auth/auth
   ```

3. Copy the `keystore.p12` file into the folder specified above.

4. Execute the following instructions one by one:

   ```shell theme={null}
   git add .
   git commit -m "Adding keystore file"
   exit
   ```

5. Open the `auth/auth/auth.yml` file using the XCC [Expert Editor](/latest/expert-editor).

6. In the `saml2AuthBackends` section, under your IdP config (here as `mySaml`), add the following block and enter your key store password as the `password` parameter:

   ```yaml auth.yml theme={null}
   saml2AuthBackends:
     mySaml:
       idp:
         signingKeyStore:
           file: keystore.p12
           password: the-key-store-password
   ```

7. Click **Publish**. The authentication configuration becomes active within about one minute.

The Authentication service restarts automatically and applies the new configuration.
