Slides

Propaganda
Proteja suas fronteiras: Segurança de
Microservices com Spring Security e
CAS
2017
Quem sou eu?
Alexandre Arcanjo de Queiroz
Engenheiro de Software Sênior na Geofusion
Revisor Técnico na Packt Publishing
O que é o CAS?
●
Central Authentication Service
●
Sistema (e um protocolo) de autenticação baseado em tokens
●
Centralizar login
●
Single Sing-On
●
Proteger contra proliferação e exposição de senhas
●
Yale University
●
Aplicação Web Java
O que é o CAS?
Customização
CAS Protocol
JAAS
JDBC
LDAP
OAuth 2.0
Active Directory
Open ID
RADIUS
SAML
X.509 Certs
cas.war
Provedor Single Sign-On interno também
cas.war
Fluxo de login básico
Java
Application
CAS Server
Fluxo de login básico
Java
Application
index.jsp
CAS Server
Fluxo de login básico
Java
Application
index.jsp
[Não está logado]
CAS Filter
CAS Server
Fluxo de login básico
Java
Application
index.jsp
[Não está logado]
redirect:/cas/login
CAS Filter
CAS Server
Fluxo de login básico
Java
Application
index.jsp
[Não está logado]
redirect:/cas/login
CAS Filter
/cas/login
CAS Server
Fluxo de login básico
Java
Application
index.jsp
[Não está logado]
redirect:/cas/login
CAS Filter
/cas/login
username, password
CAS Server
Fluxo de login básico
Java
Application
CAS Server
index.jsp
[Não está logado]
redirect:/cas/login
CAS Filter
/cas/login
username, password
[logado]
Fluxo de login básico
Java
Application
CAS Server
index.jsp
[Não está logado]
redirect:/cas/login
CAS Filter
/cas/login
username, password
redirect:index.jsp?ticket=ST-*
CASTGC
[logado]
Fluxo de login básico
Java
Application
CAS Server
index.jsp
[Não está logado]
redirect:/cas/login
CAS Filter
/cas/login
username, password
redirect:index.jsp?ticket=ST-*
CASTGC
index.jsp?ticket=ST-*
[logado]
CAS Clients
Oficiais
●
●
●
●
●
●
Java (CAS Client 3.0 e 3.1)
Java/Apache Shiro (shiro-cas)
PHP (PhpCAS)
Apache (mod_auth_cas)
.NET (.NET CAS Client)
REST API
Não Oficiais:
●
Python, Perl, Ruby (On Rails), Erlang, Nginx, Node.js
Exemplo proposto
CAS Server
<<autentica>>
CAS Service
customer-service
<<autentica>>
<<usa>>
CAS Service
<<chamada autenticada
server-side>>
product-service
Código-fonte
http://goo.gl/UJGxF2
Considerações finais
●
Tá bom e a documentação?
●
Problemas conhecidos?
●
Eu vou ter que fazer essa configuração em todos os meus serviços?
Considerações finais
Referências
●
●
●
●
●
●
https://wiki.jasig.org/display/CAS/Home
https://www.apereo.org/projects/cas
http://docs.spring.io/spring-security/site/docs/3.1.4.RELEASE/reference/cas.html
https://github.com/racx/cas-auth-lua-nginx
https://github.com/toshipiazza/ngx-http-cas-client-lua
https://www.purdue.edu/apps/account/html/cas_presentation_20110407.pdf
www.linkedin.com/in/alexandrequeiroz
[email protected]
Alexandre Arcanjo de Queiroz
ArcanjoQueiroz
Obrigado
Download