Partilhar via


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

 

Publicado: janeiro de 2017

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

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 Microsoft Dynamics 365 (online e local)) 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 Dynamics 365: 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 365 (online)

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

Microsoft Dynamics 365 (no local)

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

Microsoft Dynamics 365IFD (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 365 ou Microsoft Dynamics 365 (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 de Serviço da Organização de um aplicativo, enquanto o Serviços de Informações da Internet (IIS) gerencia a autenticação para um aplicativo Web.

Cenários de autenticação sem suporte

O uso de certificados do cliente não é suportado por SDK do Microsoft Dynamics 365. Se você configurar o site do Microsoft Dynamics 365 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 365 (online)

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

De prestaties bij toewijzing van het servicekanaal verbeteren

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

De prestaties bij toewijzing van het servicekanaal verbeteren

Classe CrmConnection

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

Conexão simplificada do Microsoft Dynamics CRM

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

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 365

*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 Microsoft Dynamics 365 (online e local). 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 365 (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 365, 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 365 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 Microsoft Dynamics 365 (online e local) 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 Transport Layer Security (TLS) ou Secure Sockets Layer (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

Passo a passo: Registrar o aplicativo Dynamics 365 com Ative Directory
Conectar-se com o Microsoft Office 365 e Microsoft Dynamics 365 (online)
Implementar o logon único de uma página da Web ASPX ou IFRAME
Exemplo: autenticar os usuários com os serviços web do Microsoft Dynamics 365

Microsoft Dynamics 365

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais