Partilhar via


Fim de sessão único

Atualizado: 19 de junho de 2015

Aplica-se a: Azure

Microsoft Azure Ative Directory Controlo de Acesso (também conhecido como serviço de Controlo de Acesso ou ACS) inclui agora uma capacidade opcional de um único sign-out para complementar uma única sposição. O resultado é uma experiência completa e consistente de sign-on e de assinatura para utilizadores de aplicações baseadas na Web que são integradas com ACS.

Quando um utilizador final assina uma aplicação de partido que suporta uma única sing-on, a ACS pode automaticamente assinar o utilizador fora do site do fornecedor de identidade e assiná-los de todas as outras aplicações que tenham assinado utilizando esse fornecedor de identidade. Da mesma forma, se o cliente assinar fora do site do fornecedor de identidade, a ACS pode assinar automaticamente o cliente fora das aplicações que assinou utilizando o fornecedor de identidade.

Este tópico explica como funciona uma única slicão e como implementar uma única slicão para a sua aplicação do partido. Certifique-se de rever o código de amostra para a implementação de uma única s indicação federada numa aplicação MVC 4 ASP.NET na Amostra de Código: ASP.NET MVC 4 com Sign-out federadot.

Requisitos de Sistema

Para implementar uma única sinsagem, são necessárias as seguintes ferramentas e serviços.

  • Subscrição do Azure

  • Visual Studio 2012

Sobre o Single Sign-Out

Em cada sessão de navegador, um cliente pode selecionar um fornecedor de identidade federado para se inscrever numa aplicação do partido. Com uma única s-apresentação, quando o utilizador assina fora do fornecedor de identidade ou da aplicação do partido, o cliente é automaticamente assinado a partir de todas as aplicações de partes que assinaram utilizando o mesmo fornecedor de identidade.

Por exemplo, o cliente utiliza uma conta Microsoft (Windows Live ID) para assinar em três aplicações integradas da FESTA. Quando o cliente assina fora de qualquer uma das aplicações, são automaticamente assinadas fora da sua conta Microsoft e assinadas fora das outras duas aplicações.

O suporte completo de assinaturas únicas está disponível para fornecedores de identidade personalizados WS-Federation e ADFS. O suporte único de assinatura limitado está disponível para a conta facebook, Google, Microsoft e Yahoo! fornecedores de identidade. Estes fornecedores de identidade não podem iniciar uma única assinatura. No entanto, quando uma aplicação de parte de confiança inicia uma única assinatura, o cliente é assinado fora destes fornecedores de identidade, e associado a aplicações de partes associadas a que assinaram utilizando esse fornecedor de identidade.

Como funciona o Sign-Out Único

A assinatura única pode ser iniciada pelo fornecedor de identidade ou pela aplicação do partido que conta. Nesta secção, revemos cada um destes processos de assinatura e explicamos como pode ativar um único sinal para a sua aplicação de partido.

Aplicação de partidos de gestão inicia Sign-Out

Para iniciar uma única sferição quando um utilizador assinar fora da sua aplicação de partido de gestão, envie um URL com os seguintes parâmetros para o ponto final WS-Federation ACS.

  • wa: Definir para wsignout1.0

  • wreply: Decreva o valor para o URL da página logout, isto é, a página onde o utilizador é redirecionado quando a assinatura estiver completa. Este valor deve ser a parte do nome de domínio RP, tais como "https://RP.com/"

  • wtrealm: Definir o valor do imóvel real da aplicação do partido em gestão de gestão de acs.

Segue-se uma URL de amostra para uma única sinstentação.

https://<YourNamespace>.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wtrealm=<YourAppRealm>&wreply=<YourAppRealmLogoutPage>

Por exemplo:

https://Fabrikam.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wtrealm=" https://www.fabrikam.com/" &wreply= https://www.fabrikam.com/logout

Para obter um código de amostra que implemente uma única sílquisão iniciada pelo partido, consulte a Amostra de Código: ASP.NET MVC 4 com a assinatura federada. Esta amostra inclui código em LogoutController.cs que obtém os valores de wreply e wrealm e cria uma instância da classe SignOutRequestMessage.

Quando a ACS recebe o URL de inscrição, a ACS termina a sessão do cliente com o fornecedor de identidade enviando um pedido wsignout1.0 . Em seguida, a ACS envia mensagens wsignoutclean1.0 para outras aplicações de partes que o utilizador assinou através do fornecedor de identidade.

Fornecedor de Identidade Inicia Sign-Out

A assinatura iniciada pelo fornecedor de identidade é suportada apenas para fornecedores de identidade personalizados WS-Federation e ADFS. Não pode ser suportado para a Microsoft Account (Windows Live ID), Google, Yahoo!, e fornecedores de identidade do Facebook porque estes fornecedores de identidade não notificam ACS ou a aplicação do partido que conta quando o utilizador assina.

Quando o utilizador assina fora de um WS-Federation ou fornecedor de identidade ADFS, o fornecedor de identidade envia à ACS uma mensagem de pedido de limpeza de assinatura wsignout.0 com o seguinte formato: https://<YourNamespace>.accesscontrol.windows.net/v2/wsfederation?wa=wsignoutcleanup1.0

Quando o ACS recebe uma mensagem wsignoutclean1.0 , verifica-se que o pedido teve origem no mesmo ponto final que o pedido de inscrição, validando o remetente no cabeçalho HTTP da mensagem: <Referrer>: https://CustomIDP quando o valor de <Referrer> é o valor do remetente no URL de inscrição no cookie ACSSSignOut .

Em seguida, a ACS envia uma mensagem wsignoutclean1.0 para todas as aplicações do partido que dependem na sessão de navegador do cliente atual que estão associadas ao fornecedor de identidade. O processo é semelhante ao processo descrito na secção "Inscrição de Pedidos de Grupo de Inscrição" O fornecedor de identidade pode redirecionar o navegador para uma página de sinalização que controla para completar o processo de inscrição.

Processo único de assinatura

Esta secção descreve cada passo no processo de aprovação único. Como o ACS trata dos detalhes para si, não precisa de compreender este processo. No entanto, pode ser útil na personalização ou depuragem.

Single Sign-Out Passo a Passo

  1. Quando a ACS recebe um pedido de sinalização1.0 no seu ponto final WS-Federation, a ACS procura o fornecedor de identidade do iniciador de pedido de assinatura no cookie ACSSignOut.

    A ACS utiliza as seguintes regras de correspondência para identificar o fornecedor de identidade.

    • Se o parâmetro wtrealm for especificado no pedido de sinalização, a ACS procura o valor wtrealm na lista de partes dependentes de cada fornecedor de identidade.

    • Se o wtrealm não for especificado e houver apenas uma entrada de fornecedor de identidade no cookie ACSSignOut, a ACS utiliza o fornecedor de identidade no cookie ACSSignOut.

    • Caso contrário, o ACS apresenta uma página de erro indicando que o sinal de tentativa falhou porque o parâmetro wtrealm está em falta.

  2. O ACS envia uma mensagem de sinalização1.0 ao fornecedor de identidade apresentando uma página com um elemento de moldura (<iframe>) inline. O ACS também adiciona <elementos iframe> que contém a mensagem SignOutClean1.0 para as páginas de todas as partes ativas WS-Federation que contam com outras partes que não a parte iniciada e a ACS remove as partes que contam do cookie ACSSignOut .

  3. A página que exibe o estado de subscrição do partido em suporte também contém JavaScript que corre por um tempo especificado e, em seguida, redireciona o navegador. Se um parâmetro de wreply foi especificado no cookie ACSSignOut, o redirecionamento JavaScript para o endereço indicado pelo valor wreply para completar a assinatura. Caso contrário, o JavaScript redireciona para o URL de retorno da parte contando, conforme especificado no Portal de Gestão ACS.

A ACS utiliza um cookie de sessão chamado ACSSignOut para registar o fornecedor de identidade que autenticou o utilizador na aplicação. Você pode ver o cookie em vestígios de sessão. O cookie de sessão tem o seguinte formato de nome: ACSSignOut.<YourACSNamespace>.

O cookie ACSSignOut identifica a aplicação da parte de confiança e o fornecedor de identidade que autenticou o utilizador. A ACS utiliza o cookie durante uma única sdecisão para garantir que o fornecedor de identidade correto é assinado e que o utilizador é assinado a partir de outras aplicações de partes que assinaram utilizando o fornecedor de identidade.

Limitações de Sign-Out Individuais

Ao utilizar uma única sinstentação, esteja ciente das seguintes limitações.

  • Apenas os fornecedores de identidade WS-Federation personalizados e os fornecedores de identidade ADFS podem iniciar uma única sinserção. Os fornecedores de identidade social, como o Yahoo, o Google, a Microsoft Account (Windows Live ID) e o Facebook, não notificam o ACS ou a aplicação do partido que conta quando o cliente assinar fora do site do fornecedor de identidade. Por conseguinte, os utilizadores de aplicações partidárias que utilizam estes fornecedores de identidade não são automaticamente assinados quando a assinatura tem origem no site do fornecedor de identidade.

  • Uma única assinatura pode não ser eficaz em todos os ambientes. Quando o ACS recebe uma única mensagem de inscrição de uma aplicação de partidos dependentes, envia um pedido wsignout1.0 ao fornecedor de identidade e uma mensagem wsignoutclean1.0 para cada uma das outras aplicações do partido. Quando o ACS recebe uma mensagem de pedido wsignoutclean1.0 de um fornecedor de identificação, envia uma mensagem wsignoutclean1.0 para cada uma das aplicações do partido que conta. No entanto, a ACS não pode garantir que o fornecedor de identificação ou as aplicações da parte que dependem responderão adequadamente, assinando a saída do utilizador.

  • Quando os utilizadores assinam fora do fornecedor de identidade da Google no Internet Explorer, o navegador apresenta uma indicação de "Apenas conteúdo seguro é exibido". Para completar a sposição, os utilizadores devem clicar em "Mostrar todos os conteúdos". Quando a sinserção estiver concluída, o navegador é redirecionado para o URL especificado pelo valor do parâmetro wreply .

    O Internet Explorer 9, e versões posteriores do Internet Explorer, exibe o aviso de conteúdo seguro quando encontra conteúdo não protegido numa página segura, como imagens ou scripts originários de um servidor não protegido. Neste caso, está a reagir ao conteúdo ACS seguro (HTTPS/SSL) e ao conteúdo não seguro (HTTP) do fornecedor de identidade. O ACS não pode alterar ou suprimir este comportamento.

    Os utilizadores podem suprimir o aviso, tal como descrito na notificação "Apenas é apresentado conteúdo seguro" no Internet Explorer 9 ou posteriormente. No entanto, uma vez que esta definição se aplica a todos os websites e pode tornar o computador do utilizador vulnerável a conteúdos maliciosos, recomenda-se a definição predefinicional, que bloqueia o conteúdo não seguro (HTTP).

Para ajudar os utilizadores finais a iniciar uma única sing-out, a página de assinatura da aplicação do partido em funções deve instruir os utilizadores a fechar o navegador ou a assinar explicitamente outras aplicações de partes dependentes e o website do fornecedor de identidade. Fechar um separador de navegador, janela ou página não é suficiente. Se o computador for partilhado ou num local público, como um computador de quiosque, os utilizadores devem limpar o histórico do navegador antes de fechar o navegador.

Consulte também

Conceitos

Amostra de código: ASP.NET MVC 4 com sign-out federado

Outros Recursos

Autenticação Passiva para ASP.NET na WIF