Pergunta

Um cenário simples:

Digamos que tenhamos um aplicativo da Web na nuvem que permite que os usuários se inscrevam usando o OpenID. (Estou aberto para usar o Windows Live ID como alternativo) Eles podem fazer login e atualizar alguns meta -dados, por exemplo, qual é a cor favorita deles.

Se agora eu quiser obter essas informações de um cliente de desktop, como faço isso? Provavelmente terei que expor um serviço da Web para consultar essas informações, mas e a autenticação?

Lá está o Dotnetopenauth E aí está o Windows Identity Foundation, e temos espaço para cartas etc.
Mas por onde diabos eu começo? Qual deles eu preciso? Eu preciso de todos os 3?
E quanto ao STS, existe algum para o OpenID / Windows Live ID?

Alguém viu uma amostra usando essas tecnologias que farão o que estou procurando? Algum indicador?

Foi útil?

Solução

Separe em sua mente os conceitos de autenticação e autorização. Você autentica usuários em seu site . Você pode fazer isso com o OpenID, Infocard, STs ou Nome de usuário+senha. Aplicativos clientes que chamam seu serviço para obter informações específicas do usuário devem ser autorizado, o que tradicionalmente significa que eles pedem ao usuário seu nome de usuário+senha, que é um anti-padronização, e quebra quando você usa credenciais mais fortes ou alternativas, como OpenID ou Infocard, como você está vendo.

A autorização do aplicativo deve usar um protocolo de delegação como o OAuth, que permite ao usuário visitar uma página da Web que permite ao aplicativo desktop acessar os dados privados do usuário, sem que o usuário exponha suas credenciais ao aplicativo.

Dotnetopenauth apóia esse cenário completo. Ele vem com amostra OAuth e sites OpenID. Eu recomendo que você verifique qualquer um dos modelos de projeto que demonstram login OpenID (e os formulários da Web que inclui até o Infocard Login como uma opção) e também o OAuth Service Provider, fazendo com que ele funcione para usuários da Web e autorizando esses aplicativos clientes imediatamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top