Esta documentação foi arquivada e não está sendo atualizada.

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

Publicado: maio de 2011

Atualizado: junho de 2015

Aplica-se a: Azure

Este exemplo ilustra como autenticar-se com o Access Control do Active Directory do Microsoft Azure (também conhecido como Access Control Service ou ACS) usando o protocolo OAuth 2.0 presentando um token SAML assinado pelo certificado X.509. Este certificado corresponde a um ServiceIdentity configurado no ACS, e o ACS emite um SET. com uma declaração nameidentifier do ServiceIdentity. 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 do OAuth2 (C#\OAuth2) do pacote Exemplos de código do Access Control (ACS) do Active Directory do Microsoft Azure.

Para executar o exemplo, é necessário:

  1. Uma conta no portal do Azure e um Namespace do Access Control.

  2. Visual Studio 2010 (qualquer versão)

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

A configuração do ACS exigida para este exemplo pode ser realizada no Portal de Gerenciamento ACS ou no Serviço de Gerenciamento ACS. Este tópico descreve duas opções.

  1. Opção 1: Configurando o exemplo no Portal de Gerenciamento ACS

  2. Opção 2: Configurando o exemplo no Serviço de Gerenciamento ACS

  1. Vá para o Portal de Gerenciamento do Microsoft Azure(https://manage.WindowsAzure.com), entre e, em seguida, clique em Active Directory. (Dica de solução de problemas: o item "Active Directory" está ausente ou indisponí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.)

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

  4. Para registrar seu aplicativo com o ACS, clique em Aplicativos de terceira parte confiável, clique em Adicionar, e em seguida digite a seguinte informação 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 expiração, insira uma data de expiração apropriada para a chave. A chave já não será válida nesta data.

  5. Clique em Salvar.

  6. Com a terceira parte confiável registrada, é hora de criar as regras que determinam as declarações que o ACS emitirá para o aplicativo. Neste exemplo, criaremos uma regra que conceda qualquer declaração gerada pelo ACS para passá-la

    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 se baseia nas 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 o Visual Studio.

A solução exemplo do 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 classe Comum. Esse aplicativo pode ser usado para configurar seu Namespace do Access Control para ser usado com esse exemplo.

  1. Atualize a biblioteca de classes Comum com as informações sobre seu Namespace do Access Control. Abra o SamplesConfiguration.cs e insira o seguinte:

    • ServiecNamespace - Este é o nome do seu Namespace do Access Control

    • 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 no Visual Studio. O ACS será configurado para executar o 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.

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

  2. Caso você ainda não o tenha feito, insira seus detalhes do Namespace do Access Control em Common\SamplesConfiguration.cs. Para obter mais informações, consulte a etapa 1 da Opção 2: Configurar por meio do Serviço de gerenciamento do ACS anterior. 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, este é o valor que você copiou à área de transferência. Para obter a chave de assinatura de token, no portal do ACS, clique em Certificados e chaves. Abaixo está um trecho do 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.

Mostrar: