Como utilizo o ID do Cliente/Segredo do Cliente para autenticar solicitações SOAP?
Ambiente
Oracle Field Service (OFS)
Resolução
Autenticação com ID do Cliente/Segredo do Cliente pode ser usado na API SOAP como analogia de nome de usuário/senha.
Todos os clientes podem usar o ID do Cliente/Segredo do Cliente em vez de login e senha para preencher a estrutura de autenticação do usuário com credenciais:
1. Registrar uma aplicação.
1.1. Na interface do Oracle Field Service, clique em Configuração e selecione Aplicativos.
1.2. Clique em Novo Aplicativo, especifique o Tipo de Aplicativo, Nome do Aplicativo e os dados necessários. Clique Enviar.
1.3. Selecione o novo aplicativo e na sessão Configurações de autenticação, selecione a caixa Autenticar usando ID do Cliente/Segredo do Cliente.
1.4. Anote o ID do Cliente e o Segredo do Cliente.
1.5. Clique Salvar.
2. Configure as APIs que devem estar disponíveis para o aplicativo criado
2.1. Na sessão Acesso à API access, clique no sinal de adição (+).
2.2. Selecione as APIs a serem concedidas a este aplicativo.
2.3. Clique Enviar.
Observe que algumas APIs exigem uma configuração do layout com os campos/propriedades que devem estar disponíveis.
Exemplo:
Para este exemplo estaremos utilizando sunrise_cable como a instância/nome da companhia. Vamos supor que o ID do Cliente seja 'test_app' e o ID do Cliente que foi gerado é '5634834a68becc7dce7faa4c26546058db5a68becc7dce7f'.
Referindo-se à documentação (Outbound Interface Entities and Structures) onde o nó <user> é especificado, devemos ter o seguinte resultado:
CURRENT_TIME = 2019-07-17T16:25:50-04:00
CLIENT_ID = test_app
CLIENT_SECRET = 5634834a68becc7dce7faa4c26546058db5a68becc7dce7f
INSTANCE_NAME = sunrise_cable
SHA256(CURRENT_TIME + SHA256(CLIENT_SECRET + SHA256(CLIENT_ID))) = 3e0faf3300d082506d92c340869c0694a2be120916970b1cdb6b96969a8167fb
<user>
<now>2019-07-17T16:25:50-04:00</now>
<login>test_app</login>
<company>sunrise_cable</company>
<auth_string>3e0faf3300d082506d92c340869c0694a2be120916970b1cdb6b96969a8167fb</auth_string>
</user>