JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
-
Upload
leonardo-oliveira -
Category
Documents
-
view
48 -
download
0
description
Transcript of JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
1/269
Sande Gilda Darrin Mison David RyanMisty Stanley-Jones Tom Wells
Plataforma do Aplicativo JBossEnterprise 6.2
Guia de Segurana
Para uso com a Plataforma do Aplicat ivo JBoss Enterprise 6
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
2/269
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
3/269
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
Para uso com a Plataforma do Aplicat ivo JBoss Enterprise 6
Sande Gilda
Darrin Mison
David Ryan
Misty [email protected]
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
4/269
Nota Lega l
Copyright 2014 Red Hat, Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 UnportedLicense. If you distribute this document, or a modified vers ion of it, you must provide attribution to RedHat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must beremoved.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo,and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries .
Linux is the registered trademark of Linus Torvalds in the United States and other countries.
Java is a registered trademark of Oracle and/or its affiliates.
XFS is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United Statesand/or other countries.
MySQL is a registered trademark of MySQL AB in the United States, the European Union and othercountries.
Node.js is an official trademark of Joyent. Red Hat Software Collections is not formally related to orendorsed by the official Joyent Node.js open source or commercial project.
The OpenStack Word Mark and OpenStack Logo are either registered trademarks/service marks ortrademarks/service marks of the OpenStack Foundation, in the United States and other countries andare used with the OpenStack Foundation's permission. We are not affiliated with, endorsed orsponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.Resumo
Este livro um guia para a segurana do JBoss Enterprise Application Plataform 6 e seus lanamentosde patch.
http://creativecommons.org/licenses/by-sa/3.0/ -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
5/269
. . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ndice
Prefcio1. Convenes de Documentos
1.1.Convenes T ipogrficas1.2.Convenes de Pull-Quote
1.3.Notas e Avisos2. Obtendo Ajuda e Fornecendo Comentrios
2.1. Voc precisa de ajuda?2.2. Ns precisamos do seuComentrio!
Parte I. Segurana para o JBoss Enterprise Application Plataform 6
Captulo1. Introduo1.1. Red Hat JBoss Enterprise Application Platform 6 (JBoss EAP 6)1.2. Segurana do JBoss Enterprise Application Platform 6
Captulo 2. Viso Geral da Segurana
2.1. Segurana Declarativa2.1.1. Viso Geral do Java EE Declarative Security2.1.2. Referncias de Segurana2.1.3. Identidade de Segurana2.1.4. Funes de Segurana2.1.5. Permisses de Mtodo EJB2.1.6.Anotaes de Segurana de Beans Enterprise2.1.7.Restries de Segurana do Contedo daWeb2.1.8.Habilitao da Autenticao baseada no Formulrio2.1.9.Habilitao da Segurana Declarativa
Captulo 3. Introduo ao JAAS
3.1. JAAS3.2. Classes JAAS Core3.3. Classes Assunto e Principal3.4. Autenticao do Assunto
ParteII. Segurana da Plataforma
Captulo 4 . O Subsistema de Segurana4.1. Subsistema de Segurana4.2. Estrutura do Subsistema de Segurana4.3. Configurao do Subsistema de Segurana
4.3.1.Configurao do Subsistema de Segurana
4.3.2. Gerenciamento de Segurana4.3.2.1. Modo Assunto de Cpia Profunda4.3.2.2. Habilitao do Modo Assunto de Cpia Profunda
4.3.3. Security Domains4.3.3.1. Security Domains4.3.3.2. Picketbox
Captulo 5. Gerenciamento de Identidade PicketLink5.1. Security Token Service (STS - Servio Token de Segurana)5.2. Configurao do PicketLink STS5.3. Mdulos de Login do PicketLink STS
5.4. Configurao do STSIssuingLoginModule5.5. Configurao do STSValidatingLoginModule5.6. SAML Web Browser Based SSO
5.6.1. SAML Web Browser Based SSO5.6.2. Confi ura o SAML v2 baseada no Web SSO usando o HTTP/Redirect Bindin
6667
8889
10
111111
12
12121213151619202223
2424242425
29
3030303131323232333334
35353638
3940414141
ndice
1
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
6/269
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6.3. Configurao do Provedor de Identidade5.6.4. Configurao do Provedor de Segurana5.6.5. Configurao do SAML v2 baseado no Web SSO usando o HTTP/POST Binding
5.7. Configurao do Perfil de Sada do SAML Global5.8. Integrao SPNEGO e kerberos
5.8.1. Integrao SPNEGO e Kerberos5.8.2. Desktop SSO usando SPNEGO
5.8.3. Configurao do JBoss Negotiation para o Microsoft Windows Domain5.9. Autenticao
5.9.1. Autenticao5.9.2. Configurao da Autenticao num Security Domain
5.10. Java Authentication SPI for Containers (JASPI - SPI de Autenticao Java para Contineres)
5.10.1. Java Authentication SPI para Segurana (JASPI) de Continer5.10.2. Configurao do Java Authentication SPI for Containers (JASPI) de Segurana
5.11. Autorizao5.11.1. Autorizao5.11.2. Configurao da Autorizao num Security Domain
5.12. Java Authorization Contract for Containers (JACC - Contrato de Autorizao Java paraContineres)
5.12.1. Java Authorization Contract for Containers (JACC)5.12.2. Configurao do Java Authorization Contract for Containers (JACC) para Segurana5.12.3. Autorizao Fina Granulada usando XACML
5.12.3.1. Autorizao Fina Granulada e XACML
5.12.3.2. Configurao do XACML para a Autorizao Fina Granulada5.13. Auditoria de Segurana
5.13.1. Auditoria de Qualidade5.13.2. Configurao de Auditoria de Segurana
5.14. Mapeamento de Segurana5.14.1. Mapeamento de Segurana5.14.2. Configurao do Mapeamento de Segurana num Managed Domain
5.15. Uso do Security Domain em seu Aplicativo
Captulo 6. Java Security Manager6.1. Java Security Manager6.2. Polticas do Java Security Manager6.3. Execuo do JBoss EAP com o Java Security Manager6.4. Gravao da Poltica do Java Security Manager6.5. Polticas do Gerenciador de Segurana de Depurao
Captulo 7. Rea lms de Segurana7.1. Realms de Segurana7.2. Adio do Novo Realm de Segurana
7.3. Adio de um usurio ao Realm de Segurana
Captulo 8. Criptografia8.1. Criptografia8.2. Criptografia SSL8.3. Implementao da Criptografia SSL para o JBoss EAP 6 Web Server8.4. Criao de uma Chave de Criptografia SSL e Certificado
8.5. Referncia do Conector SSL8.6. FIPS 140-2 Compliant Encryption
8.6.1. Compatibilidade com o FIPS 140-28.6.2. Senhas Compatveis com o FIPS 140-2
8.6.3. Habilitao da Criptografia do FIPS 140 -2 para o SSL no Red Hat Enterprise Linux 6Captulo 9. Segurana de Rede
9.1. Segurana das Interfaces de Gerenciamento9.2. Especificao de qual Interface da Rede o JBoss EAP 6 usa
42444647474748
51525252
545454
555555
5656
56585858666666676767
68
717171717275
777777
78
797979798083868686
87909090
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
2
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
7/269
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3. Configurao dos Firewalls de Rede para Trabalho com o JBoss EAP 69.4. Portas de rede usadas pela Plataforma do Aplicativo JBoss EAP 6
Captulo 10. Segurana da Interface de Ge renciamento10.1. Segurana das Interfaces de Gerenciamento10.2. Configurao de Segurana do Usurio Default10.3. Viso Geral da Configurao da Interface de Gerenciamento Avanada10.4. Desabilitao da Interface de Gerenciamento HTTP
10.5. Remoo da Autenticao Silenciosa do Realm de Segurana Default10.6. Desabilitao do Acesso Remoto ao Subsistema JMX10.7. Configurao dos Security Realms para as Interfaces de Gerenciamento
10.8. Configurao do Console de Gerenciamento para o HTTPS no modo Autnomo10.9. Configurao do Console de Gerenciamento para o HTTPS no modo Domain10.10. Uso de 2-maneiras para a interface de Gerenciamento e do CLI10.11. Vaults da Senha para Sequncias Confidenciais
10.11.1. Sequncias Confidenciais de Segurana nos Arquivos de texto limpo10.11.2. Criao do Java Keystore para Sequncias Confidenciais do Store10.11.3. Mascarando a Senha Keystore e Inicializao do Vault da Senha10.11.4. Configurao do JBoss EAP para Uso do Vault de Senha
10.11.5. Store e Recuperao das Sequncias Confidenciais Criptografas do Java Keystore10.11.6. Store e Sequncia Confidencial Resoluo em seus Aplicativos
10.12. LDAP10.12.1. LDAP10.12.2. Uso do LDAP para Autenticao das Interfaces de Gerenciamento
Captulo 11 . Segurana das Interfaces de Gere nciamento com o Controle de Acessobaseado na Funo
11.1. Role-Based Access Control (RBAC - Controle de Acesso baseado na Funo)11.2. Controle de Acesso baseado na Funo no GUI e CLI11.3. Esquemas de Autenticao Suportados11.4. Funes Padres
11.5. Permisses de Funo11.6. Restries11.7. JMX e Controle de Acesso Baseado na Funo11.8. Configurao do Controle de Acesso baseado na funo
11.8.1. Viso Geral das Tarefas de Configurao RBAC11.8.2. Habilitao do Role-Based Access Control11.8.3. Alterao da Poltica de Combinao de Permisso
11.9. Gerenciando Funes11.9.1. Membro da Funo
11.9.2. Configurao do T rabalho da Funo do Grupo com o jboss-cli.sh11.9.3. Configurao da Determinao da Funo do Usurio com o jboss-cli.sh
11.9.4. Funes e Grupos de Usurios11.9.5. Configurao da Determinao da Funo do Grupo11.9.6. Configurao da Determinao da Funo do Grupo com jboss-cli.sh11.9.7. Autorizao e Carregamento de Grupo com o LDAP
username-to-dn Busca do Grupo Busca Geral de Grupo
11.9.8. Funes com Escopo11.9.9. Criao de Funes com Escopo
11.10. Configurao das Restries11.10.1. Configurao de Security Constraints (Restries de Segurana)11.10.2. Configurao do Application Resource Constraints (Restries do Recurso doAplicativo)11.10.3. Configurao do Vault Expression Constraint (Restrio da Expresso Vault)
11.11. Referncia de Restries11.11.1. Referncia do Application Resource Cons traint (Restrio do Recurso do Aplicativo)
9193
9696969798
99101101102103104105105106108109
111113115115116
121121121122122
123124125125125126127128128128132
135135139142143144146148149153153
155156157
ndice
3
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
8/269
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.11.2. Re er nca Sens t v ty Constra nts Restr es Con enc a s
Captulo 12. Configurao do Subsistema da Transao12.1. Transaes JTS
12.1.1. Configurao do ORB para as Transaes JTS12.1.2. Configurao JMS.
12.1.2.1. Referncia aos Atributos de Configurao HornetQ
Captulo 13. Web, Conectores HTTP e C lustering HTT P13.1. Configurao de um N Trabalhador mod_cluster
Captulo 14 . Instalao de Patch14.1. Patches e Atualizaes14.2. Mecanismos de Aplicao de Patch14.3. Subscrio para as Listas de Correio Patch14.4. Instale os Patches na Forma Zip
14.4.1. O comando patch
14.4.2. Instalao de Patches na forma Z ip usando o comando patch14.4.3. Reverso do Aplicativo de um Patch na forma Z ip usando o comando patch
14.5. Instalao de Patches na forma RPM
14.6. Classificao de impacto e gravidade do JBoss Security Patches (Patches de SeguranaJBoss)14.7. Gerenciamento das Atualizaes de Segurana para Dependncias de Agrupadas dentrodos Aplicativos Implantados no JBoss EAP
Parte III. Aplicat ivos de Segurana
Captulo 15. Segurana do Aplicat ivo15.1. Segurana do Aplicativo15.2. Habilitao/Desabilitao da Substituio da Propriedade baseada no Descritor15.3. Segurana da Fonte de Dados
15.3.1. Segurana da Fonte de Dados
15.4. Segurana do Aplicativo EJB15.4.1. Identidade de Segurana
15.4.1.1. Identidade de Segurana EJB15.4.1.2. Determine a Identidade de Segurana de um EJB
15.4.2. Permisses de Mtodo EJB15.4.2.1. Permisses do Mtodo EJB15.4.2.2. Uso das Permisses do Mtodo EJB
15.4.3. Anotaes de Segurana EJB15.4.3.1. Anotaes de Segurana EJB15.4.3.2. Anotaes da Segurana EJB
15.4.4. Acesso Remoto para os EJBs
15.4.4.1. Acesso de Mtodo Remoto15.4.4.2. Retorno de Chamada Remoting15.4.4.3. Deteco do Servidor Remoting15.4.4.4. Configurao do Subsistema Remoting15.4.4.5. Uso dos Security Realms com os Clientes EJB Remoto
15.4.4.6. Adio do Novo Realm de Segurana15.4.4.7. Adio de um usurio ao Realm de Segurana15.4.4.8. Acesso EJB Remoto usando a Criptografia SSL
15.5. Servios do Aplicativo JAX-RS15.5.1. Habilitao de Segurana baseada na Funo para um Servio da Web RESTEasy JAX-RS15.5.2. Aplique a Segurana no Servio da Web JAX-RS usando Anotaes
Captulo 16. Single Sign On (SSO - Assinat ura nica)16.1. Single Sign On (SSO - Assinatura nica) para Aplicativos da Web16.2. Single Sign On (SSO - Assinatura nica) com Cluster para Aplicativos da Web
159
168168168169169
172172
176176176176177177178179180
181
183
184
185185185186186187187187187189189189192192192193
193194195195203204205205205
205207
209209210
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
4
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
9/269
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . sco a a orre a mp emen a o16.4. Uso do Single Sign On (SSO - Assinatura nica) num Aplicativo da Web
16.5. Kerberos16.6. SPNEGO16.7. Microsoft Active Directory16.8. Configurao do Kerberos ou Microsoft Active Directory Desktop SSO para os Aplicativos daWeb
Captulo 17 . Segurana basea da na Funo nos Aplicat ivos17.1. Arquitetura de Extenso de Segurana17.2. Java Authentication and Authorization Service (JAAS)17.3. Java Authentication and Authorization Service (JAAS)17.4. Uso do Security Domain em seu Aplicativo17.5. Uso da Segurana baseada na Funo nos Servlets17.6. Uso do Sistema de Autenticao de Terceiros no seu Aplicativo
Captulo 18. Migrao18.1. Configurao das Alteraes de Segurana do Aplicativo
Referncia
A.1. Mdulos de Autenticao IncludosA.2. Mdulos de Autorizao IncludaA.3. Mdulos de Mapeamento de Segurana IncludaA.4. Mdulos do Fornecedor de Auditoria de Segurana IncludosA.5. Referncia da Configurao jboss-web.xmlA.6. Referncia do Parmetro de Segurana EJB
Histrico de Reviso
211213214214
214
218218219219223224226
233233
234
234260260261261263
265
ndice
5
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
10/269
Prefcio
1. Convenes de Documentos
Este manual usa diversas convenes para destacar certas palavras e frases e chamar a ateno parainformaes especficas.
Em PDF e edies de texto, este manual usa tipos de letras retiradas do conjunto Liberation Fonts. O conjunto deFontes Liberation Fonts, tambm usado em formato HTML, caso o conjunto esteja instalado em seu sistema.Caso ainda no esteja, como forma alternativa, esto disponveis tipos de letras equivalentes. Nota: O Red HatEnterprise Linux 5 e verses mais recentes do mesmo, incluem o conjunto Liberation Fonts por padro.
1.1. Convenes Tipogrficas
So usadas quatro convenes tipogrficas para realar palavras e frases especficas. Estas convenes, ecircunstncias a que se aplicam, so as seguintes:
Negrito Espao nico(Mono-spaced Bold)
Usada para realar entradas do sistema, incluindo comandos de shell, nomes de arquivos e caminhos. Sotambm usadas para realar teclas Maisculas/Minsculas e as combinaes de teclas. Por exemplo:
Para ver o contedo do arquivo my_next_bestselling_novelem sua pasta de trabalho atual,
insira o comando cat my_next_bestselling_novelna janela de solicitao e press ione Enter
para executar o comando.
O comando acima inclui um nome de arquivo, um comando de shell e uma tecla, todos apresentados em NegritoEspao nico (Mono-spaced Bold) e todos distintos, graas ao contedo.
As combinaes de tecla podem ser diferenciadas de uma tecla individual pelo sinal positivo que conecta cadaparte da combinao da tecla. Por exemplo:
Pressione Enterpara executar o comando.
Pressione Ctrl+Alt+F2para trocar ao terminal virtual.
A primeira sentena, destaca uma tecla especfica a ser pressionada. A segunda destaca duas combinaes deteclas: um conjunto de trs teclas pressionadas simultaneamente.
Caso o cdigo fonte seja discutido, sero apresentados como acima, os nomes de classe, mtodos, funes,nomes de variantes e valores retornados mencionados em um pargrafo, em Negrito de Espao nico
(Mono-spaced Bold). Por exemplo:
Classes baseadas em arquivo, incluem filesystem para sistemas de arquivo, filepara arquivos,e dirpara diretrios. Cada classe possui seu conjunto prprio de permisses associadas.
Negrito Proporcional
Esta representa as palavras e frases encontradas no s istema, incluindo os nomes de aplicativos, texto de caixade dilogo, botes rotulados, caixa de seleo e rtulos de boto de opo, ttulos de menus e submenus. Porexemplo:
Escolha Sistema Preferncias Mouseda barra do menu principal para lanar MousePreferences. Na aba Botesselecione o Boto da esquerda do mouseselecione a caixa e
cliquem emFecharpara mudar o boto inicial do mouse da esquerda para a direita (tornando o
mouse adequado para o uso na mo esquerda).
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
6
https://fedorahosted.org/liberation-fonts/https://fedorahosted.org/liberation-fonts/ -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
11/269
Selecione Applications Accessories Character Mapa partir da barra de menu principal,com o objetivo de inserir um caractere especial ao arquivo gedit. Em seguida, selecione SearchFinda partir da barra do menu Character Map, digite o nome do caractere no campo Searche
clique em Next. O caractere pesquisado aparecer destacado no Character Table. Clique duas
vezes no caractere destacado para pos icion-lo no campo Text to copye clique no boto Copy.
Retorne ao seu documento e selecione Edit Pastea partir da barra do menu gedit.
O texto acima inclui nomes de aplicativos, nomes de menu e itens de todo o sistema, nomes de menu especficosdo aplicativo, e botes e textos encontrados na Interface Grfica GUI, todos apresentados em NegritoProporcional (Proportional Bold) e todos diferenciados de acordo com o contexto.
Itlico em Negrito de Espao nico (Mono-spaced Bold Italic)ou Itlico em Negrito Proporcional
(Proportional Bold Italic)
Sendo o Negrito Espao nico (Mono-spaced Bold) ou Negrito Proporcional (Proportional Bold), os itlicos extrasindicam textos substituveis ou variveis. O Itlico denota o texto que voc no inseriu literalmente ou textosexibidos que mudam dependendo das circunstncias. Por exemplo:
Para conectar-se uma mquina remota usando o ssh, digite ssh nome do [email protected]
na janela de comandos. Por exemplo, considere que a mquina remota seja example.com e seu
nome de usurio nesta mquina seja john, digite ssh [email protected] .
O comando mount -o remount file-systemremonta o sistema de arquivo nomeado. Por
exemplo, para remontar o sistema de arquivo /home, o comando mount -o remount /home.
Para ver a verso de um pacote instalado, use o comando rpm -qpackage. Ele retornar um
resultado como este:package-version-release.
Perceba as palavras em negrito e itlico acima - username, domain.name, file-system, package, version e release.Cada palavra um espao reservado, tanto para o texto que voc insere quando emitindo um comando ou paratextos exibidos pelo s istema.
Alm de uso padro para apresentar o ttulo de um trabalho, os itlicos denotam a primeira vez que um termonovo e importante usado. Por exemplo:
O Publican um sistema de publicao do DocBook.
1.2. Convenes de Pull-Quote
Resultado de terminal e listagem de cdigo fonte so definidos visualmente com base no contexto.
O resultado enviado um terminal configurado em Romano de Espao nico (Mono-spaced Roman)e
apresentado ass im:
books Desktop documentation drafts mss photos stuff svnbooks_tests Desktop1 downloads images notes scripts svgs
As listas de cdigo fonte tambm so configuradas em Romano de Espao nico (Mono-spaced Roman),
porm so apresentadas e realadas como a seguir:
staticintkvm_vm_ioctl_deassign_device(structkvm *kvm,
structkvm_assigned_pci_dev *assigned_dev)
{
intr = 0;
structkvm_assigned_dev_kernel *match;
mutex_lock(&kvm->lock);
match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
assigned_dev->assigned_dev_id);
if(!match) {
Prefcio
7
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
12/269
printk(KERN_INFO "%s: device hasn't been assigned before, "
"so cannot be deassigned\n", __func__);
r = -EINVAL;
gotoout;
}
kvm_deassign_device(kvm, match);
kvm_free_assigned_device(kvm, match);
out:
mutex_unlock(&kvm->lock);
returnr;
}
1.3. Notas e Avisos
E por fim, usamos trs estilos visuais para chamar a ateno para informaes que possam passardespercebidas.
Nota
Uma nota uma dica ou smbolo, ou ainda uma opo alternativa para a tarefa em questo. Se vocignorar uma nota, provavelmente no resultar em ms consequncias, porm poder deixar passar umadica importante que tornar sua vida mais fcil.
Importante
Caixas importantes detalham coisas que so geralmente fceis de passarem despercebidas: mudanasde configurao que somente se aplicam sesso atual, ou servios que precisam ser reiniciados antes
que uma atualizao seja efetuada. Se voc ignorar estas caixas importantes, no perder dados, pormisto poder causar irritao e frustrao.
Ateno
Um Aviso no deve ser ignorado. Se voc ignorar avisos, muito provavelmente perder dados.
2. Obtendo Ajuda e Fornecendo Comentrios
2.1. Voc precisa de ajuda?
Se encontrar dificuldades com o procedimento descrito nesta documentao, voc pode encontrar ajuda visitandoo Portal do Cliente da Red Hat em http://access.redhat.com. Voc poder realizar o seguinte atravs do portal docliente:
realize buscas ou navegue atravs da base de conhecimento dos artigos de suporte tcnico sobre osprodutos da Red Hat.
insira o caso de suporte nos Servios de Suporte Global da Red Hat (GSS).
acesso a outra documentao da Red Hat.
A Red Hat acomoda um grande nmero de listas de correio eletrnico para discusso de software e tecnologiasda Red Hat. Voc pode encontrar uma lista contendo as listas pblicas disponveis emhttps://www.redhat.com/mailman/listinfo. Clique no nome de qualquer lista para subscrever quela lista ou acessar
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
8
https://www.redhat.com/mailman/listinfohttp://access.redhat.com/ -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
13/269
o histrico das listas.
2.2. Ns precisamos do seu Comentrio!
Se voc encontrar erro ortogrfico neste manual, ou se voc tem uma sugesto para melhoramento deste manual,ns gostaramos muito de ouvir sua opinio! Por favor submita um relatrio em Bugzilla:http://bugzilla.redhat.com/contra o produto Plata forma do Aplicativo JBoss Enterprise..
Ao submeter um relatrio de erro, certifique-se de mencionar a identificao do manual:Security_Guide.
Se voc tiver uma sugesto para o melhoramento deste documento, por favor tente ser o mais especficopossvel em sua descrio. Caso voc tenha encontrado um erro, por favor inclua o nmero da seo e algunsdetalhes a respeito do texto para a nossa melhor identificao.
Prefcio
9
http://bugzilla.redhat.com/ -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
14/269
Parte I. Segurana para o JBoss Enterprise ApplicationPlataform 6
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
10
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
15/269
Captulo 1. Introduo
1.1. Red Hat JBoss Enterprise Application Platform 6 (JBoss EAP 6)
O JBoss Enterprise Application Plataform 6 (JBoss EAP 6) uma plataforma de middleware potente, segura erpida construda sobre os padres de cdigo aberto e compatvel com a especificao do Java Enterprise
Edition 6. Ela integra o JBoss Aplication Server 7 com cluster de alta disponibilidade, mensagem potente, cachedistribudo e outras tecnologias para criao de uma plataforma estvel e escalvel.
A nova estrutura modular permite que servios sejam habilitados apenas quando requeridos, aumentandosignificantemente a velocidade de iniciao. O Console de Gerenciamento e a Interface da Linha de Comandoremovem a necessidade de editar os arquivos de configurao XML manualmente, adicionando a habilidade descript e tarefas automticas. Alm disso, ela inclui os frameworks de desenvolvimento que podem ser usadospara a segurana do desenvolvimento e aplicativos Java EE escalvel rapidamente.
Reportar um erro
1.2. Segurana do JBoss Enterprise Application Platform 6Segurana de computadores um termo geral dado ao campo da tecnologia de informao que lida com asegurana dos ambientes virtuais que energizam a idade digital. Isto pode incluir proteo de dados eintegridade, provas de risco e vulnerabilidade e protocolos de autenticao e autorizao.
Os dados do computador um bem muito importante para a maioria das organizaes. A proteo de dados vital e forma o core da maioria dos negcios. O JBoss EAP fornece uma abordagem de multicamada seguranapara cuidar dos dados de todos os estgios.
Os s istemas de segurana verdadeiros so aqueles designados de baixo para cima com a segurana como orecurso principal. Tais sistemas usam o princpio de Segurana por Design. Em tais sistemas, os ataquesmalficos e infiltraes so aceitas como parte e parcela do aparato de segurana normal e os sistemas sodesignados a funcionar ao redor deles.
A segurana pode ser aplicada no nvel do sistema operacional, middleware e aplicativo. Por favor refira-se aoGuia de Segurana do Red Hat Enterprise Linux para maiores informaes sobre a segurana no nvel dosistema operacional.
Nos captulos adiante, voc ir ler a respeito dos diferentes nveis e camadas de segurana com o JBoss EAP 6.Essas camadas fornecem a infraestrutura para todas as funcionalidades de segurana com a plataforma.
Reportar um erro
Captulo 1. Introduo
11
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+13955-555636+%5BSpecified%5D&comment=Title%3A+Seguran%C3%A7a+do+JBoss+Enterprise+Application+Platform+6%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+13955-555636+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+228-458161+%5BSpecified%5D&comment=Title%3A+Red+Hat+JBoss+Enterprise+Application+Platform+6+%28JBoss+EAP+6%29%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+228-458161+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
16/269
Captulo 2. Viso Geral da Segurana
2.1. Segurana Declarativa
O Declarative security o mtodo de separar as questes de segurana de seu cdigo de aplicativo pelo uso docontiner para gerenciar a segurana. O continer usa um sistema de autorizao baseado tanto nas
permisses de arquivo ou usurios, grupos e funes. Essa abordagem normalmente superior seguranaprogrammatic, que fornece ao prprio aplicativo toda a responsabilidade de segurana.
O JBoss EAP 6 fornece uma segurana declarativa atravs dos security domains.
Reportar um erro
2.1.1. Viso Geral do Java EE Declarative Security
O modelo de segurana J2EE declarativo na forma que voc descreve as funes de segurana e permissesnum descritor XML padro ao invs de incorporar segurana em seu componente comercial. Isto isola asegurana do cdigo de nvel comercial uma vez que a segurana tende a ser uma funo onde o componente
implantado de um aspecto hereditrio da lgica comercial do componente. Por exemplo, considere um AutomatedTeller Machine (ATM - Caixa Eletrnico) que usado para acessar uma conta bancria. As solicitaes desegurana, funes e permisses iro variar independente de como voc acessa a conta bancria, baseado emqual banco voc est gerenciando sua conta, onde o caixa eletrnico est localizado, entre outros.
O fornecimento de segurana ao aplicativo J2EE baseado na especificao das solicitaes de segurana doaplicativo pelo uso dos descritores de implantao ejb-jar.xmle web.xml.
Reportar um erro
2.1.2. Referncias de Segurana
Ambos Enterprise Java Beans (EJBs) e servlets podem declarar um ou mais elementos .
Figura 2 .1. Modelo de Referncia das Funes de Segurana
Este elemento declara que o componente est usando o valor do atributo role-nameTypedo elemento como um argumento ao mtodo isCallerInRole(String). Com o uso do mtodo isCallerInRole,
um componente pode verificar se que o chamador est em uma funo que foi declarada com um elemento ou . O valor do elemento deve ser ligado ao elemento atravs do elemento . O uso tpico do isCallerInRole executar uma verificao de
segurana que no pode ser definida usando os elementos de funo baseada no .
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
12
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24326-549222+%5BSpecified%5D&comment=Title%3A+Vis%C3%A3o+Geral+do+Java+EE+Declarative+Security%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24326-549222+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+IDs%3A%0A4766-460002+%5BSpecified%5D&comment=Title%3A+About+Declarative+Security%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
17/269
Exemplo 2.1 . Fragmento do descritor e jb-jar.xml
ASessionBean ...
TheRoleICheck
TheApplicationRole
...
Nota
Este fragmento uma amostra apenas. Nas implantaes, os elementos desta seo devem conter nomesde funo e links implantao EJB.
Exemplo 2 .2. Fragmento do descritor web.xml
AServlet
...
TheServletRole
TheApplicationRole
...
Reportar um erro
2.1.3. Identidade de Segurana
O Enterprise Java Bean (EJB) pode especificar a identidade que outro EJB deve usar quando invoca mtodos emcomponentes usando o elemento .
Captulo 2 . Viso Geral da Segurana
13
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24093-548989+%5BSpecified%5D&comment=Title%3A+Refer%C3%AAncias+de+Seguran%C3%A7a%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24093-548989+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
18/269
Figura 2 .2. Modelo de Dados da Ident idade de Segurana J2EE
A identidade da invocao pode ser o chamador atual ou pode ser uma funo especfica. O assembler doaplicativo usa o elemento com um elemento filho . Isto indica que a
identidade do chamador atual deve ser propagada como a identidade de segurana para invocaes do mtodofeitas pelo EJB. A propagao da identidade de segurana o default usado na ausncia de uma declarao doelemento explcito.
Alternativamente, o assembler do aplicativo pode usar o elemento filho ou para especificarque a funo de segurana especfica fornecida pelo valor do elemento deve ser usada comoidentidade de segurana para as invocaes do mtodo realizadas pelo EJB.
Perceba que isto no altera a identidade do chamador conforme visto pelo mtodoEJBContext.getCallerPrincipal(). Ao invs disto, as funes de segurana do chamador so
configuradas funo nica especificada pelo valor do elemento ou .
Um caso de uso para o elemento prevenir que clientes externos de acessarem os EJBs internos.Voc configura este comportamento pela determinao dos elementos EJB internos, querestringem o acesso funo nunca determinada a um cliente externo. Os EJBs que em troca usam os EJBsinternos so ento configurados a um ou igual funo restringida. O seguinte fragmentodo descritor descreve uma amostra de uso do elemento .
ASessionBean
RunAsBean
A private internal role
InternalRole
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
14
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
19/269
Quando voc usa para determinar uma funo especfica para chamadas de sada, um principalnomeado anonymous determinado a todas as chamadas de sada. Caso voc deseje que outro principal seja
associado com a chamada, voc deve associar um com o bean no arquivo jboss.xml. O
seguinte fragmento associa um principal nomeado internalcom o RunAsBeana partir da amostra anterior.
RunAsBean
internal
O elemento tambm est disponvel em definies servlet no arquivo web.xml. A seguinte amostra
apresenta como determinar a funo InternalRolea um servlet:
AServlet
InternalRole
As chamadas a partir deste servlet so associadas com o principalannimo. O elemento
est disponvel no arquivo jboss-web.xmlpara determinar um principal especfico para ir junto com a funo
run-as. O seguinte fragmento apresenta com associar um principal nomeado internalpara o servlet acima.
AServlet
internal
Reportar um erro
2.1.4. Funes de Segurana
O nome de funo de segurana referenciado tanto pelo elemento security-role-refou security-
identityprecisa mapear uma das funes declaradas do aplicativo. Um assembler do aplicativo define as
funes de segurana lgica pela declarao dos elementos security-role. O valor role-name um nome
de funo do aplicativo lgico como Administrador, Arquiteto, Gerente de Vendas, etc.
A nota importante a ser lembrada sobre as especificaes J2EE que as funes de segurana no descritor deimplantao so usadas para definir a visualizao de segurana de um aplicativo. As funes definidas nosdescritores de implantao no devem ser confundidas com os grupos de usurios, usurios, principais e outrosconceitos que existem no ambiente operacional enterprise de destino. As funes do descritor de implantaoso construes com os nomes de domain especficos do aplicativo. Por exemplo, um aplicativo de banco podeusar nomes de funo tais como Gerente de Banco, Caixa ou Cliente.
No JBoss EAP, um elemento security-role apenas usado para mapear os valores security-role-
ref/role-name funo lgica que a funo do componente referencia. As funes determinadas do usurioso uma funo dinmica do gerenciador de segurana do aplicativo. O JBoss no requer a definio doselementos security-rolecom o objetivo de declarar as permisses do mtodo. No entanto, a especificao
Captulo 2 . Viso Geral da Segurana
15
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24094-548934+%5BSpecified%5D&comment=Title%3A+Identidade+de+Seguran%C3%A7a%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24094-548934+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
20/269
dos elementos security-rolecontinua uma prtica de garantia de portabilidade pelos servidores e para a
manuteno do descritor da implantao.
Exemplo 2.3. Um fragmento do descritor e jb-jar.xml que ilustra o uso do elemento se curity- role.
The single application roleTheApplicationRole
Exemplo 2.4 . Uma amostra do fragmento do descritor ejb-jar.xml que ilustra o uso do elementosecurity-role.
The single
application roleTheApplicationRole
Reportar um erro
2.1.5. Permisses de Mtodo EJB
Um assembler do aplicativo pode determinar as funes que so permitidas para invocar a pgina principal doEJB e os mtodos de interface remota atravs das declaraes do elemento method-permission.
Figura 2 .3. Elemento de Permisses do Mt odo J2EE
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
16
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24095-549164+%5BSpecified%5D&comment=Title%3A+Fun%C3%A7%C3%B5es+de+Seguran%C3%A7a%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24095-549164+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
21/269
Cada elemento method-permissioncontm um ou mais elementos filho role-name que definem as funes
lgicas que so permitidas para acessar os mtodos EJB conforme identificado pelos elementos filho do mtodo.Voc tambm pode especificar o elemento uncheckedao invs do elemento role-namepara declarar que
qualquer usurio autenticado pode acessar os mtodos indentificados pelos elementos filho do mtodo. Almdisso, voc pode declarar que ningum deve acessar um mtodo que possui o elemento exclude-list. Caso
um EJB possu mtodos que no foram declarados por uma funo usando um elemento method-permission,
os mtods EJB possuem o default para serem excludos do uso. Isto equivalente ao default dos mtodos no
exclude-list.
Figura 2 .4 . Elemento do Mtodo J2EE
Existem trs estilos suportados das declaraes do elemento do mtodo.
A primeira usada para referncia a todos os mtodos da interface do componente e da pgina principal do beanenterprise nomeado:
EJBNAME*
O segundo estilo usado para referenciar o mtodo especificado da interface do componente ou pgina principaldo bean enterprise nomeado:
EJBNAMEMETHOD
Caso exista mltiplos mtodos com o mesmo nomes sobrecarregado, este es tilo refere-se a todos os dosmtodos sobrecarregados.
Captulo 2 . Viso Geral da Segurana
17
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
22/269
O terceiro estilo usado para referir-se a um mtodo com um conjunto de mtodo com o nome sobrecarregado:
EJBNAMEMETHOD
PARAMETER_1PARAMETER_N
O mtodo deve ser definido na pgina principal do bean enterprise ou interface remota. Os valores do elementomethod-param so o nome inteiramente qualificado do tipo de parmetro do mtodo correspondente. Caso hajammltiplos mtodos com a mesma assinatura sobrecarregada, a permisso aplicada a todos os mtodossobrecarregados coincidentes.
O elemento method-intfopcional pode ser usado para diferenciar mtodos com o mesmo nome e assinatura
que so definidos em ambas interfaces remota e da pgina principal de um bean enterprise.
O Exemplo 2.5, Um fragmento do descritor ejb-jar.xml que ilustra o uso do elemento method-permission.forneceamostras completas do uso do elemento method-permission.
Exemplo 2.5 . Um fragmento do descritor e jb-jar.xml que ilustra o uso do elemento method-permission.
The employee and temp-
employee roles may access any
method of the EmployeeService bean employeetemp-employeeEmployeeService*The employee role may access the
findByPrimaryKey,
getEmployeeInfo, and the updateEmployeeInfo(String) method of
the AardvarkPayroll bean employee
AardvarkPayrollfindByPrimaryKey
AardvarkPayrollgetEmployeeInfoAardvarkPayroll
updateEmployeeInfojava.lang.String
The admin role may access any method of the
EmployeeServiceAdmin bean admin
EmployeeServiceAdmin*
Any authenticated user may accessany method of the
EmployeeServiceHelp beanEmployeeServiceHelp* No fireTheCTO methods of the EmployeeFiring bean
may be
used in this deploymentEmployeeFiringfireTheCTO
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
18
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
23/269
Reportar um erro
2.1.6. Anotaes de Segurana de Beans Enterprise
Os beans enterprise usam Anotaes para passar informao ao implantador sobre a segurana e outrosaspectos do aplicativo. O implantador pode configurar a poltica de segurana do bean enterprise para oaplicativo caso especificado nas anotaes ou no descritor de implantao.
Quaisquer valores de mtodos explicitamente especificados no descritor da implantao substitui os valores daanotao. Caso o valor do mtodo no for especificado no descritor da implantao, aqueles valoresdeterminados usando anotaes sero usados. A granularidade baseada por mtodo.
Essas anotaes que endeream segurana e podem ser usadas nos beans enterprise incluem o seguinte:
@DeclareRoles
Declara cada funo de segurana declarada no cdigo. Por favor consulteJava EE 5 Tutorial DeclaringSecurity Roles Using Annotationspara maiores informaes sobre as funes de configurao.
Captulo 2 . Viso Geral da Segurana
19
http://docs.sun.com/app/docs/doc/819-3669/bnbyp?l=en&a=viewhttps://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24096-549176+%5BSpecified%5D&comment=Title%3A+Permiss%C3%B5es+de+M%C3%A9todo+EJB%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24096-549176+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
24/269
@RolesAllowed, @PermitAlle @DenyAll
Especifica permisses de mtodo para anotaes. Refira-se aoJava EE 5 TutorialSpecifying MethodPermissions Using Annotationspara maiores informaes sobre a configurao das permisses domtodo de anotao.
@RunAs
Configura a identidade de segurana propagada de um componente. Por favor consulte Java EE 5TutorialConfiguring a Components Propagated Security Identitypara maiores informaes sobre aconfigurao das identidades de segurana propagadas usando anotaes.
Reportar um erro
2.1.7. Restries de Segurana do Contedo da Web
Num aplicativo da web, a segurana definida pelas funes que possuem permisso de acesso ao contedopor um URL default que identifica o contedo protegido. Este conjunto de informaes declarado pelo uso doelemento web.xmlsecurity-constraint.
Figura 2 .5. Rest ries de Se gurana do Contedo da Web
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
20
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24097-549282+%5BSpecified%5D&comment=Title%3A+Anota%C3%A7%C3%B5es+de+Seguran%C3%A7a+de+Beans+Enterprise%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24097-549282+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0http://docs.oracle.com/cd/E19226-01/820-7627/bnbzb/index.htmlhttp://docs.sun.com/app/docs/doc/819-3669/bnbyw?l=en&a=view -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
25/269
O contedo a ser protegido declarado usando um ou mais elementos . Cadaelemento contm sries opcionais de elementos s eguidos por uma srieopcional de elementos . O valor do elemento especifica um URL default referente asolicitao de combinao de URL para que a solicitao corresponda a uma tentativa de acesso ao contedoprotegido. O valor do elemento especifica o tipo de solicitao HTTP a ser permitido.
O elemento opcional especifica as solicitaes para a camada de transporte do cliente conexo do servidor. A solicitao pode ser para a integridade do contedo (prevenindo dados interferindo no
processo de comunicao) ou para confidencialidade (prevenindo a leitura enquanto em trnsito). O valor doelemento especifica o grau pelo qual a comunicao entre o cliente e o servidor devem serprotegida. Os seus valores so NONE, INTEGRALe CONFIDENTIAL. Um valor NONEsignifica que o aplicativo
no requer qualquer garantia de transporte. Um valor INTEGRALsignifica que o aplicativo requer que os dados
sejam enviados entre o cliente e o servidor. O valor CONFIDENTIALsignifica que o aplicativo requer que os
dados sejam transmitidos numa maneira que previne outras entidades de observarem os contedos datransmisso. Na maioria das vezes, a presena do aviso INTEGRALou CONFIDENTIALindica que o uso do SSL
solicitado.
O elemento opcional usado para configurar o mtodo de autenticao que deve ser usado, onome realm que deve ser usado para o aplicativo e os atributos que so necessrios pelo mecanismo de login deformulrio.
Figura 2 .6. Configurao de Login da Web
O elemento filho especifica o mecanismo de autenticao para o aplicativo da web. O usuriodeve autenticar usando o mecanismo configurado, como pr-requisito para ganhar acesso a quaisquer recursosda web que so protegidos por uma restrio de autorizao. Os valores legais so BASIC,
DIGEST , FORM, e CLIENT-CERT. O elemento filho especifica o nome realm a ser usado no HTTP
bsico e autorizao de resumo. O elemento filho especifica o login assim como as pginasde erro que devem ser usadas no login baseado em formulrio. Caso o valor no for FORM, ento
o form-login-confige seus elementos filhos sero ignorados.
A seguinte amostra de configurao indica que qualquer URL no caminho /restricteddo aplicativo da web
requer uma funo AuthorizedUser. No h garantia de transporte requerido e o mtodo de autenticao
usado para obteno da identidade do usurio a autenticao HTTP BSICO.
Captulo 2 . Viso Geral da Segurana
21
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
26/269
Exemplo 2 .6. Fragmento Descritor web.xml
Secure Content
/restricted/*
AuthorizedUser
NONE
BASIC
The Restricted Zone
The role required to access restricted content
AuthorizedUser
Reportar um erro
2.1.8. Habilitao da Autenticao baseada no Formulrio
A autenticao baseada no formulrio fornece flexibilidade na definio de uma pgina JSP/HTML personalizadapara login e uma pgina separada pela qual usurios so direcionados caso um erro ocorrer durante o login.
A autenticao baseada no formulrio definida pela incluso do FORM
no elemento do descritor de implantao, web.xml. As pginas de login e erro esto definidas no
, conforme abaixo:
FORM
/login.html
/error.html
Quando um aplicativo da web com a autenticao baseada no formulrio implantado, o continer da web usa oFormAuthenticatorpara direcionar os usurios pgina apropriada. O JBoss EAP mantm um pool de
sesso do qual a informao de autenticao no precisa estar presente para cada solicitao. Quando oFormAuthenticatorrecebe uma solicitao, isto solicita ao org.apache.catalina.session.Manager
por uma sesso existente. Caso a s esso no existir, uma nova sesso criada. O FormAuthenticator
verifica ento os credenciais da sesso.
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
22
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24098-549602+%5BSpecified%5D&comment=Title%3A+Restri%C3%A7%C3%B5es+de+Seguran%C3%A7a+do+Conte%C3%BAdo+da+Web%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24098-549602+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
27/269
Solicitaes de Autenticao
Cada sesso identificada pela ID de sesso, uma sequncia de 16 bites gerada de valoresdiferenciados. Esses valores so recuperados a partir do /dev/urandom (Linux) por default e aplicados
hash com o MD5. As checagens so executadas na criao da ID da sesso para certificar-se de que a IDcriada nica.
Uma vez verificada, a ID de sesso determinada como parte de uma cookie e, ento retornada ao cliente. Estacookie esperada nas solicitaes de cliente subsequentes e usada para identificar a sesso do usurio.
A cookie passada ao cliente o par de valor do nome com diversos atributos opcionais. O atributo identificador chamado JSESSIONID. O seu valor uma sexagsima sequncia da ID de sesso. Esta cookie configurada
a ser no persistente. Isto significa que no lado do cliente, ela continua a ser excluda quando o navegador existir.No lado do servidor, as sesses expiram aps 60 segundos de inatividade, pelas quais os objetos de sesso e ainformao de credencial das mesmas so excludas.
Vamos dizer que um usurio tenta acessar um aplicativo da web que est protegido com a autenticao baseadano formulrio. O FormAuthenticatorefetua o cache na solicitao, cria uma nova sesso s e necessrio e
redireciona o usurio pgina de login definida no login-config. (Nos cdigos de amostra anteriores, apgina de login login.html.) O usurio ento insere seu nome de usurio e senha no formulrio HTML
fornecido. O nome de usurio e senha so passados ao FormAuthenticatoratravs da ao do formulrio
j_security_check.
O FormAuthenticatorento autentica o nome de usurio e senha em relao ao realm anexado ao contexto
do aplicativo da web. No JBoss Enterprise Application Platform, o realm JBossWebRealm . Quando a
autenticao bem sucedida, o FormAuthenticatorrecupera a solicitao salva do cache e redireciona o
usurio a sua solicitao original.
NotaO servidor reconhece as solicitaes de autenticao do formulrio apenas quando o URI finaliza com/j_security_checke pelo menos os parmetros j_usernamee j_password existirem.
Reportar um erro
2.1.9. Habilitao da Segurana Declarativa
Os elementos de segurana do Java EE que foram cobertos at agora, descrevem as solicitaes de seguranaapenas da perspectiva do aplicativo. O implantador do aplicativo mapeia as funes a partir do domain no
ambiente de implantao, uma vez que os elementos de segurana do Java EE declaram funes lgicas. Asespecificaes do Java EE omitem esse aplicativo dos detalhes especficos do servidor.
Com o objetivo de mapear as funes do aplicativo no ambiente implantado, voc deve especificar um gerenciadorde segurana que implementa o modelo de segurana Java EE usando os descritores de implantao especficosdo JBoss EAP. Refira-se amostra do modelo de login personalizado para maiores detalhes sobre aconfigurao de segurana.
Reportar um erro
Captulo 2 . Viso Geral da Segurana
23
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24100-549607+%5BSpecified%5D&comment=Title%3A+Habilita%C3%A7%C3%A3o+da+Seguran%C3%A7a+Declarativa%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24100-549607+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24099-549604+%5BSpecified%5D&comment=Title%3A+Habilita%C3%A7%C3%A3o+da+Autentica%C3%A7%C3%A3o+baseada+no+Formul%C3%A1rio+%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24099-549604+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
28/269
Captulo 3. Introduo ao JAAS
3.1. JAAS
O framework do JBossSX baseado no JAAS API. Voc deve entender os elementos bsicos do JAAS API antesde voc poder entender os detalhes de implantao do JBossSX. As seguintes sees fornecem uma introduo
ao JAAS para prepar-lo discusso de arquitetura mais adiante neste guia.
O JAAS 1.0 API consiste de um conjunto de pacotes Java designados autenticao e autorizao do usurio. OAPI implementa uma verso do Java do framework dos Pluggable Authentication Modules (PAM - Mdulos deAutenticao Plugveis) e estende a arquitetura de controle de acesso ao java 2 Plataform para suportar aautorizao baseada no usurio.
O JAAS foi lanado primeiramente como um pacote de extenso para o JDK 1.3 e empacotado com o JDK 1.5.Uma vez que o framework JBossSX usa apenas as capacidades do JAAS para implantar o modelo de seguranaJ2EE baseado na funo, esta introduo foca apenas neste tpico.
A autenticao executada de maneira plugvel. Isto permite que os aplicativos Java permaneam independentesdas tecnologias de autenticao subjacente e permite que o gerenciador de segurana JBossSX funcione eminfraestruturas de segurana diferentes. A integrao com a infraestrutura de segurana alcanvel sem aalterao da implantao do gerenciador de segurana do JBossSX. Voc precisa apenas alterar a configuraodos usos JAAS da pilha de autenticao.
Reportar um erro
3.2. Classes JAAS Core
As classes JAAS core podem ser divididas em trs categorias: comum, autenticao e autorizao. A seguintelista apresenta apenas as classes comum e de autenticao uma vez que elas so classes usadas paraimplantar a funcionalidade do JBossSX descritas neste captulo.
Essas s o as classes comuns:
Subject(javax.security.auth.Subject)
Essas so as classes de autenticao:
Configuration(javax.security.auth.login.Configuration)
LoginContext(javax.security.auth.login.LoginContext)
Essas so as interfaces associadas:
Principal(java.security.Principal)
Callback(javax.security.auth.callback.Callback)
CallbackHandler (javax.security.auth.callback.CallbackHandler)
LoginModule(javax.security.auth.spi.LoginModule)
Reportar um erro
3.3. Classes Assunto e Principal
Com o objetivo de autorizar o acesso aos recursos, os aplicativos devem autenticar primeiramente a fonte dasolicitao. O framework JAAS define o assunto do termo para representar uma fonte da solicitao. A classeSubject a classe central no JAAS. O Subjectrepresenta uma informao a uma entidade nica, tal como
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
24
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24101-549623+%5BSpecified%5D&comment=Title%3A+Classes+JAAS+Core%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24101-549623+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24380-550355+%5BSpecified%5D&comment=Title%3A+JAAS%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24380-550355+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
29/269
uma pessoa ou servio. Ele abrange os principais da entidade, os credenciais pblicos e os credenciais privados.O JAAS APIs usa a interface do Java 2 java.security.Principalexistente para representar um principal,
que essencialmente um nome digitado.
Durante o processo de autenticao, um assunto povoado com as identidades associadas ou principais. Oassunto pode possuir diversos principais. Por exemplo, uma pessoa possui o nome principal (John Doe), umnmero de segurana principal (123-45-6789) e um nome de usurio principal (johnd), todos eles ajudam adistinguir o assunto a partir de outros assuntos. Existem dois mtodos disponveis para recuperar os principais
associados com um assunto:
publicSet getPrincipals() {...}
publicSet getPrincipals(Classc) {...}
O getPrincipals()retorna todos os principais contidos no assunto. O getPrincipals(Class c)retorna
apenas aqueles principais que so instncias da classe cou uma de suas subclasses . Um conjunto vazio
retornado caso o assunto no possua principais coincidentes.
Perceba que a interface java.security.acl.Group uma subinterface do java.security.Principal, de
forma que uma instncia no conjunto de principais pode representar um agrupamento lgico de outros principais
ou grupos de principais.Reportar um erro
3.4. Autenticao do Assunto
A Autenticao do Assunto requer um login JAAS. O processo de login consiste dos seguintes critrios:
1. Um aplicativo inicia um LoginContexte passa o nome da configurao do login e um
CallbackHandler para popular os assuntos Callback, conforme requerido pela configurao
LoginModules.
2. O LoginContextconsulta o Configurationpara carregar todos os LoginModulesincludos na
configurao de login nomeada. Caso tal nome no existir, a configurao other usada como default.
3. O aplicativo invoca o mtodo LoginContext.login .
4. O mtodo de login invoca todos os LoginModules carregados. Uma vez que cada LoginModuletenta
autenticar o assunto, ele invoca o mtodo de manuseio no CallbackHandler associado para obter a
informao requerida pelo processo de autenticao. A informao requerida passada ao mtodo demanuseio na forma de um array dos assuntos Callback. No caso de xito, os LoginModules associam
os principais e credenciais relevantes ao assunto.
5. O LoginContextretorna o s tatus de autenticao ao aplicativo. O sucesso representado por umretorno de um mtodo de login. A falha representada atravs de um LoginException sendo lanado pelomtodo de login.
6. Caso a autenticao suceder, o aplicativo recupera o assunto autenticado usando o mtodoLoginContext.getSubject.
7. Aps o escopo da autenticao do assunto ser concludo, todos os principais e informaes relacionadasassociadas ao assunto pelo mtodo loginpodem ser removidas pela invocao do mtodo
LoginContext.logout.
A classe LoginContextfornece os mtodos bsicos para autenticao dos assuntos e oferece uma maneira
de desenvolver um aplicativo que independente da tecnologia de autenticao subjacente. O LoginContextconsulta um Configurationpara determinar os servios de autenticao configurados a um aplicativo em
particular. As classes LoginModulerepresentam os servios de autenticao. Portanto, voc pode plugar
Captulo 3. Introduo ao JAAS
25
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24102-549625+%5BSpecified%5D&comment=Title%3A+Classes+Assunto+e+Principal%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24102-549625+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
30/269
diferentes mdulos de login num aplicativo sem a alterao do prprio aplicativo. Os seguintes cdigosapresentam as etapas requeridas por um aplicativo para autenticar um assunto.
CallbackHandler handler = newMyHandler();
LoginContext lc = newLoginContext("some-config", handler);
try{
lc.login();
Subject subject = lc.getSubject();} catch(LoginException e) {
System.out.println("authentication failed");
e.printStackTrace();
}
// Perform work as authenticated Subject
// ...
// Scope of work complete, logout to remove authentication info
try{
lc.logout();
} catch(LoginException e) {
System.out.println("logout failed");
e.printStackTrace();
}
// A sample MyHandler class
classMyHandler
implementsCallbackHandler
{
publicvoidhandle(Callback[] callbacks) throws
IOException, UnsupportedCallbackException
{
for(inti = 0; i < callbacks.length; i++) {
if(callbacks[i] instanceofNameCallback) {
NameCallback nc = (NameCallback)callbacks[i];
nc.setName(username); } elseif(callbacks[i] instanceofPasswordCallback) {
PasswordCallback pc = (PasswordCallback)callbacks[i];
pc.setPassword(password);
} else{
thrownewUnsupportedCallbackException(callbacks[i],
"Unrecognized Callback");
}
}
}
}
Os desenvolvedores integram uma tecnologia de autenticao pela criao de uma implementao da interfaceLoginModule. Isto permite o administrador a plugar diferentes tecnologias de autenticao num aplicativo. Voc
pode encadear diversos LoginModules para permitir que mais de uma tecnologia de autenticao participe no
processo de autenticao. Por exemplo, um LoginModulepode executar uma autenticao baseada no
nome/senha do usurio, enquanto que outro pode realizar a interface aos dispositivos de hardware tais comoleituras de cartes smart ou autenticadores biomtricos.
O ciclo de vida de um LoginModule dirigido pelo objeto LoginContextem relao ao cliente que cria e emite
o mtodo de login. O processo consiste de duas fases. As etapas do processo so:
O LoginContextcria cada configurao LoginModuleusando seu construtor sem argumento pblico.
Cada LoginModule inicializado com uma chamada ao seu mtodo inicializar. O Subjectargumento garantido como no nulo. A assinatura do mtodo inicializar : public void initialize(Subject
subject, CallbackHandler callbackHandler, Map sharedState, Map options)
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
26
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
31/269
O mtodo login chamado para iniciar o processo de autenticao. Por exemplo, a implementao do
mtodo pode perguntar ao usurio pelo nome e senha do usurio e ento verificar a informao em relaoaos dados stored num servio de nomeao tal como o NIS ou LDAP. As implementaes alternativas podemrealizar a interface para cartes smart e dispositivo biomtricos, ou simplesmente extrair a informao dousurio a partir de um sistema de operao subjacente. A validao da identidade do usurio por cadaLoginModule considerada fase 1 da autenticao JAAS. A assinatura do mtodo login boolean
login() throws LoginException. Um LoginExceptionindica falha. Um valor de retorno verdadeiro
indica que o mtodo foi bem sucedido, onde um valor de retorno de falso indica que o mdulo de login deveser ignorado.
Caso a autenticao no geral LoginContextsuceder, o commit invocado em cada LoginModule. Caso
a fase 1 suceder para o LoginModule, o mtodo de confirmao continua com a fase 2 e associa os
principais relevantes, credenciais pblicos e/ou credenciais privados com o assunto. Caso a fase 1 falhar paraum LoginModule, ento o commitremove qualquer estado de autenticao stored anteriormente, tais como
nomes e senhas de usurios. A ass inatura do mtodo commit: boolean commit() throws
LoginException. A falha em concluir a fase de confirmao indicada pelo lanamento do
LoginException. Um retorno verdadeiro indica que o mtodo sucedeu, onde um retorno falso indica que o
mdulo de login deve ser ignorado.
Caso a autenticao no geral LoginContext, ento o mtodo abort invocado em cada LoginModule. Omtodo abortremove ou destroi qualquer estado de autenticao criado pelos mtodos inicializar ou login. A
assinatura do mtodo abort boolean abort() throws LoginException. A falha em completar a
fase abort indicada pelo lanamento de um LoginException. Um retorno verdadeiro indica que o mtodo
sucedeu, onde um retorno falso indica que o mdulo de login deve ser ignorado.
Com o objetivo de remover o estado de autenticao aps xito de login, o aplicativo invoca logoutno
LoginContext. Isto em troca resulta numa invocao do mtodo logoutem cada LoginModule. O mtodo
logoutremove os principais e credenciais originalmente associados com o assunto durante a operao
commit. Os credenciais devem ser destrudos sob remoo. A assinatura do mtodo logout: boolean
logout() throws LoginException . A falha em concluir o processo de sada indicado pelo lanamento
um LoginException. Um retorno verdadeiro indica que o mtodo sucedeu, onde um retorno de falso indicaque o mdulo de login deve ser ignorado.
Quando um LoginModuleprecisa comunicar-se com o usurio para obter a informao de autenticao, ele usa
um objeto CallbackHandler . Os aplicativos implementam a interface CallbackHandler e passam isto ao
LoginContext, que envia a informao de autenticao diretamente aos mdulos de login subjacente.
Os mdulos de login usam o CallbackHandler para tanto obter a entrada de usurios, tais como uma senha
ou PIN do carto smart e para suprir informao aos usurios, tais como informao de status. Permitir que oaplicativo especifique o CallbackHandler , os LoginModules subjacentes continuam independentes de
maneiras diferentes dos aplicativos interagirem com os usurios. Por exemplo: uma implementao
CallbackHandler para um aplicativo GUI pode exibir uma janela para solicitar a entrada do usurio. Por outrolado, uma implementao CallbackHandler para um ambiente no GUI, tal como um servidor do aplicativo,
pode simplesmente obter a informao do credencial pelo uso de um API do servidor do aplicativo. A interfaceCallbackHandler possui um mtodo de implementao:
voidhandle(Callback[] callbacks)
throwsjava.io.IOException,
UnsupportedCallbackException;
A interface Callback a ltima classe de autenticao que vamos ver. Ela uma interface tagging da qual
diversas implementaes default so fornecidas, incluindo o NameCallbacke PasswordCallbackusados
num exemplo anterior. O LoginModuleusa um Callbackpara solicitar informao requerida pelo mecanismo
de autenticao. O LoginModules passa um array de Callbacks diretamente ao mtodo
Captulo 3. Introduo ao JAAS
27
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
32/269
CallbackHandler.handle durante a fase de login de autenticao. Caso um callbackhandler no
entender como usar o objeto Callbackpassado ao mtodo de manuseio, ele lana um
UnsupportedCallbackExceptionpara anular a chamada de login.
Reportar um erro
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
28
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+24103-549630+%5BSpecified%5D&comment=Title%3A+Autentica%C3%A7%C3%A3o+do+Assunto%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+24103-549630+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
33/269
Parte II. Segurana da Plataforma
Parte II. Seguran a d a Plataforma
29
-
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
34/269
Captulo 4. O Subsistema de Segurana
4.1. Subsistema de Segurana
O subs istema de segurana fornece a infraestrutura a todas funcionalidades de s egurana no JBoss EAP 6. Amaioria dos elementos de configurao raramente precisam ser alterados. O nico elemento de configurao que
pode ser alterado se utilizarmos o deep-copy-subject-mode . Alm disso, voc pode configurar as propriedadesde segurana sobre o sistema. A maioria da configurao relacionada ao security domains.
Modo de Cpia Profunda
Caso o modo assunto de cpia profunda for desabilitado (por default), a cpia de uma estrutura de segurana fazuma referncia original, ao invs de copiar toda a estrutura de dados. Este comportamento mais eficiente,porm sujeito corrupo de dados caso mltiplos threads com a mesma identidade limparem o assunto porum esvaziamento ou uma operao de sada.
O modo assunto de cpia profunda leva a uma cpia completa da estrutura de dados e todos os seus dadosassociados a serem efetuados, contanto que eles sejam marcados como clonados. Isto mais um thread-safe,porm mais eficiente.
Propriedades de Segurana do Sistema
Voc pode determinar as propriedades de segurana do sistema, que aplicado classejava.security.Security.
Security Domain
O security domain um conjunto de configuraes de segurana declarativaJava Authentication andAuthorization Service (JAAS)que um ou mais aplicativos usam para controlar a autenticao, autorizao,auditoria e mapeamento. Os security domains esto includos por default: jboss-ejb-policy, jboss-web-
policye other. Voc pode criar quantos security domains voc venha precisar para acomodar as
necessidades de seus aplicativos.
Reportar um erro
4.2. Estrutura do Subsistema de Segurana
O subsistema de segurana configurado no managed domain ou arquivo de configurao autnomo. A maioriados elementos de configurao podem ser configurados usando o console de gerenciamento baseado na web ouCLI de gerenciamento baseado no console. Segue abaixo uma representao XML de uma amostra dosubsistema de segurana.
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
30
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+4702-490493+%5BSpecified%5D&comment=Title%3A+Subsistema+de+Seguran%C3%A7a%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+4702-490493+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
35/269
Exemplo 4 .1. Amostra do Subsistema de Se gurana
...
...
Os elementos , e no esto
presentes na configurao default. Os elementos e foram
substitudos a partir do JBoss EAP 6.
Reportar um erro
4.3. Configurao do Subsistema de Segurana
4.3.1. Configurao do Subsistema de Segurana
Voc pode configurar o subsistema de segurana usando o CLI de Gerenciamento ou Console de Gerenciamentobaseado na web.
Cada elemento de nvel superior com o subsistema de segurana contm informao sobre um aspecto diferentede configurao de segurana. Refira-se Seo 4.2, Estrutura do Subsistema de Seguranapara uma
amostra da configurao do subsistema de segurana.
Captulo 4. O Subsi stema de Seguran a
31
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+7200-458752+%5BSpecified%5D&comment=Title%3A+Estrutura+do+Subsistema+de+Seguran%C3%A7a%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+7200-458752+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
36/269
Esta seo descreve os comportamentos de alto nvel do subsistema de segurana. Cada configurao opcional. No comum alterar qualquer uma dessas configuraes, a no ser para o modo assunto decpia profunda.
Opes Descrio
deep-copy-subject-mode Especifica se que copiar ou conectar os tokensde segurana para uma segurana adicional do
thread.authentication-manager-class-name Especifica uma classe de implementao do
AuthenticationManager a ser usada.
authorization-manager-class-name Especifica o nome da classe da implementaoAuthorizationManager alternativa.
audit-manager-class-name Especifica o nome da classe da implementaoAuditManager alternativa.
identity-trus t-manager-class-name Especifica o nome da classe da implementaoIdentityTrustManager a ser usado.
mapping-manager-class-name Especifica o nome da classe da implementaoMappingManager para uso.
A criao do assunto controla a criao das instncias do assunto. Isto pode usar o gerenciador daautenticao para verificar o chamador. O uso principal da fbrica do assunto para os componentesJCA estabelecerem um assunto. No necessrio modificar a fbrica do assunto.
O elemento do continer que mantm os security domains mltiplos. O security domain pode conterinformao sobre o mdulo autenticao, autorizao e auditoria assim como a autenticao JASPI e aconfigurao JSSE. O seu aplicativo especificaria um security domain para gerenciar sua informao desegurana.
Contm os nomes e valores das propriedades que so configuradas na classe java.security.Security.
Reportar um erro
4.3.2. Gerenciamento de Segurana
4 .3.2.1. Modo Assunto de Cpia Profunda
Caso o modo de sujeito de cpia profundafor desabilitado (por default), a cpia de uma estrutura de dados desegurana faz uma referncia original, ao invs de copiar toda a estrutura de dados. Este comportamento mais eficiente, porm sujeito corrupo de dados caso mltiplos threads com a mesma identidade limpem osujeito por um esvaziamento ou uma operao de sada.
O modo de sujeito de cpia profunda leva a uma cpia completa da estrutura de dados e todos os s eus dadosassociados a serem efetuados, contanto que eles sejam marcados como clonados. Isto mais um thread-safe,porm mais eficiente.
O modo assunto de cpia profunda configurado como parte do subsistema de s egurana.
Reportar um erro
4 .3.2.2. Habilitao do Modo Assunto de Cpia Profunda
Voc pode habilitar o modo de segurana de cpia profunda a partir do console de gerenciamento baseado naweb ou CLI de gerenciamento.
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
32
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+6851-328492+%5BSpecified%5D&comment=Title%3A+Modo+Assunto+de+C%C3%B3pia+Profunda%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+6851-328492+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+8424-466657+%5BSpecified%5D&comment=Title%3A+Configura%C3%A7%C3%A3o+do+Subsistema+de+Seguran%C3%A7a%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+8424-466657+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
37/269
Procedimento 4 .1. Habilitao do Modo de Segurana do Modo de Segurana de Cpia profunda apartir do Console de Gerenciamento
1. Efetue o log ao Console de Gerenciamento.
O console de gerenciamento normalmente est disponvel no URL tal como o http://127.0.0.1:9990/. Ajusteeste valor para suprir suas necessidades.
2. Managed Domain: Selecione o perfil apropriado.
Num managed domain, o subsistema de segurana configurado por perfil e voc pode habilitar oudesabilitar o modo de segurana de cpia profunda em cada, independentemente.
Com o objetivo de selecionar um perfil, clique no rtulo Profilesno canto direito superior da exibio do
console, e selecione o perfil que voc deseja selecionar a partir da caixa de seleo Profileno canto
esquerdo superior.
3. Abra o menu de configurao Security Subsystem .
Expanda o item do menu Securityna parte direita do console de gerenciamento e clique no link
Security Subsystem .
4. Modifique o valor deep-copy-subject-mode .
Clique no boto Edit. Verifique a caixa ao lado Deep Copy Subjects:para habilitar o modo assunto de
cpia profunda.
Habilite o Modo Assunto de Cpia Profunda usando o CLI de G ere nciamento
Caso voc prefira usar o CLI de Gerenciamento para habilitar esta opo, use um dos seguintes comandos.
Exemplo 4 .2. Managed Domain
/profile=full/subsystem=security:write-attribute(name=deep-copy-subject-mode,value=TRUE)
Exemplo 4.3. Servidor Autnomo
/subsystem=security:write-attribute(name=deep-copy-subject-mode,value=TRUE)
Reportar um erro
4.3.3. Security Domains
4 .3.3.1. Security Domains
Os s ecurity domains fazem parte do subsistema de segurana do JBoss EAP 6. Toda a configurao desegurana agora gerenciada centralmente, pelo domain controller de um managed domain ou pelo servidorautnomo.
O security domain consiste de configuraes para autenticao, autorizao, mapeamento de segurana eauditoria. Ele implementa a segurana declarativaJava Authentication and Authorization Service (JAAS).
A autenticao refere-se verificao de identidade de um usurio. Na terminologia de segurana, este usurio
referido comoprincipal. Embora a autenticao e autorizao sejam diferentes, muitos dos mdulos deautenticao includos tambm manuseiam a autorizao.
Captulo 4. O Subsi stema de Seguran a
33
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+6852-436012+%5BSpecified%5D&comment=Title%3A+Habilita%C3%A7%C3%A3o+do+Modo+Assunto+de+C%C3%B3pia+Profunda%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+6852-436012+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0http://127.0.0.1:9990/ -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
38/269
Um authorization uma poltica de segurana pela qual o servidor determina se que o usurio autenticadopossui permisso aos privilgios especficos de acesso ou recursos no sis tema ou operao. Na terminologia desegurana, isto normalmente referido como uma funo.
O Security mappingrefere-se habilidade de adicionar, modificar ou excluir a informao a partir do principal,funo ou atributo antes de passar a informao ao seu aplicativo.
O gerenciador de auditoria permite voc configurar oprovider modulespara controlar a maneira que os eventos
de segurana so relatados.
Caso voc use security domains, voc pode remover toda a configurao de segurana especfica. Isto permitevoc alterar os parmetros de segurana centralmente. Um cenrio comum que beneficia-se deste tipo deestrutura de configurao o processo de movimento dos aplicativos entre os ambientes de teste e produo.
Reportar um erro
4 .3.3.2. Picketbox
O Picketbox um framework de segurana de fundao que fornece capacidades de autenticao, autorizao,auditoria e mapeamento para os aplicativos Java sendo executados no JBoss EAP 6. Isto fornece as seguintescapacidades num framework nico com uma configurao nica.
Seo 5.9.1, Autenticao
Seo 5.11.1, Autorizaoe controle de acesso
Seo 5.13.1, Auditoria de Qualidade
Seo 5.14.1, Mapeamento de Seguranade principais, funes e atributos
Reportar um erro
Plataforma do Aplicativo JBoss Enterprise 6.2 Guia de Segurana
34
https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+4722-458756+%5BSpecified%5D&comment=Title%3A+Picketbox%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+4722-458756+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0https://bugzilla.redhat.com/enter_bug.cgi?cf_environment=Build+Name%3A+14876%2C+Security+Guide-6.2-1%0ABuild+Date%3A+02-07-2014+11%3A02%3A40%0ATopic+ID%3A+4721-481770+%5BSpecified%5D&comment=Title%3A+Security+Domains%0A%0ADescribe+the+issue%3A%0A%0A%0ASuggestions+for+improvement%3A%0A%0A%0AAdditional+information%3A&cf_build_id=Translation+4721-481770+pt-BR+%5BSpecified%5D&product=JBoss+Enterprise+Application+Platform+6&component=doc-Security_Guide&version=6.2.0 -
7/13/2019 JBoss Enterprise Application Platform 6.2 Security Guide Pt BR
39/269
Captulo 5. Gerenciamento de Identidade PicketLink
5.1. Security Token Service (STS - Servio Token de Segurana)
O Security Token Service (Servio Token de Segurana) gera e gerencia os tokens de segurana. Ele no emitetokens de um tipo especfico. Ao invs disso, ele define interfaces que permitem provedores de token mltiplos a
serem plugados. Como resultado, ele pode ser configurado para lidar com vrios tipos de token, contanto que oprovedor do token exista para cada tipo de token. Ele tambm especifica o formato da solicitao do token desegurana e responde mensagens.
A mensagem da solicitao do token de segurana especifica o seguinte:
Tipo de solicitao, tal como o Problema, Reviso e mais.
O tipo de token.
O tempo de vida do token emitido.
A informao sobre o provedor de servio que solicitou o token.
A informao usada para criptografar o token gerado.
A mensagem de solicitao do token enviada no corpo da mensagem SOAP. Toda a informao relacionada solicitao do token est contida no elemento RequestSecurityToken. A solicitao da amostra contm dois
outros elementos WS-Trust: RequestType, dos quais especificam que esta solicitao uma solicitao de
Problema e o To