Configurar a KCD (delegação restrita de Kerberos) no Azure Active Directory Domain ServicesConfigure Kerberos constrained delegation (KCD) in Azure Active Directory Domain Services

À medida que você executa aplicativos, pode haver a necessidade desses aplicativos acessarem recursos no contexto de um usuário diferente.As you run applications, there may be a need for those applications to access resources in the context of a different user. Active Directory Domain Services (AD DS) dá suporte a um mecanismo chamado delegação de Kerberos que habilita esse caso de uso.Active Directory Domain Services (AD DS) supports a mechanism called Kerberos delegation that enables this use-case. A delegação restrita de Kerberos (KCD) é criada nesse mecanismo para definir recursos específicos que podem ser acessados no contexto do usuário.Kerberos constrained delegation (KCD) then builds on this mechanism to define specific resources that can be accessed in the context of the user. Os domínios gerenciados do Azure Active Directory Domain Services (AD DS do Azure) são bloqueados com mais segurança em ambientes de AD DS locais tradicionais, portanto, use um KCD baseado em recursos mais seguro.Azure Active Directory Domain Services (Azure AD DS) managed domains are more securely locked down that traditional on-premises AD DS environments, so use a more secure resource-based KCD.

Este artigo mostra como configurar a delegação restrita de Kerberos de basd de recursos em um domínio gerenciado AD DS do Azure.This article shows you how to configure resource-basd Kerberos constrained delegation in an Azure AD DS managed domain.

Pré-requisitosPrerequisites

Para concluir este artigo, você precisa dos seguintes recursos:To complete this article, you need the following resources:

Visão geral da delegação restrita de KerberosKerberos constrained delegation overview

A delegação de Kerberos permite que uma conta represente outra conta para acessar recursos.Kerberos delegation lets one account impersonate another account to access resources. Por exemplo, um aplicativo Web que acessa um componente da Web de back-end pode se representar como uma conta de usuário diferente quando faz a conexão de back-end.For example, a web application that accesses a back-end web component can impersonate itself as a different user account when it makes the back-end connection. A delegação de Kerberos não é segura, pois não limita quais recursos a conta representando pode acessar.Kerberos delegation is insecure as it doesn't limit what resources the impersonating account can access.

A delegação restrita de Kerberos (KCD) restringe os serviços ou os recursos que um servidor ou aplicativo especificado pode conectar ao representar outra identidade.Kerberos constrained delegation (KCD) restricts the services or resources that a specified server or application can connect when impersonating another identity. O KCD tradicional exige privilégios de administrador de domínio para configurar uma conta de domínio para um serviço e restringe a conta a ser executada em um único domínio.Traditional KCD requires domain administrator privileges to configure a domain account for a service, and it restricts the account to run on a single domain. O KCD tradicional também tem alguns problemas.Traditional KCD also has a few issues. Por exemplo, em sistemas operacionais anteriores, o administrador de serviços não tinha uma maneira útil de saber quais serviços de front-end eram delegados aos serviços de recursos que eles possuíam.For example, in earlier operating systems, the service administrator had no useful way to know which front-end services delegated to the resource services they owned. Qualquer serviço de front-end que pode delegar a um serviço de recurso era um possível ponto de ataque.Any front-end service that could delegate to a resource service was a potential attack point. Se um servidor que hospedasse um serviço de front-end configurado para delegar aos serviços de recursos tiver sido comprometido, os serviços de recursos também poderão ser comprometidos.If a server that hosted a front-end service configured to delegate to resource services was compromised, the resource services could also be compromised.

Em um domínio gerenciado do Azure AD DS, você não tem privilégios de administrador de domínio.In an Azure AD DS managed domain, you don't have domain administrator privileges. Como resultado, as KCD tradicionais baseadas em contas não podem ser configuradas em um AD DS do Azure em um domínio gerenciado.As a result, traditional account-based KCD can't be configured in an Azure AD DS a managed domain. Em vez disso, o KCD baseado em recursos pode ser usado, o que também é mais seguro.Resource-based KCD can instead be used, which is also more secure.

KCD baseado em recursosResource-based KCD

O Windows Server 2012 e posterior concede aos administradores de serviço a capacidade de configurar a delegação restrita para seu serviço.Windows Server 2012 and later gives service administrators the ability to configure constrained delegation for their service. Esse modelo é conhecido como KCD baseada em recursos.This model is known as resource-based KCD. Com essa abordagem, o administrador de serviços de back-end pode permitir ou negar serviços de front-end específicos do uso do KCD.With this approach, the back-end service administrator can allow or deny specific front-end services from using KCD.

A KCD Com base em recursos é configurado usando o PowerShell.Resource-based KCD is configured using PowerShell. Você usa os cmdlets set-ADComputer ou set-ADUser , dependendo se a conta de representação é uma conta de computador ou uma conta de usuário/serviço.You use the Set-ADComputer or Set-ADUser cmdlets, depending on whether the impersonating account is a computer account or a user account / service account.

Configurar KCD com base em recursos para uma conta de computadorConfigure resource-based KCD for a computer account

Neste cenário, vamos supor que você tenha um aplicativo Web que é executado no computador chamado contoso-webapp.contoso.com.In this scenario, let's assume you have a web app that runs on the computer named contoso-webapp.contoso.com. O aplicativo Web precisa acessar uma API da Web que é executada no computador chamado contoso-API.contoso.com no contexto de usuários do domínio.The web app needs to access a web API that runs on the computer named contoso-api.contoso.com in the context of domain users. Conclua as seguintes etapas para configurar este cenário:Complete the following steps to configure this scenario:

  1. Criar uma UO personalizada.Create a custom OU. Você pode delegar permissões para gerenciar essa UO personalizada para usuários dentro do domínio gerenciado AD DS do Azure.You can delegate permissions to manage this custom OU to users within the Azure AD DS managed domain.

  2. Domínio – ingresse nas máquinas virtuais, ambas que executam o aplicativo Web e a que executa a API Web, para o domínio gerenciado AD DS do Azure.Domain-join the virtual machines, both the one that runs the web app, and the one that runs the web API, to the Azure AD DS managed domain. Crie essas contas de computador na UO personalizada da etapa anterior.Create these computer accounts in the custom OU from the previous step.

    Observação

    As contas de computador para o aplicativo Web e a API Web devem estar em uma UO personalizada em que você tenha permissões para configurar KCD com base em recursos.The computer accounts for the web app and the web API must be in a custom OU where you have permissions to configure resource-based KCD. Você não pode configurar o KCD baseado em recursos para uma conta de computador no contêiner de computadores DC do AAD interno.You can't configure resource-based KCD for a computer account in the built-in AAD DC Computers container.

  3. Por fim, configure KCD com base em recursos usando o cmdlet do PowerShell set-ADComputer .Finally, configure resource-based KCD using the Set-ADComputer PowerShell cmdlet. Em sua VM de gerenciamento ingressado no domínio e conectada como uma conta de usuário que seja membro do grupo de Administradores de DC do Azure ad , execute os cmdlets a seguir.From your domain-joined management VM and logged in as user account that's a member of the Azure AD DC administrators group, run the following cmdlets. Forneça seus próprios nomes de computador, conforme necessário:Provide your own computer names as needed:

    $ImpersonatingAccount = Get-ADComputer -Identity contoso-webapp.contoso.com
    Set-ADComputer contoso-api.contoso.com -PrincipalsAllowedToDelegateToAccount $ImpersonatingAccount
    

Configurar KCD com base em recursos para uma conta de usuárioConfigure resource-based KCD for a user account

Neste cenário, vamos supor que você tenha um aplicativo Web que seja executado como uma conta de serviço chamada appsvc.In this scenario, let's assume you have a web app that runs as a service account named appsvc. O aplicativo Web precisa acessar uma API Web que é executada como uma conta de serviço chamada backendsvc no contexto de usuários do domínio.The web app needs to access a web API that runs as a service account named backendsvc in the context of domain users. Conclua as seguintes etapas para configurar este cenário:Complete the following steps to configure this scenario:

  1. Criar uma UO personalizada.Create a custom OU. Você pode delegar permissões para gerenciar essa UO personalizada para usuários dentro do domínio gerenciado AD DS do Azure.You can delegate permissions to manage this custom OU to users within the Azure AD DS managed domain.

  2. Domínio – ingresse nas máquinas virtuais que executam a API/recurso de back-end da Web para o domínio gerenciado AD DS do Azure.Domain-join the virtual machines that run the backend web API/resource to the Azure AD DS managed domain. Crie sua conta de computador dentro da OU personalizada.Create its computer account within the custom OU.

  3. Crie a conta de serviço (por exemplo, 'appsvc') usada para executar o aplicativo da Web dentro da OU personalizada.Create the service account (for example, 'appsvc') used to run the web app within the custom OU.

    Observação

    Novamente, a conta de computador para a VM da API Web e a conta de serviço do aplicativo Web devem estar em uma UO personalizada em que você tenha permissões para configurar o KCD baseado em recursos.Again, the computer account for the web API VM, and the service account for the web app, must be in a custom OU where you have permissions to configure resource-based KCD. Você não pode configurar KCD com base em recursos para contas nos contêineres de computadores DC do AAD internos ou usuários do AAD DC .You can't configure resource-based KCD for accounts in the built-in AAD DC Computers or AAD DC Users containers. Isso também significa que você não pode usar contas de usuário sincronizadas do Azure AD para configurar o KCD baseado em recursos.This also means that you can't use user accounts synchronized from Azure AD to set up resource-based KCD. Você deve criar e usar contas de serviço criadas especificamente no Azure AD DS.You must create and use service accounts specifically created in Azure AD DS.

  4. Por fim, configure KCD com base em recursos usando o cmdlet do PowerShell set-ADUser .Finally, configure resource-based KCD using the Set-ADUser PowerShell cmdlet. Em sua VM de gerenciamento ingressado no domínio e conectada como uma conta de usuário que seja membro do grupo de Administradores de DC do Azure ad , execute os cmdlets a seguir.From your domain-joined management VM and logged in as user account that's a member of the Azure AD DC administrators group, run the following cmdlets. Forneça seus próprios nomes de serviço, conforme necessário:Provide your own service names as needed:

    $ImpersonatingAccount = Get-ADUser -Identity appsvc
    Set-ADUser backendsvc -PrincipalsAllowedToDelegateToAccount $ImpersonatingAccount
    

Próximas etapasNext steps

Para saber mais sobre como a delegação funciona em Active Directory Domain Services, consulte visão geral da delegação restrita de Kerberos.To learn more about how delegation works in Active Directory Domain Services, see Kerberos Constrained Delegation Overview.