IdentityServer 4
EM 50 40 35 MINUTOS
Vinicius Quaiato
Ninja Developer @Lambda3
Juiz de Magic, pai, vegano, palestrero e ciclista
nas horas vagas
facebook.com/vquaiato
github.com/vquaiato
twitter.com/vquaiato
Cenário atual
 Diversas aplicações dentro das empresas
 Web
 Mobile
 APIs
 Desktop
Segurança
 Autenticação
 Login
 Autorização
 Permissões
Autenticação vs Autorização
 O que é Autenticação?
 Processo de verificar que uma pessoa ou recurso é quem diz ser
 O que é Autorização?
 Processo pelo qual verifica-se acessos e permissões a recursos, funcionalidades, etc
Comunicação
App A
API X
Serviço Z
App N
Api Foo
Tecnologia
 Solução caseira
 Parece boa, a gente super gosta dela, mas no final dá um mega trabalho arrumar a
bagunça que ficou
 Solução de Mercado
 Padrões já estebelecidos, reaproveitamento, foco
Comunicação
OAuth 2 e OpenId Connect
 OAuth2 protocol que provê uma maneira simples e padronizada de autorização a
recursos em nome de uma pessoa
 OpenId Connect protocol em cima do OAuth 2 que prove maneira simples e
padronizada de autorização a recursos e autenticação fornecendo dados sobre a
pessoa
IdentityServer 4
 Provedor OpenID Connect
 Implementa OpenID Connect
 Implementa OAuth 2
 Autenticação como Serviço
 Single Sign-On / Single Sign-Out
 Controle de Acesso à APIs
 Federation Gateway
 Customizável
 Open Source com suporte Free e Comercial
Demo 1
 Criando um servidor IdentityServer 4
Demo 2
 Criando dois clientes que conectam-se ao IS4 com Single-Sign On
Links e Referências
 https://github.com/IdentityServer/IdentityServer4
 identityserver4.readthedocs.io
 http://openid.net/connect/
 https://oauth.net/
 https://aaronparecki.com/oauth-2-simplified/
 https://blog.lambda3.com.br/tag/identityserver/

IdentityServer 4

  • 1.
  • 2.
    Vinicius Quaiato Ninja Developer@Lambda3 Juiz de Magic, pai, vegano, palestrero e ciclista nas horas vagas facebook.com/vquaiato github.com/vquaiato twitter.com/vquaiato
  • 3.
    Cenário atual  Diversasaplicações dentro das empresas  Web  Mobile  APIs  Desktop
  • 4.
    Segurança  Autenticação  Login Autorização  Permissões
  • 5.
    Autenticação vs Autorização O que é Autenticação?  Processo de verificar que uma pessoa ou recurso é quem diz ser  O que é Autorização?  Processo pelo qual verifica-se acessos e permissões a recursos, funcionalidades, etc
  • 6.
  • 7.
    Tecnologia  Solução caseira Parece boa, a gente super gosta dela, mas no final dá um mega trabalho arrumar a bagunça que ficou  Solução de Mercado  Padrões já estebelecidos, reaproveitamento, foco
  • 8.
  • 9.
    OAuth 2 eOpenId Connect  OAuth2 protocol que provê uma maneira simples e padronizada de autorização a recursos em nome de uma pessoa  OpenId Connect protocol em cima do OAuth 2 que prove maneira simples e padronizada de autorização a recursos e autenticação fornecendo dados sobre a pessoa
  • 10.
    IdentityServer 4  ProvedorOpenID Connect  Implementa OpenID Connect  Implementa OAuth 2  Autenticação como Serviço  Single Sign-On / Single Sign-Out  Controle de Acesso à APIs  Federation Gateway  Customizável  Open Source com suporte Free e Comercial
  • 11.
    Demo 1  Criandoum servidor IdentityServer 4
  • 12.
    Demo 2  Criandodois clientes que conectam-se ao IS4 com Single-Sign On
  • 13.
    Links e Referências https://github.com/IdentityServer/IdentityServer4  identityserver4.readthedocs.io  http://openid.net/connect/  https://oauth.net/  https://aaronparecki.com/oauth-2-simplified/  https://blog.lambda3.com.br/tag/identityserver/

Notas do Editor

  • #8 Soluções caseieras tendem a ignorar padrões estabelecidos, dificultando integrações, descartando bibliotecas, tornando as aplicações não apenas menos seguras mas também mais engessadas.
  • #9 Olhando para uma solução caseira, como garantir que a comunicação entre aplicações distintas será feita de maneira adequada?
  • #10 Na prática OAuth não tem que fornecer informações sobre a pessoa, apenas garantir que um request tem o devido accesso a um determinado recurso. Por exemplo no Twitter garantir que o request feito tenha a permissão devida para ler ou enviar tuites para/por uma determinada pessoa OpenId Connect estende esse processo de autenticação adicionando informações sobre quem é a pessoa. Estas informações são geralmente retornadas em um token específico de identificação, além de contar com o uso de Claims para definir uma série de atributos desta pessoa
  • #11 Provedor OpenID – Fornece os recursos dos quais falamos anteriormente sobre autenticação, autorização e informações sobre as pessoas Autenticação como Serviço – Diversos clients podem utilizer seu servidor de identitidade para realizer autenticação Single Sign-On – Uma pessoa autenticada em uma aplicação, ao acessar uma segunda aplicação não precisará digitar seu usuário e senha novamente Single Sign-Out – Quando uma pessoa faz logout de uma aplicação o servidor de identitidade pode notificar outras aplicações a que ela tenha acesso para que o logout seja realizado Federation Gateway – Suporte a provedores de identitidade externos como Google, Facebook, Azure AD, etc Customizável – Por ser um framework possui diversos pontos de extensão para que o IS4 funcione da maneira que você precisa