Serviços de autenticação
As classes são fornecidas pelo IBM® Toolbox for Java™ que interage com os serviços de segurança fornecidos pelo IBM i
Especificamente, o suporte é fornecido para autenticar uma identidade de usuário, às vezes referida como um principal, e senha contra o registro de usuário IBM i . Uma credencial que representa o usuário autenticado pode então ser estabelecida. Você pode usar a credencial para alterar a identidade da thread atual do IBM i para realizar trabalhos sob as autoridades e permissões do usuário autenticado. Com efeito, essa troca de identidade resulta no encadeamento agindo como se uma sinalização fosse realizada pelo usuário autenticado.
Visão geral do suporte fornecido
O objeto AS400 fornece autenticação para um determinado perfil de usuário e senha contra o servidor. Você também pode recuperar os bilhetes Kerberos e tokens de perfil que representam perfis de usuários autenticados e senhas para o sistema.
.Para usar os ingressos Kerberos , configure apenas o nome do sistema (e não a senha) no objeto AS400 . A identidade do usuário é recuperada através do framework JGSS. Você pode configurar apenas um meio de autenticação em um objeto AS400 de cada vez. A configuração da senha limpa qualquer bilhete de Kerberos ou token de perfil.
Para usar tokens de perfil, use os métodos getProfileToken() para recuperar instâncias da classe ProfileTokenCredential. Pense em tokens de perfil como uma representação de um perfil de usuário autenticado e senha para um servidor específico. Os tokens de perfil expiram com base no tempo, até uma hora, mas podem ser atualizados em determinados casos para proporcionar uma duração de vida estendida.
O exemplo a seguir cria um objeto do sistema e usa esse objeto para gerar um token de perfil. O exemplo então usa o token do perfil para criar outro objeto do sistema, e usa o segundo objeto do sistema para se conectar ao serviço de comandos:
AS400 system = new AS400("mySystemName", "MYUSERID", "MYPASSWORD");
ProfileTokenCredential myPT = system.getProfileToken();
AS400 system2 = new AS400("mySystemName", myPT);
system2.connectService(AS400.COMMAND); Configurando identidades de encadeamento
Você pode estabelecer uma credencial em um contexto remoto ou local. Uma vez criado, você pode serializar ou distribuir a credencial conforme requerido pelo aplicativo de chamada. Quando passada para um processo em execução no servidor associado, uma credencial pode ser usada para modificar ou trocar a identidade de thread IBM i e realizar trabalhos em nome do usuário autenticado anteriormente.
Uma aplicação prática desse suporte pode estar em um aplicativo de duas camadas, com autenticação de um perfil de usuário e senha sendo desempenhadas por uma interface gráfica do usuário na primeira camada (ou seja, um PC) e trabalho sendo executado para esse usuário na segunda camada (o servidor). Ao utilizar ProfileTokenCredentials, o aplicativo pode evitar a transmissão direta de IDs de usuário e senhas pela rede. O token de perfil pode então ser distribuído para o programa na segunda camada, que pode executar o swap () e operar sob as autoridades e permissões do IBM i designadas ao usuário.
Métodos para definir tokens em ProfileTokenCredential
Os métodos de definição de tokens na classe ProfileTokenCredential exigem que você diferencie as diferentes formas de especificar senhas:
- Como um valor especial, como *NOPWD ou *NOPWDCHK, por utilizar um inteiro valor especial definido
- Como a senha para o perfil do usuário, utilizando uma String que representa a senha
Além disso, os métodos setToken permitem que usuários remotos especifiquem valores especiais de senha e permitam senhas mais longas do perfil do usuário de até 128 caracteres.
Para especificar um inteiro de valor especial de senha, como *NOPWD ou *NOPWDCHK, use um dos seguintes métodos:
- setToken(AS400Principal principal, int passwordSpecialValue )
- setToken(String name, int passwordSpecialValue )
A classe ProfileTokenCredential inclui as seguintes constantes estáticas para inteiros de valor especial de senha:
- ProfileTokenCredential.PW_NOPWD: indica *NOPWD
- ProfileTokenCredential.PW_NOPWDCHK: indica *NOPWDCHK
Para especificar uma senha de perfil do usuário como uma String, use um dos seguintes métodos:
- setTokenExtended(AS400Principal principal, String password)
- setTokenExtended(String name, String password)
Os métodos setTokenExended não permitem que você passe cadeias de valores especiais de senha como parâmetro de senha. Por exemplo, esses métodos não permitem uma sequência de senhas de *NOPWD.
Para obter mais informações, consulte as informações de referência do ProfileTokenCredential Javadoc.
Exemplo
Consulte este código para um exemplo de como usar uma credencial de token de perfil para trocar a identidade de thread do IBM i e realizar trabalhos em nome de um usuário específico.