![[z/OS]](../images/ngzos.gif)
Configuração de Filtros de Identidade Distribuída em Segurança z/OS
Antes de poder mapear as identidades distribuídas para usuários do System Authorization Facility (SAF), primeiro é você deve configurar filtros de identidade distribuída no produto de segurança z/OS para WebSphere Application Server.
O filtro de identidade distribuída na Classe SAF RACMAP consiste em nome do usuário distribuído e nome da região do nome de usuário distribuído. É possível configurar os filtros para mapear muitas identidades distribuídas para um usuário SAF, ou pode ter um mapeamento de um-para-um.
RACMAP ID(<SAFUser>) MAP USERDIDFILTER(NAME('<distributedUserId>'))
REGISTRY(NAME('<distributedRealmName>')) WITHLABEL('<someLabel>')
O elemento <SAFUser> é o usuário SAF no produto de segurança z/OS, <distributedUserId> é a identidade distribuída, <distributedRealmName> é o nome da região da identidade distribuída e <someLabel> é um campo de texto que descreve esse filtro de identidade distribuída.
SETROPTS CLASSACT(IDIDMAP) RACLIST(IDIDMAP)
SETROPTS RACLIST(IDIDMAP) REFRESH
Mapeando usuários distribuídos para usuários SAF:
Se você tiver configurado um registro OS não-local, pode mapear um usuário distribuído, como um usuário do protocolo LDAP (Lightweight Directory Access Protocol), para um usuário SAF. O nome do usuário distribuído que o WebSphere Application Server utiliza quando mapear para um usuário SAF é o valor retornado pelo WSCredential.getUniqueSecurityName() API. Esse método retorna um nome de usuário exclusivo conforme aplicado no registro do usuário configurado. Para LDAP, esse seria o nome distinto integral (DN). Para uma configuração customizada, é parecido com getUniqueUserId() API nos retornos do registro customizado. Para repositórios associados, é a propriedade uniqueName no gerenciador de membro virtual.
O nome da região distribuído usado pelo WebSphere Application Server é determinado por WSCredential.getRealmName() API. O nome da região que é retornado depende do registro do usuário que está sendo configurado. Para LDAP, o nome da região é ldapHostName:ldapPortNumber. Para registro do usuário customizado, é algo parecido com o que você configurou para o método getRealm() para retornar em sua implementação. Para repositórios associados, o nome da região é a região que você especificou no campo nome da região do painel de repositórios associados.
RACMAP ID(USER1) MAP USERDIDFILTER(NAME('CN=LDAPUser1,o=ibm,c=us'))
REGISTRY(NAME('ccwin12.austin.ibm.com:389'))
WITHLABEL('Mapping LDAP LDAPUser1 to USER1')
RACMAP ID(USER3) MAP USERDIDFILTER(NAME('CustomUser3'))
REGISTRY(NAME('customRealm')) WITHLABEL('Mapping custom CustomUser3 to USER3')
RACMAP ID(USER5) MAP USERDIDFILTER(NAME('uid=wimUser5,o=defaultWIMFileBasedRealm
')) REGISTRY(NAME('defaultWIMFileBasedRealm')) WITHLABEL('Mapping custom wimUser5 to USER5')
Mapeando Kerberos principais para usuários SAF:
Se você tiver um registro local OS configurado nos sistemas operacionais z/OS com mecanismo de autenticação do Kerberos, você pode desejar mapear um usuário Kerberos para um usuário SAF. Neste caso, a identidade distribuída é o nome do Kerberos principal. O nome da região distribuído é o nome da região do Kerberos do KDC.
kerberosUser@KRB390.IBM.COM
para o usuário SAF WSADMIN:
RACMAP ID(WSADMIN) MAP USERDIDFILTER(NAME('kerberosUser'))
REGISTRY(NAME('KRB390.IBM.COM')) WITHLABEL('Mapping Kerberos kerberosUser to WSADMIN')
Mapeando diversas identidades distribuídas para um usuário SAF:
RACMAP ID(ACCT) MAP USERDIDFILTER(NAME('*'))
REGISTRY(NAME('accountingUnit.acme.ibm.com:389'))
WITHLABEL('Mapping accounting users to ACCT')
RACMAP ID(ACCT2) MAP USERDIDFILTER(NAME('O=ibm,C=us'))
REGISTRY(NAME('accountingUnit.acme.ibm.com:389'))
WITHLABEL('Mapping US accounting users to ACCT2')
Mapeando certificados e nomes distintos para usuários SAF
RACMAP ID(ACCT3) MAP USERDIDFILTER(NAME('O=ibm,C=us'))
REGISTRY(NAME('localOSRealm'))
WITHLABEL('Mapping certificate or distinguished names to ACCT3')
Criando um filtro de identidade distribuída padrão:
É possível desejar definir um filtro padrão que mapeia alguma identidade distribuída que não é localizada em qualquer dos outros filtros para um usuário SAF com o atributo RESTRICTED.
RACMAP ID(WSGUEST) MAP USERDIDFILTER(NAME('*'))
REGISTRY(NAME('*')) WITHLABEL('The default filter')
Ativando mudanças de filtro RACMAP para um usuário autenticado:
Quando um usuário autentica-se com um registro, o usuário também é incluído no cache de autenticação. As alterações nos filtros RACMAP no produto de segurança z/OS não são efetivadas até que esse usuário seja removido da cache de autenticação.
Se desejar que essas alterações sejam efetivadas imediatamente, chame o SecurityAdmin Mbean no servidor que deseja atualizar. É possível chamar a operação purgeUserFromAuthCache para remover um usuário específico, ou a operação clearAuthCache para remover todos os usuários da cache de autenticação. A cache de autenticação também é limpa depois que o servidor é reiniciado.
Consulte a Tabela de definição de SecurityAdmin MBean para obter detalhes sobre Mbean e suas operações.
No exemplo, uma identidade distribuída, LDAPUser1, não é mapeada para um usuário SAF, e tenta efetuar login para um servlet protegido por uma função. Como o ID do usuário e senha são válidos, o usuário é autenticado e incluído na cache de autenticação. Entretanto, como LDAPUser1 não está mapeado para um usuário SAF, um ID não autorizado padrão WSGUEST, é usado para autorização.
LDAPUser1 é incapaz de acessar o servlet pois WSGUEST não está autorizado para a função servlet. O administrador de segurança do z/OS, então, define um filtro RACMAP para mapear LDAPUser1 para o usuário SAF, USER1. LDAPUser1 ainda não pode acessar o servlet até que esse ID seja removido da cache de autenticação.
Para obter mais informações sobre o comando RACMAP, consulte a Referência de Linguagem de Comando RACF do Servidor de Segurança z/OS.