Windows Authentication for the XMLA endpoint is in Beta. To enable for your
organization, please contact support@honeydew.ai.
How it works
The Honeydew XMLA endpoint is a cloud service — nothing is installed inside your network:- Your network exposes nothing inbound. Clients connect out to Honeydew over HTTPS.
- Honeydew gets no access to your Active Directory. The endpoint validates tickets offline using a keytab file you provide — it never connects to your domain controllers.
- Employees’ machines obtain tickets from your domain controller as usual, on your network.
Prerequisites
- A custom XMLA hostname for your organization — contact support@honeydew.ai to
set one up. Once set up, you can locate it in the Honeydew UI, under the
XMLA section in Settings. The steps below refer to it as
<xmla-endpoint-hostname>. - Windows client machines joined to your AD domain. Users log in as domain users. (Machines that are not domain-joined — for example, joined only to Microsoft Entra ID — typically do not hold AD Kerberos tickets and cannot use this method, unless AD tickets are available through Entra Cloud Kerberos Trust).
- Each user must be provisioned in Honeydew through the Entra ID SSO integration specifically — a generic OIDC or SAML connection to the same Entra tenant is not matched. Honeydew identifies the caller by mapping their Windows user principal name (UPN) to an email address and matching it (case-insensitive) against an Entra ID-federated Honeydew user whose email is verified in the identity provider. If your UPN domain differs from users’ email domains, contact Honeydew support to configure a domain mapping for your organization.
Configure Active Directory
These steps are performed once per deployment by your AD administrator. In the commands below, replace<xmla-endpoint-hostname> with your XMLA endpoint
hostname and CORP.LOCAL with your AD Kerberos realm (uppercase).
Create a service account
Create a regular AD user to own the SPN, e.g.
svc-xmla.
In its account settings, enable:- Password never expires — otherwise the keytab silently stops working when the password expires.
- This account supports Kerberos AES 256 bit encryption — for strong keys.
Register the SPN and generate the keytab
Run
ktpass on a domain controller as a domain admin. This maps the SPN to the
service account, sets its key, and writes the keytab file:- The realm in
-princmust be UPPERCASE (@CORP.LOCAL) — a lowercase realm is a common cause of authentication failures. -pass *prompts for (or resets) the service account password. Note the resulting key version (KVNO) — a later password reset invalidates the keytab.- Use
AES256-SHA1, and avoid the legacy DES/RC4 mechanisms. - The SPN service class is
HTTPeven though the endpoint uses HTTPS. Do not useHTTPS/. ktpassrewrites the service account’s UPN to the-princvalue. This is expected — the AES key salt derives from it — but note it if other systems rely on that account’s original UPN.
Verify DNS resolution
Honeydew publishes
<xmla-endpoint-hostname> in public DNS as an A record —
no DNS configuration is needed as long as your client machines resolve public
hostnames.If your network restricts clients to internal DNS servers, create a matching
A record in your internal DNS. Ask your Honeydew support contact for the
address. In that case:- Do not use a CNAME — some clients build the SPN from the canonical name and request the wrong service ticket.
- A reverse-lookup (PTR) record is not required.
Deliver the keytab to Honeydew
Deliver the generated keytab to Honeydew through a secure channel agreed with your
Honeydew contact — do not send it as an unencrypted email attachment. Treat the
keytab like a password: anyone who holds it can impersonate the XMLA endpoint.
Honeydew loads it into the XMLA endpoint configuration for your organization.
On any service account password or key reset, the keytab becomes invalid
(its key version changes). Re-run
ktpass and re-deliver the keytab to Honeydew,
coordinating timing with your Honeydew support contact. Rotate the keytab on the
schedule set by your organization’s credential-rotation policy, following the same
steps.Configure client machines
Each Windows client needs the following. For a fleet rollout, apply via GPO.- Domain-joined and logged in as a domain user, so the machine holds a Kerberos ticket (TGT).
- DNS resolution of
<xmla-endpoint-hostname>(see the DNS step above). - Certificate trust — the endpoint’s TLS certificate chain must be trusted by the client. A public CA works out of the box; an internal CA requires distributing its root certificate (GPO → Trusted Root Certification Authorities).
- Local Intranet security zone. Excel (via Windows
HTTP services) sends the Kerberos ticket automatically only when the host is in
a zone that allows it. Add
https://<xmla-endpoint-hostname>to the Local Intranet zone. Fleet-wide via GPO: User/Computer Configuration → Administrative Templates → Windows Components → Internet Explorer → Internet Control Panel → Security Page → Site to Zone Assignment List — add the URL with zone value 1 (Intranet). Without this, the client either does not send the ticket or prompts for credentials. - MSOLAP provider installed (ships with Office / the Analysis Services OLE DB provider).
The Honeydew XMLA endpoint accepts HTTPS connections only.
- In the Server field, enter
https://<xmla-endpoint-hostname>/xmla. Windows Authentication does not work with the sharedxmla.honeydew.cloudendpoint. - Set Log on credentials to Use Windows Authentication.
Verify the setup
Run the following checks on a domain-joined client machine.-
Ticket acquisition — proves SPN registration and KDC reachability:
Use the bare SPN — do not append
@REALM. On Windows,klistinfers the realm from the machine’s domain, and a realm-qualified SPN can itself raiseKDC_ERR_S_PRINCIPAL_UNKNOWN. Note thatklist purgeclears the entire logon session’s ticket cache, not just this SPN, so run it on a test machine. Success prints a ticket for the SPN; aKDC_ERR_S_PRINCIPAL_UNKNOWNerror means the SPN is not registered or contains a typo. -
End-to-end handshake — send an authenticated request over HTTPS and check the
status code:
The test body is deliberately malformed, so a working endpoint returns an HTTP
500fault — never a200. A401means Kerberos failed (the client could not present a valid ticket); a500(or any status other than401) means the Kerberos handshake succeeded. Thetry/catchis required because Windows PowerShell 5.1 raises a terminating error on a401or500alike, so a bareiwrcannot tell them apart. This proves only that Kerberos authentication works — not that the user is authorized. Both an authorized user and one who is not provisioned get a500here, so confirm authorization with the Excel step below. - Excel — connect a Pivot Table with Use Windows Authentication; it should connect without a password prompt.
Troubleshooting
If authentication fails, run
klist after a connection attempt and check for a
ticket for HTTP/<xmla-endpoint-hostname>. If none is present, the client fell
back to NTLM — which the endpoint cannot validate — so check the SPN and DNS.