Neste post vamos mostrar como fazer a configuração no WSO2 (Systinet) para implementar um nível de segurança a um determinado Web Service provido pelo Magic xpi, utilizando autenticação HttpBasic.
(estas configurações também serão aplicáveis quando se utilizar o WSO2 (Systinet) com o Magic xpa)
1. Configurando
Iniciar o WSO2
Iniciamos o WSO2 através dos Serviços do Windows:
ou através do ícone, manualmente:
Acessamos a página da Console do WSO2 (usuário: admin / senha: changeit):
Observe que existe um Web Service (TESTE) que já foi publicado pelo Magic xpi através do menu Services > Web Services > Teste > Management > Generate:
Clicamos no Web Service Teste:
Clicamos em ‘Set Endpoint Security’:
Clicamos em ‘Custom Security Providers’:
Clicamos em ‘Authorization Required’ e ‘Http Basic’:
Clicamos em ‘Save Changes’:
Após estas configurações, o Web Service TESTE está pronto para receber chamadas autenticadas via HTTP Basic.
Criando usuários para autenticação
Clicamos em ‘Security’ > ‘Database of Identities’:
Clicamos em ‘Add User’:
Definimos o nome do usuário. Clicamos em ‘Add User’.
Depois, clicamos no ícone da Propriedade desse novo usuário e inserimos uma nova Propriedade clicando em ‘Add Property’:
Após definir a senha, clicamos em ‘Set Property Value’:
Definindo o Usuário ao Método do Web Service
Acessamos novamente o Web Service clicando em seu nome:
Clicamos em ‘Set Endpoint Method ACL’:
Na linha do Método (no exemplo, ADD) clicamos em ‘Set ACL’:
Na linha do usuário recém-criado, clicamos em ‘Grant’ mudando o status de ‘Revoked’ para ‘Granted’:
Dessa forma o usuário muda de status ‘Revoked’ para ‘Granted’.
Com isso, os consumidores deste serviço tem o direito de chamar esse método somente se for autenticado com o usuário e senha.
2. Testando
Para testar o acesso vamos utilizar o Magic xpi e colocá-lo em modo Debug:
Agora vamos utilizar o SOAP UI para carregar o WSDL e fazer a chamada do Serviço.
Primeiro acessamos o endereço do WSDL:
Copiamos o Endereço (ex: http://192.0.0.15/TESTE/wsdl) para levá-lo ao SOAP UI.
Abrimos o SOAP UI e criamos um novo projeto informando o endereço do WSDL:
Depois de carregado, clicamos no método ADD e clicar em Request1.
Preenchemos os valores para teste. Nesse caso usamos ‘ABC’ e ‘XYZ’:
* Ainda não informamos o usuário e senha.
Se tentarmos realizar a chamada, ocorre um erro:
Agora, configuramos o usuário e senha nas propriedades da chamada (o cliente que está consumindo o serviço):
Ao realizar a chamada novamente, o resultado esperado é retornado como esperado pois a autenticação foi feita: