Compartilhar via


Ativar diretório e autenticação com base em declarações 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

A autenticação baseada em declarações fornece um protocolo de segurança padrão do setor para autenticar um usuário em um computador host. A autenticação baseada em declarações é um conjunto de padrões do WS-* que descreve o uso de um token SAML (Security Assertion Markup Language) no modo passivo (quando WS-Federation é usado com o aplicativo de Web do Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015) ou modo ativo (onde o WS-Trust é usado com os clientes WCF (Windows Communication Foundation)). Essa autenticação trabalha junto com WCF para fornecer a autenticação do usuário e um canal seguro de comunicação com um servidor Microsoft Dynamics 365. Todas as edições Microsoft Dynamics 365 suportam autenticação com base em declarações.

A autenticação baseada em declarações requer a disponibilidade de um serviço de token de segurança (STS) em execução em um servidor. Um servidor STS pode ser baseado em serviços de federação AD FS (V2) Active Directory, ou em qualquer plataforma que forneça o protocolo oficial STS. Para obter mais informações, consulte o tópico a seguir na documentação de Administração e Implantação do CRM: TechNet: Configurar o IFD para o Microsoft Dynamics CRM 2015.

Neste tópico

Cenários de autenticação com suporte

Cenários de autenticação sem suporte

Classes de autenticação

Autenticação usando as classes do proxy do cliente

Lidando com exceções e falhas de canal

Informações adicionais sobre o token de segurança (SAML)

Cenários de autenticação com suporte

O Microsoft Dynamics 365 suporta aos seguintes cenários de autenticação para cada tipo de implantação.

Implantação

Modelo de autenticação

Microsoft Dynamics CRM Online

Autenticação com base em declarações ou Active Directory (através da federação)

Microsoft Dynamics CRM 2015 (no local)

Autenticação com base em declarações ou Active Directory

Microsoft Dynamics CRM 2015IFD (Implantação para a Internet)

Autenticação com base em declarações ou Active Directory

Como funciona a autenticação com base em declarações

Uma solicitação para autenticar um usuário é enviada de Microsoft Dynamics CRM 2015 ou Microsoft Dynamics CRM Online ou um aplicativo personalizado ao servidor STS. O servidor STS determina se o usuário deve ser autenticado e, em caso positivo, emite um token SAML sinalizado e criptografado que contém informações de autenticação do usuário. O token possui vida útil limitada e talvez precise ser atualizado periodicamente dependendo de quanto tempo o seu aplicativo estiver usando o token. Isso é discutido em mais detalhes mais adiante neste tópico.

Como funciona a autenticação do active directory

Uma solicitação para autenticar um usuário é enviada de Microsoft Dynamics 365 ou um aplicativo personalizado para Active Directory. A pilha de WCF gerencia o processo de autenticação para chamadas API SDK do Microsoft Dynamics CRM de um aplicativo, enquanto o Serviços de Informações da Internet (IIS) gerencia a autenticação de um aplicativo web.

Cenários de autenticação sem suporte

O uso de certificados do cliente não é suportado por SDK do Microsoft Dynamics CRM. Se configurar o site do Microsoft Dynamics CRM para exigir certificados do cliente IIS, você obterá falhas de autenticação para todos os aplicativos que tenham sido criados usando o SDK.

Para obter mais informações sobre os métodos adicionais de programação sem suporte, consulte Personalizações sem suporte.

Classes de autenticação

A tabela a seguir lista as classes primárias de autenticação disponíveis no SDK, descreve quando usá-las, e apresenta links para documentação adicional relevante.

Classes

Uso

Documentação relacionada

IServiceConfiguration<TService>, IServiceManagement<TService>

Todos os tipos de implantação: local/IFD online (Conta da Microsoft e Office 365/MOS*)

A melhor opção para aplicativos multi-threaded

Autenticar os usuários do Office 365 com os serviços web do Microsoft Dynamics CRM Online

Exemplo: autenticar os usuários com os serviços web do Microsoft Dynamics CRM

Melhorar o desempenho de alocação do canal de serviço

DiscoveryServiceProxy, OrganizationServiceProxy

Todos os tipos de implantação: local/IFD online (Conta da Microsoft e Office 365/MOS*)

Autenticação usando as classes do proxy do cliente

Amostra: Acessar o serviço de descoberta

Melhorar o desempenho de alocação do canal de serviço

CrmConnection

Todos os tipos de implantação: local/IFD online (Conta da Microsoft e Office 365/MOS*)

Conexão simplificada do Microsoft Dynamics CRM 2015

Exemplo: início rápido de conexão simplificada usando o Microsoft Dynamics CRM

Conexão com o servidor

Todos os tipos de implantação: local/IFD online (Conta da Microsoft e Office 365/MOS*)

Use para aplicativos de teste do console e códigos de exemplo.

Criado para aumentar a capacidade de uso durante a execução do código de exemplo SDK e para demonstrar o uso das classes de autenticação. Contém o código de saída do console.

Código auxiliar: Classe ServerConnection

Exemplo: início rápido do Microsoft Dynamics CRM

*Ambiente do Microsoft Online Services

Autenticação usando as classes do proxy do cliente

Um método de autenticação com os serviços da Web Microsoft Dynamics 365 usando as classes OrganizationServiceProxy e DiscoveryServiceProxy nos aplicativos que você escreve. O construtor de quatro parâmetros destas classes suporta implantações Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015. Essas classes de proxy lidam automaticamente com declarações ou com autenticação Active Directory e também gerenciam limites de recursos no ponto de extremidade do canal de WCF.

O código a seguir mostra como criar uma instância do proxy de serviço da organização:

using (OrganizationServiceProxy _serviceProxy =    new OrganizationServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))

O código a seguir mostra como criar uma instância do proxy de serviço de descoberta:

using (DiscoveryServiceProxy _discProxy =    new DiscoveryServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))

É importante dispor corretamente a instância do proxy de serviço no seu aplicativo antes que o mesmo finalize. A declaração using certifica se o proxy de serviço está disposto corretamente chamando automaticamente o Dispose do proxy de serviço quando ele sai de escopo. Entretanto, para um melhor desempenho do aplicativo, é uma prática recomendável manter a instância do proxy de serviço disponível no seu aplicativo para toda a sessão do aplicativo ao invés de descartá-la e alocá-la novamente em outro local no código do aplicativo quando necessário. O motivo disto é porque criar e autenticar um canal de serviço é uma operação cara (em tempo). Nesse caso, quando terminar com a instância do proxy de serviço, você deve chamar diretamente o método Dispose no proxy antes que o aplicativo finalize.

As credenciais do dispositivo do dispositivo de computação registrado são usadas somente ao autenticar com o Microsoft Dynamics CRM Online por meio do provedor de identidades Conta da Microsoft. Para o código de exemplo que mostra como preencher os parâmetros do construtor de proxy, consulte Amostra: Acessar o serviço de descoberta.

Importante

Para instalação no local ou de implantação para Internet (IFD) de Microsoft Dynamics CRM 2015, as classes de proxy do cliente usam autenticação baseada em declarações se um servidor STS estiver disponível. Caso contrário, a autenticação Active Directory é usada.

Se você quiser usar tipos de entidade associados precocemente Microsoft Dynamics 365 no seu código, você deve adicionar a seguinte linha de código após o proxy de serviço da organização ser instanciado, mas antes de fazer as chamadas do método de serviço da Web:

_serviceProxy.EnableProxyTypes()
System_CAPS_security Segurança Observação

O WCF suporta um recurso onde pode ativar interativamente o usuário para credenciais de logon quando necessário. Esse recurso é habilitado configurando a propriedade SupportInteractive da classe ClientCredentials. Essas credenciais são usadas no parâmetro userCredentials exibido no trecho de código anterior.

Ao fazer ligações do SDK para os serviços da web Microsoft Dynamics 365, a propriedade da operação e alterações nos dados da entidade executadas pela ligação do SDK podem ser modificadas por este recurso do WCF independente do seu código.

O Microsoft Dynamics 365 lida com credenciais fornecidas em chamadas de serviço da web conforme segue:

  • Se as credenciais não são fornecidas na chamada de serviço da Web, a pilha do WCF determina quais credenciais usar. Nesse caso, o valor de propriedade SupportInteractive será configurado automaticamente ao false.

  • Se as credenciais forem fornecidas explicitamente pelo código, o valor atual de SupportInteractive será passado ao canal de WCF. O SupportInteractive é definido como true por padrão a menos que você o altere explicitamente.

  • Se o SupportInteractive estiver configurado ao true e as credenciais fornecidas falharem, uma caixa de diálogo WCF pode ser exibida. Todas as credenciais inseridas pelo usuário na caixa de diálogo serão usadas ao invés das fornecidas nas chamadas de serviço da Web que o seu aplicativo invocar.

Lidando com exceções e falhas de canal

O seu código deve capturar as seguintes falhas e exceções. Consulte exemplos C# no SDK do Microsoft Dynamics CRM para obter uma lista de outras exceções para capturar:

Para saber mais, consulte a .NET FrameworkDocumentação do WCF sobre como lidar com exceções e falhas do WCF. Consulte Usar o código de exemplo e auxiliar para outros códigos de exemplo.

Informações adicionais sobre o token de segurança (SAML)

O token SAML usado durante a autenticação do usuário está descrito abaixo.

Conteúdos do token SAML

O token 2.0 SAML baseado no XML contém uma identidade que define uma ou mais declarações sobre um usuário. Esse token é passado entre um servidor do provedor de identidade (STS) e o Microsoft Dynamics 365 para autenticação baseada em declarações. As declarações na identidade foram definidas conforme segue.

Declaração

Usar

Nome da entidade universal (UPN)

Contém o ID do usuário no formato de domínio\pseudônimo no servidor Microsoft Dynamics 365 de destino.

Nome

Se o usuário autenticado também for um administrador de implantação no Microsoft Dynamics 365, essa declaração contém o ID do administrador de implantação no formato domínio\pseudônimo no servidor Microsoft Dynamics 365 de destino. O Windows Identity Foundation mapeia a declaração Name para a propriedade Identity.name.

Outras declarações

Não usado por Microsoft Dynamics 365.

Tipos de token de segurança com suporte

O Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 oferece dois tipos de suporte de tokens SAML:

  • Aplicativo Web - O aplicativo web Microsoft Dynamics 365 recebe um token portador do STS. Esse token está perdendo algumas informações necessárias, por isso uma URL (https://) baseada no Protocolo SSL é usada para a proteção de segurança quando você acessar o ponto de extremidade do WCF.

  • SDK - Um aplicativo personalizado recebe um token ativo com uma chave de verificação que contém as informações necessárias.

Ciclo de vida do token de segurança

Um SecurityToken possui vida útil identificada por suas propriedades ValidFrom e ValidTo. O design do seu aplicativo deve considerar a possibilidade de que o token possa expirar, resultando em um ExpiredSecurityTokenException sendo acionado pelos serviços da Web Microsoft Dynamics 365 quando a próxima solicitação de mensagens do seu aplicativo for processada.

Confira Também

Autenticar os usuários com os serviços Web do Microsoft Dynamics CRM 2015
Conectar-se com o Microsoft Office 365 e Microsoft Dynamics CRM Online
Conexão simplificada do Microsoft Dynamics CRM 2015
Descubra a URL da sua organização com o serviço Web IDiscoveryService
Usar o serviço Web IOrganizationService para ler e escrever dados e metadados
Use classes de entidade de limite antecipado no código
Exemplo: Criar, recuperar, atualizar e excluir registros (limite antecipado)
Código auxiliar: Classe ServerConnection
Código auxiliar: Classe DeviceIdManager
Blog: Formar clientes para a versão do Windows phone e Windows 8 RT

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais