ASP.NET Core 2 – Autenticação de usuário via redes sociais | iMasters
A nova versão do ASP.NET Core 2 implementa uma novidade em relação à autenticação do usuário. Agora, a autenticação tornou-se um único serviço, podendo, é claro, autenticar-se via login que será armazenado em algum repositório, ou ainda usando as redes sociais.
O objetivo deste artigo é mostrar como configurar a autenticação via Google, Facebook, entre outros no seu projeto ASP.NET Core 2. E, como um único serviço, você deverá apenas configurar quais provedores externos deseja.
Para simular o conteúdo, crie um projeto de ASP.NET Core 2 MVC no Visual Studio 2017 ou via linha de comando usando o "dotnet new mvc –auth Individual -f netcoreapp2.0".
Tudo começa no arquivo Startup.cs, que é a classe a ser executada assim que a aplicação é invocada. Nela é que todas as configurações e serviços deverão ser feitas. A lista de using a ser inserida, além das que o template insere, é:
O método Configure recebe como parâmetro o IApplicationBuilder app, e você deverá invocar o UseAuthentication() para habilitar todas a capacidades conforme as configurações que iremos definir. Na listagem a seguir, suprimi alguns códigos desnecessários.
app.UseMvc(routes =>     {
Como configurar o usuário em si? Em seguida, você deve configurar os dados do usuário em si, já que o IdentityOptions contém UserOptions, ClaimsIdentityOptions, PasswordOptions, LockoutOptions, SignInOptions e TokenOptions. Veja como estão setadas a senha do usuário, o Lockout e o e-mail único. Ou seja, todas as propriedades de cada tipo você pode – e deve – configurar de acordo com o nível de segurança desejado.
Já a autenticação via provedores externos, como Facebook, Google e Microsoft, requer que a sua aplicação ASP.NET seja registrada nos sites de desenvolvedores deles (https://developers.facebook.com, https://developers.google.com), e serão geradas chaves para ClientID e ClientSecret. São exatamente essas chaves que você deverá inserir no Startup.cs, conforme a seguir.
// via facebook
// MS account
E para finalizar, veja mais dois provedores que usam JWT Bearer (JSON Web Token https://jwt.io/introduction/) e OpenID (http://openid.net/connect/), os quais têm sido bastante usados em várias aplicações. O JWT pode ser implementado em qualquer tipo de aplicação ASP.NET, independentemente da versão.