Windows OS Hub
  • Windows
    • Windows 11
    • Windows 10
    • Windows Server 2025
    • Windows Server 2022
    • Windows Server 2019
    • Windows Server 2016
  • Microsoft
    • Active Directory (AD DS)
    • Group Policies (GPOs)
    • Exchange Server
    • Azure and Microsoft 365
    • Microsoft Office
  • Virtualization
    • VMware
    • Hyper-V
    • Proxmox
  • PowerShell
  • Linux
  • Home
  • About

Windows OS Hub

  • Windows
    • Windows 11
    • Windows 10
    • Windows Server 2025
    • Windows Server 2022
    • Windows Server 2019
    • Windows Server 2016
  • Microsoft
    • Active Directory (AD DS)
    • Group Policies (GPOs)
    • Exchange Server
    • Azure and Microsoft 365
    • Microsoft Office
  • Virtualization
    • VMware
    • Hyper-V
    • Proxmox
  • PowerShell
  • Linux

 Windows OS Hub / Windows Server 2025 / Using KDC (Kerberos) Proxy in AD for Remote Access

December 23, 2025

Using KDC (Kerberos) Proxy in AD for Remote Access

The Kerberos Key Distribution Center (KDC) proxy service acts as a secure bridge, which allows remote clients to use Kerberos authentication when they can’t directly reach Active Directory domain controllers. The KDC proxy is used for Kerberos authentication scenarios involving external users (i.e., those connecting from the Internet) or workgroup users. The KDC proxy service was originally designed for DirectAccess, Remote Desktop Gateway, Azure Virtual Desktop (AVD), and SMB over QUIC file access. However, with Microsoft’s planned deprecation of the NTLM v1 and v2 auth protocols may be necessary to use a KDC proxy for additional remote access services.

The following ports must be open to perform Kerberos authentication between the client and the KDC service on the Active Directory (AD) domain controller.

  • UDP/TCP 88 – Kerberos authentication, obtaining Ticket Granting Tickets (TGT)
  • UDP/TCP 464  – changing a user’s password via Kerberos

Opening these ports to domain controllers for external users is not secure, so a KDC proxy service can be created at the user connection point instead. The KDC proxy runs on a domain-joined server, listens for Kerberos requests on HTTPS (TCP/443) port from external clients, and tunnels them securely to the DC.

Consider the following simple scenario: a Remote Desktop Gateway server is deployed within the internal perimeter, and external users connect to it. External users on non-domain machines cannot connect due to NTLM authentication being disabled on the RD Gateway host, which is operating in Kerberos-only mode. This results in an RDP error:

An authentication error has occurred.
The function requested is not supported
Remote computer: xxxx
This could be due to CredSSP encryption oracle remediation.

rdp connection error when NTLM disabled: The function requested is not supported:

In this situation, as the client cannot authenticate on the DC via Kerberos, an attempt will be made to fall back to NTLM, which is disabled on the host. This will result in the user being unable to log in remotely.

To enable external clients to authenticate on this RDP host via Kerberos, the KDC Proxy Service (KPSSVC) will be deployed on the RDGW host.

The KDC proxy service host must have an installed certificate for encrypting traffic and server authentication. The Extended Key Usage (EKU) of the certificate must include Server Authentication, Client Authentication, and Kerberos Authentication. The subject alternative name (SAN ) of the certificate must include the fully qualified domain name (FQDN) of the KDC proxy that clients will use to connect. Such a certificate can be issued by an internal or commercial CA (for test and non-production deployments, a self-signed certificate can be used).

The certificate must be added to the server’s certificate store. Copy the thumbprint of your certificate:

Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*CN=rds01.woshub.com*" } | Select-Object -ExpandProperty Thumbprint

PowerShell - copy Cert:\LocalMachine\My certificate thumbprint

If using a self-signed certificate or one from an internal CA, install the certificate’s public key on the clients’ Windows devices so that they trust it. 

Now, let’s move on to configuring the KDC proxy service.

Create a connection URL endpoint:

NETSH http add urlacl url=https://+:443/KdcProxy user="NT authority\Network Service"

URL reservation successfully added

NETSH http add urlacl url=443/KdcProxy

Generate a unique GUID:

$appguid = [Guid]::NewGuid().ToString("B")

Set the certificate thumbprint value:

$kdccert= "F00AB752B63F3B840A44BF6A20F6EF0E25DEF4D4"

Bind the certificate to the connection endpoint:

netsh http add sslcert ipport=0.0.0.0:443 certhash=$kdccert appid=$appguid

SSL Certificate successfully added

netsh http add sslcert - bind SSL cert kdc proxy

As I don’t intend to use smart card or Windows Hello authentication, I will disable HTTPS client certificate authentication requirements for KDC Proxy operations. This will allow alternative methods, such as passwords or Kerberos over HTTPS, to be used without smart cards.

REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings" /v HttpsClientAuth /t REG_DWORD /d 0x0 /f

Enable password authentication:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings" /v DisallowUnprotectedPasswordAuth /t REG_DWORD /d 0x0 /f

Enable the KDC Proxy Service (KPSSVC):

Set-Service kpssvc -StartupType Automatic

Start-Service kpssvc

Allow incoming traffic on TCP port 443 on the server so that clients can connect to the KDC Proxy. Create a Windows Firewall allow rule using PowerShell:

New-NetFirewallRule -DisplayName "KDCProxy TCP_In" -Direction Inbound -Protocol TCP -LocalPort 443

Now, let’s make some changes on the client side so that they use the KDC proxy for connections.

KDC proxy settings on clients can be configured via the Specify KDC proxy servers for Kerberos clients Group Policy option in the Computer Configuration -> Policies -> Administrative Templates -> System -> Kerberos section.

Enable the policy, click Show button, and add a connection string for your KDC proxy. The string should be in the following format:

  • Value name: your AD domain name, woshub.com
  • Value: KDC proxy connection string for this domain (multiple servers can be specified): <https rds01.woshub.com:443:kdcproxy />

Group Policy option: Specify KDC proxy servers for Kerberos clients

Or you can configure the KDC proxy settings directly on the client via the registry.

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos" /v KdcProxyServer_Enabled /t REG_DWORD /d 1 /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\KdcProxy\ProxyServers" /v woshub.com /t REG_SZ /d "<https rds01.woshub.com:443:kdcproxy />" /f

In order to apply the GPO settings, the client computer must be restarted.

Now, try logging in to the RDP gateway from the client. The client should use the KDC proxy to authenticate with the domain controller and obtain a Kerberos ticket. To check that a Kerberos ticket was issued via kdcproxy, run the command below:

klist get krbtgt

klist get krbtgt - view kerberos tickets

The Kerberos proxy authentication logs can be found in the following section of the Event Viewer: Event Viewer -> App and Services -> Microsoft -> KDCProxy -> Operational.

In future Windows releases, Microsoft plans to automate and simplify KDC proxy deployment via the Windows Admin Center (WAC) web interface.

0 comment
0
Facebook Twitter Google + Pinterest
Active DirectoryWindows 11Windows Server 2025
previous post
How to Create a User Account Without a Password on Windows

Related Reading

Find a Process Causing High Disk Usage on...

July 16, 2025

SMB over QUIC: Mount File Share over Internet...

November 5, 2025

Cannot Install Network Adapter Drivers on Windows Server

May 6, 2025

Stop Windows Server from Auto-Shutdown Every Hour

November 5, 2025

Configuring Windows Protected Print Mode (WPP)

May 28, 2025

Fix: Microsoft Defender Not Updating Automatically in Windows

July 15, 2025

Proxmox: Share a Host Directory with VMs via...

August 21, 2025

Blocking NTLM Connections on Windows 11 and Windows...

October 6, 2025

Leave a Comment Cancel Reply

join us telegram channel https://t.me/woshub
Join WindowsHub Telegram channel to get the latest updates!

Recent Posts

  • Using KDC (Kerberos) Proxy in AD for Remote Access

    December 23, 2025
  • Windows: Create (Install) a Service Manually

    December 16, 2025
  • Windows: Auto Switch to Strongest Wi-Fi Network

    December 10, 2025
  • How to Enable or Disable VBScript in Windows after Deprecation

    December 10, 2025
  • Start Menu Not Working (Unresponsive) on Windows Server RDS

    November 27, 2025
  • AppLocker: Configure Application Restriction Policies in Windows

    November 19, 2025
  • Enable/Disable Random Hardware (MAC) Address for Wi-Fi on Windows

    November 14, 2025
  • Automate Software and Settings Deployment with WinGet Configure (DSC)

    November 13, 2025
  • SMB over QUIC: Mount File Share over Internet without VPN on Windows Server 2025

    November 4, 2025
  • How to Find a Previous Computer Name in Windows

    October 28, 2025

Follow us

  • Facebook
  • Twitter
  • Telegram
Popular Posts
  • Check Windows 11 Hardware Readiness with PowerShell Script
  • Extend an Expired User Password in Active Directory
  • Unlocking Active Directory User Accounts
  • How to Block Common (Weak) Passwords in Active Directory
  • Configure NTP Time Source for Active Directory Domain
  • Best Practices: Changing the IP Address on a Domain Controller
  • How to Find AD Users with Blank Passwords (Password-Not-Required)
Footer Logo

@2014 - 2024 - Windows OS Hub. All about operating systems for sysadmins


Back To Top