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
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.
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 .
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.
ACSSignOut Cookie
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