O Microsoft Identity é uma evolução do Azure AD. Ele facilita a criação de login/autenticação de usuários e possibilita a utilização de login com contas externas, como por ex: Google, Facebook, Office365, e diversos aplicativos externos.
Ao criar um novo projeto temos a possibilidade de definir o tipo de autenticação para utilizar o Itentity:
cli: dotnet new mvc --auth Individual -n "MyApp"
Desta forma, os componentes do Identity ja vêm configurados e precisamos apenas alterar nosso Startup e AppSettings para refletir as configurações necessárias ao nosso ambiente
Configurando o Identity
Para utilizar o Identity assim como outros serviços, utilizamos o método ConfigureServices da classe StartUp. Neste exemplo, utilizaremos como entidade de usuário nossa classe ApplicationUser, a qual herda de IdentityUser (podemos passar a classe IdentityUser como parametro, porém desta forma podemos personalizar nossa entidade).
O método "AddEntityFrameworkStores" especifica que o Identity deve utilizar o EF Core e o DbContext especificado.
Também devemos alterar nosso contexto para fazer uso do contexto do Identity
Note que o nosso contexto não herda mais de DbContext e sim de IdentityDbContext pois o ele também herda de DbContext.
Para adicionarmos o Identity ao nosso pipeline, precisamos alterar nosso método Configure. No caso da aplicação que estamos trabalhando, adicionarei dois métodos.
Lembre-se de adicionar antes de UseMvc() ou UseEndpoints() (dependendo da versão em que você está trabalhando).
O Identity nos permite diversas configurações utilizando a classe IdentityOptions, como por exemplo requisitos para senha, tempo de bloqueio após diversas tentativas, etc. Recomendo consultar a documentação da Microsoft.
Exemplo de classe Startup completa
0 Comentários