Validate AD Cluster Delegation for SPN Failover and Failback
Introduction
Failover requires the target cluster to have Active Directory permissions to manage Service Principal Names (SPNs) on the source cluster's AD machine account, and failback requires the reverse. This delegation is configured per the SPN delegation guide for each cluster's machine account. Use the test procedure below to validate that delegation is set up correctly before you need it for a real failover or failback — a common misconfiguration is delegating the wrong computer account.
If delegation is not set up correctly, failover or failback fails with one of:
- An LDAP constraint violation
- An LDAP permissions error
Locate the AD Machine Account Name
Log in to the cluster as root and run:
isi auth ads list -v
This returns the machine account name registered in Active Directory for that cluster.
Test Methodology
The full test covers four scenarios — a SELF test and a CROSS test, run from both the primary and DR cluster:
| Scenario | Run from | Target account |
|---|---|---|
| Primary SELF | Primary cluster | Primary cluster's own machine account |
| Primary CROSS | Primary cluster | DR cluster's machine account |
| DR SELF | DR cluster | DR cluster's own machine account |
| DR CROSS | DR cluster | Primary cluster's machine account |
Each test creates a temporary SPN, verifies it was created, then deletes it and verifies the deletion — confirming the delegation actually grants add/remove permissions, not just read access.
These tests require two OneFS clusters joined to the same Active Directory domain. Commands below use isi_classic, available on OneFS 8.x.
SELF Test (run on the cluster you're testing)
-
Log in to the cluster using the
eyeglassservice account and confirm the identity:whoami -
Add a test SPN:
sudo isi_classic auth ads spn add --machinecreds --spn=HOST/superna.test.spn --domain=<your-domain> -
Confirm the SPN was created:
sudo isi_classic auth ads spn list --machinecreds --domain=<your-domain> -
Delete the test SPN:
sudo isi_classic auth ads spn delete --machinecreds --spn=HOST/superna.test.spn --domain=<your-domain> -
Confirm the SPN was deleted by re-running the list command from step 3 — it should no longer appear.
CROSS Test (run on one cluster, targeting the other cluster's machine account)
Use the same add/list/delete pattern as the SELF test, but add --account=<other-cluster-machine-account>$ (note the trailing $ after the account name) to target the other cluster's AD computer account instead of the local one:
sudo isi_classic auth ads spn add --machinecreds --account=<other-cluster-account>$ --spn=HOST/superna.test.spn --domain=<your-domain>
sudo isi_classic auth ads spn list --machinecreds --account=<other-cluster-account>$ --domain=<your-domain>
sudo isi_classic auth ads spn delete --machinecreds --account=<other-cluster-account>$ --spn=HOST/superna.test.spn --domain=<your-domain>
A successful CROSS test from the primary cluster (targeting the DR cluster's account) confirms the primary cluster is delegated to manage the DR cluster's SPNs — the permission needed for failover. Run the CROSS test from the DR cluster (targeting the primary cluster's account) to confirm the reverse delegation needed for failback.
Interpreting Results
- If the add/list/delete sequence succeeds in all four scenarios, AD delegation is correctly configured for both failover and failback.
- If a CROSS test fails (SELF succeeds but CROSS does not), delegation was granted for the wrong computer account, or the delegation was not extended to the peer cluster's account at all — review the AD delegation configuration for the account referenced in the failed test.
- If a SELF test fails, the cluster's own machine account does not have the base SPN management permission it needs — confirm the account used for delegation matches the account returned by
isi auth ads list -v.