Compartilhar via


Exemplo de código: Autenticação de Certificado OAuth 2.0

Atualizado em: 19 de junho de 2015

Aplica-se ao Azure

Este exemplo ilustra como autenticar em Microsoft Azure Active Directory Controle de Acesso (também conhecido como serviço de Controle de Acesso ou ACS) usando o protocolo OAuth 2.0 apresentando um token SAML assinado por um certificado X.509. Esse certificado corresponde a uma entidade ServiceIdentity configurada no ACS e o ACS emite um SWT com uma declaração nameidentifier da entidade ServiceId. Este SET. é usado para se autenticar com um recurso protegido do OAuth 2.0. Este exemplo está em conformidade com o rascunho 13 do protocolo do OAuth 2.0. O código para este exemplo está localizado no subdiretório OAuth2 (C#\OAuth2) do pacote de exemplos de código acs (Microsoft Azure Active Directory Controle de Acesso).

Pré-requisitos

Para executar esta amostra, você precisará do seguinte:

  1. Uma conta no portal do Azure e um namespace Controle de Acesso.

  2. Visual Studio 2010 (qualquer versão)

Para obter mais detalhes, consulte os pré-requisitos do ACS (https://go.microsoft.com/fwlink/?LinkId=221065).

Configurando o exemplo

A configuração do ACS necessária para este exemplo pode ser executada usando o Portal de Gerenciamento do ACS ou o Serviço de Gerenciamento do ACS. Este tópico descreve duas opções.

  1. Opção 1: Configurar o exemplo usando o portal de gerenciamento do ACS

  2. Opção 2: Configurar o exemplo usando o serviço de gerenciamento do ACS

Opção 1: Configurar o exemplo usando o portal de gerenciamento do ACS

Para configurar o exemplo usando o Portal de Gerenciamento do ACS

  1. Vá para o Portal de Gerenciamento do Microsoft Azure (https://manage.WindowsAzure.com), entre e clique em Active Directory. (Dica de solução de problemas: o item "Active Directory" está ausente ou não está disponível)

  2. Para criar um namespace do Access Control clique em Novo, clique em Serviços de Aplicativo, clique em Access Control, e depois em Criação Rápida. (Or, clique em Namespaces do Access Control antes de clicar em Novo.)

  3. Para gerenciar um namespace do Access Control, selecione o namespace e clique em Gerenciar. (Or, clique em Namespaces do Access Control, selecione o namespace e clique em Gerenciar.)

    Essa ação abre o portal de gerenciamento do Serviço de Controle de Acesso.

  4. Para registrar seu aplicativo no ACS, clique em Aplicativos de Terceira Parte Confiável, clique em Adicionar e digite as seguintes informações no formulário:

    • No campo Nome, insira OAuth2 RP

    • No campo Realm , insira https://oauth2relyingparty/

    • No campo Formato do token, selecione SET.

    • Clique Gerar para criar uma chave nova

    • No campo Data de vencimento, insira uma data de vencimento apropriada para a chave. A chave já não será válida nesta data.

  5. Clique em Salvar.

  6. Com sua terceira parte confiável registrada, agora é hora de criar as regras que determinam as declarações que o ACS emitirá para seu aplicativo. Neste exemplo, criaremos uma regra que concede qualquer declaração gerada pelo ACS para passar.

    Para criar esta regra, clique em Grupos de regras e clique em Grupos de regras padrão para OAuth2 RP. Use as configurações abaixo para adicionar uma nova regra:

    • Na seção Emissor da declaração, selecione Serviço de controle de acesso

    • Na seção Tipo de declaração de entrada, selecione Qualquer

    • Na seção Valor de declaração de entrada, selecione Qualquer

    • Na seção Tipo de declaração de saída, selecione Passar o tipo de declaração de entrada

    • Na seção Valor de declaração de saída, selecione Passar o valor de declaração de entrada

  7. Este exemplo depende de credenciais gerenciadas pelo ACS.

    Para configurar um certificado de um novo cliente para a aplicação do cliente, clique em Identidades de serviço, clique em Adicionar, e depois digite um nome. Adiciona um tipo de credencial do Certificado X.509 e procure o arquivo ACS2ClientCertificate.cer na pasta de certificados deste exemplo. Clique em Salvar.

  8. Agora que o ACS está configurado, abra Visual Studio.

Opção 2: Configurar o exemplo usando o serviço de gerenciamento do ACS

A solução de exemplo Visual Studio tem um aplicativo de console chamado ConfigureSample que usa o Serviço de Gerenciamento do ACS e os auxiliares comuns definidos na biblioteca de classes comum. Esse aplicativo pode ser usado para configurar seu namespace Controle de Acesso para uso com este exemplo.

Para configurar o exemplo usando o Serviço de Gerenciamento do ACS

  1. Atualize a biblioteca de classes comuns com informações sobre seu namespace Controle de Acesso. Abra o SamplesConfiguration.cs e insira o seguinte:

    • ServiceNamespace – Esse é o nome do namespace Controle de Acesso

    • ManagementServiceIdentityName - Este é um nome da conta de serviço de gerenciamento

    • ManagementServiceIdentityKey - Esta é a senha associada com a conta de serviço de gerenciamento

    • AcsHostUrl - Este é o nome do host do ACS

  2. Execute o aplicativo ConfigureSample em Visual Studio. Isso configurará o ACS para executar este exemplo.

  3. Quando o aplicativo ConfigureSample terminar, ele emitirá a chave de assinatura da terceira parte confiável gerado para o console. Copie essa chave para a área de transferência.

Executando o exemplo

Para executar a amostra

  1. Abra o exemplo no Visual Studio. Além de ConfigureSample e Common, a solução consiste em dois projetos: ProtectedResourceWebApp e Client.

  2. Se você ainda não fez isso, insira os detalhes do namespace Controle de Acesso em Common\SamplesConfiguration.cs. Para obter mais informações, consulte a etapa 1 da Opção 2: Configurando por meio do Serviço de Gerenciamento do ACS acima. Este arquivo também é usado pelo projeto do Cliente.

  3. Abra o arquivo web.config no projeto ProtectedResourceWebApp.

  4. Insira a chave de assinatura de token nos elementos apropriados de AppSettings. Se você usou o Serviço de Gerenciamento para configurar o ACS, esse é o valor que você copiou para a área de transferência. Para obter a chave de assinatura do token, no portal do ACS, clique em Certificados e Chaves. Abaixo está um snippet de código que mostra esta seção do arquivo web.config:

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. Para executar o exemplo, inicie o ProtectedResourceWebApp. Aparece um navegador web, mas a caixa de texto está vazia porque o navegador web não está autenticado.

  6. Execute Cliente. o HTML estará exibido na janela da console. Observe que o HTML indica que o usuário está autenticado e exibe as declarações do ACS.