JBoss Enterprise Application Platform 6.2 Security Guide Pt BR

download JBoss Enterprise Application Platform 6.2 Security Guide Pt BR

of 269

description

JBoss Enterprise Application Platform 6.2 Security Guide Pt BR

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]

    Tom [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