Exemplo de código: serviço web do ASP.NET
Atualizado: 19 de junho de 2015
Aplica-se ao Azure
Esses exemplos ilustram como integrar Microsoft Azure Active Directory Controle de Acesso (também conhecido como serviço Controle de Acesso ou ACS) em um serviço Web simples. Ele usa o ASP.NET como um host de serviço Web e um cliente de linha de comando. O serviço Web ASP.NET requer um token SWT emitido pelo ACS. O cliente solicita um token do ACS com um nome de usuário e senha registrados no ACS. O código para este exemplo está localizado no subdiretório ASPNETSimpleService (C#\WebServices\ASPNETSimpleService) do pacote de exemplos de código Microsoft Azure Active Directory Controle de Acesso (ACS).
Pré-requisitos
Para executar esta amostra, você precisará do seguinte:
Para criar uma conta na página inicial do Azure e criar um namespace Controle de Acesso.
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 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.
Opção 1: configurando o exemplo usando o portal de gerenciamento do ACS
Opção 2: configurar o exemplo usando o serviço de gerenciamento acs
Opção 1: configurando o exemplo usando o portal de gerenciamento do ACS
Para configurar o exemplo usando o Portal de Gerenciamento do ACS
Acesse o Portal de Gerenciamento de Microsoft Azure (https://manage.WindowsAzure.com), entre e clique no Active Directory. (Dica de solução de problemas: o item "Active Directory" está ausente ou não está disponível)
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.)
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.
Para registrar seu aplicativo no ACS, clique em Aplicativos de terceira parte confiável, clique em Adicionar e, em seguida, insira as seguintes informações no formulário:
No campo Nome, digite ASPNET Simple Service.
No campo Realm , insira https://localhost:8000/Service/
No campo URL de Retorno , insira https://localhost:8000/Service/
Selecione SWT na caixa de lista suspensa Formato do token.
No campo Chave de Autenticação de Token, clique em Gerar para criar uma chave de autenticação de token. Copie essa chave para uso posterior na configuração.
No campo Data de vencimento, insira uma data de vencimento apropriada para a chave. A chave não será mais válida a partir dessa data
Deixe os valores dos outros campos com suas definições padrão.
Clique em Salvar e em Página Inicial para retornar à home page do portal de gerenciamento do Serviço de Controle de Acesso.
Com sua terceira parte confiável registrada, agora é hora de criar as regras que determinam as declarações que o ACS emitirá ao seu aplicativo. Neste exemplo, criaremos uma regra que concede ao nome de usuário e à senha registrados uma declaração ação com um valor equivalente a reverter. Para criar a regra, clique em Página Inicial para retornar à home page do portal de gerenciamento do Serviço de Controle de Acesso, clique em Grupos de regras e em Grupo de Regras Padrão do ASP.NET Simple Service. Adicione uma nova regra com as seguintes configurações:
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 da declaração de entrada, selecione Qualquer.
Na seção Tipo de declaração de saída, selecione Inserir tipo e digite ação no campo.
Na seção Valor da declaração de saída, selecione Inserir tipo e digite reverter no campo.
Em contraste com os exemplos de site, este exemplo depende de credenciais gerenciadas pelo ACS. A última etapa na configuração do ACS é registrar o nome de usuário e a senha do aplicativo cliente a ser usado. Para configurar um novo nome de usuário e uma senha, clique em Página Inicial para retornar à home page do portal de gerenciamento do Serviço de Controle de Acesso, clique em Identidades de serviço, clique em Adicionar e preencha o formulário. Para este exemplo, use o nome de usuário acssample, o tipo de credencial Senha e a senha pass@word1.
Clique em Salvar e em Página Inicial para retornar à home page do portal de gerenciamento do Serviço de Controle de Acesso.
Opção 2: configurar o exemplo usando o serviço de gerenciamento 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 um namespace Controle de Acesso para uso com este exemplo.
Para configurar o exemplo usando o Serviço de Gerenciamento do ACS
Para configurar o exemplo, abra o arquivo SamplesConfiguration.cs (acs\Management\ManagementService\Common). Substitua os espaços reservados na classe SamplesConfiguration na biblioteca de classes Comum por informações sobre seu namespace Controle de Acesso. Você pode encontrar as informações no Portal de Gerenciamento do ACS.
Para navegar até o Portal de Gerenciamento do ACS: acesse o portal de gerenciamento de Microsoft Azure (https://manage.WindowsAzure.com), entre e clique no Active Directory. (Dica de solução de problemas: o item "Active Directory" está ausente ou não está disponível) Para gerenciar um namespace Controle de Acesso, selecione o namespace e clique em Gerenciar. (Or, clique em Namespaces do Access Control, selecione o namespace e clique em Gerenciar.)
ServiceNamespace – insira o nome do namespace Controle de Acesso.
ManagementServiceIdentityName – insira o nome de uma conta de serviço de gerenciamento do ACS. O padrão é ManagementClient.
Para localizar o nome da conta do serviço de gerenciamento, no Portal de Gerenciamento do ACS, clique no serviço gerenciamento. As contas são listadas por nome em Contas do serviço de gerenciamento.
ManagementServiceIdentityKey - Insira a senha da conta do serviço de gerenciamento.
Para localizar a senha da conta do serviço de gerenciamento, no Portal de Gerenciamento do ACS, clique no serviço gerenciamento. Clique no nome de uma conta do serviço de gerenciamento e, em Credenciais, clique em Senha. A senha é exibida no campo Senha. Para copiar a senha, clique em Mostrar senha.
Execute o aplicativo ConfigureSample no Visual Studio. Isso configurará o ACS para executar este exemplo.
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
Abra o exemplo no Visual Studio. A solução consiste em dois projetos: Serviço e Cliente.
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. Esse arquivo também é usado pelos projetos Serviço e Cliente.
Abra o arquivo web.config no projeto Serviço. Insira a chave de assinatura de token nos elementos apropriados de AppSettings. Se você configurou o ACS usando o Serviço de Gerenciamento, esse é o valor copiado para a área de transferência. Para obter a chave de assinatura de token, consulte a área Certificados e Chaves do portal. Veja abaixo está um snippet de código que mostra essa área do arquivo web.config de Serviço.
<appSettings> <add key="IssuerSigningKey" value="...update to your signing key..."/> </appSettings>
Abra o arquivo app.config no projeto Cliente. Insira seu nome de usuário e sua senha nos elementos apropriados de AppSettings. Para obter o nome de usuário e a senha registrados anteriormente, consulte a área Identidades de Serviço do portal. Veja abaixo está um snippet de código que mostra essa área (corretamente atualizada) do arquivo web.config de Cliente.
<appSettings> <add key="OAuthUserName" value="acssample" /> <add key="OAuthPassword" value="pass@word1" /> <add key="ServiceAddress" value="https://localhost:8000/Service/Default.aspx" /> </appSettings>
Para executar o exemplo, inicie o serviço e depois inicie o cliente. No cliente, insira uma cadeia de caracteres para reverter. Em seguida, a janela do console do cliente deve mostrar a saída indicando que recebeu um token do ACS.