Single Sign On implementation in C# using SAML 2.0

na semana passada fiz muita pesquisa sobre o tema de usar um único sinal com {[[0]}. Encontrei um monte de bons artigos e entendo o processo de SSO em detalhes, mas estou encontrando problemas ao implementá-lo em nossa solução C# com.NET Framework 4.5.

Deixe-me descrever a minha compreensão do processo e como imagino que devo continuar a aplicá-lo.
  1. o usuário vai para o nosso software que é o Provedor de Serviços (SP). Nós temos tido diferentes instâncias ajustadas às necessidades do nosso cliente.

  2. Depois de digitar o endereço de E-mail, ele deve ser re-direcionado para o nosso Fornecedor De Identidade (IdP). Neste momento, creio que deveria enviar um item de autenticação para verificar se o utilizador não está já registado entra no IdP. No caso de ser o utilizador, eu gostaria de entrar no utilizador ao nosso sistema. No caso de não estar, ele então faria login em seu IdP.

  3. Depois de ele ser autenticado com sucesso, vamos enviar o token de Resposta SAML de volta ao URL do nosso site.
  4. Quando o token chegar ao nosso fim, devemos descodificá-lo e, quando a autenticação tiver sido bem sucedida, conceder ao Utilizador acesso ao serviço.

até agora não encontrei nenhum bom recurso no processo real de gerar o pedido SAML ou uma forma de descodificar o nosso símbolo {[[2]} no código C#.

para os testes estamos a usar o ADFS 2.0 como o IdP e estamos a receber a resposta {[[2]} dele. Quando vamos processe a resposta que gostaríamos de comparar as informações em nosso banco de dados com o e-mail na resposta para verificar os detalhes dos usuários antes de deixá-los entrar no sistema.

Os exemplos que consegui encontrar estão desactualizados ou não estão a dar explicações pormenorizadas. Se alguém fosse capaz de iluminar um pouco para mim, fornecendo alguns exemplos de implementação ou um recurso bom e atualizado que ainda não consegui encontrar.

Author: Aya Aboud, 2017-01-11

1 answers

[[1]}o SAMl 2.0 não é um protocolo simples e como você descobriu, não é trivial rolar o seu próprio.

Usa uma pilha do lado do cliente SAML.

Note que não existe um oficial da Microsoft.

Ver SAML : conectividade SAML / toolkit para algumas ideias.

Isto fará todo o trabalho pesado e canalização para ti.
 1
Author: nzpcmad, 2017-01-11 19:18:24