Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice

Índice
maxLevel3
outlinetrue
exclude.*ndice
stylenone

...

Para acessar com segurança recursos e serviços externos ao fluig fluig (seja a partir de de Desenvolvimento de Workflow ou  ou desenvolvimentos sobre a plataforma), pode-se utilizar o recurso Serviços REST no  no fluig.

Este consiste em um cadastro de configurações de acesso e segurança do serviço externo a ser chamadoconsumido, ou seja, para cada caso de protocolo de segurança sendo OAuth 1, OAuth 2 ou ou Basic Authentication, serão informados e cadastrados os token's de os tokens de acesso, chaves, usuário, senha, etc. 

Na atualização 1.6.2 do fluig disponibilizamos as autorizações Custom e None Authentication. Com a Custom é possível realizar o cadastro de acesso e segurança do serviço externo a ser consumido de forma personalizada, não obedecendo o cadastro padrão fixo do protocolo HTTP. Para acessar um serviço interno que não necessite de autenticação, utilize o None Authentication. 


Cadastro de de client para  para chamada a serviços externos

...

Para direcionar-se ao cadastro do Serviços exibir o cadastro de serviços RESTacesse no fluig o fluig com o usuário administrador, acione o menu Painel de Controle, aba WCM, localize o agrupador Desenvolvimento e acione a opção Serviços REST. O recursoprovê recursos recurso contém opções para inclusão, alteração, exclusão, consulta e teste dos client's.

Image Removed

dos clients.

Image Added

Nota

Em atualizações anteriores à 1.6.5 (Liquid), esse recurso está disponível no agrupador Gerais do Painel de Controle. 


Dependendo do do client de  de serviço a ser cadastrado, pode-se utilizar mecanismos de autenticação distintos, como OAuth 1, OAuth 2  ou Basic Authentication, para cada caso serão obrigatórias informações específicas para cada protocolo.Basic, Custom e até sem autenticação, com o NONE. Para cada tipo de autenticação existem informações específicas, que deverão ser preenchidas.

Nota
titleImportante!
Informações
titleNota

A escolha do protocolo a ser utilizado fica a cargo do cliente, bem como a obtenção de dos tokens e demais informações necessárias para o cadastro do client.

Nota
title

Métodos HTTP

...

suportados

...

  • Para tipo de autorização OAuth 1, os métodos

...

  • HTTP disponíveis são: PUT, POST, GET, DELETE.

...

  • Para tipo de autorização OAuth 2, os métodos

...

  • HTTP disponíveis são: PUT, POST, GET, DELETE, PATCH.
  • Para tipo de

...

  • autorização Basic, os métodos

...

  • HTTP disponíveis são: PUT, POST, GET, DELETE, PATCH.
  • Para tipo de autorização Custom, os métodos HTTP disponíveis são: PUT, POST, GET, DELETE, PATCH.
  • Em Nenhuma Autorização (None), os métodos HTTP disponíveis são: PUT, POST, GET, DELETE, PATCH.


OAuth 1

...

Deck of Cards
idOAuth 1
Deck of Cards
effectDuration0.5
historyfalse
idsamples
effectTypefade
Card
defaulttrue
id1
labelOAuth 1Cadastro


  • Para cadastrar

 

  • Cadastro de client com o tipo de autorização OAuth 1, informar os campos:
CampoCondição
Código do Serviço
(
Obrigatório
)
Domínio
(
Obrigatório
)
Tipo de Autenticação
(
Obrigatório
)
Consumer Key
(
Obrigatório
)
Consumer Secret
(Obrigatório)
  • Access Token (Obrigatório)
  • Secret Token (Obrigatório)
  • URL para o Access Token (Obrigatório)
  • URL para o Request Token (Obrigatório)
  • URL para Autorização (Obrigatório)
  • URL GET para test da autenticação do serviço (Opcional)
  •  
    Obrigatório
    Token de acesso
    Obrigatório
    Token secreto
    Obrigatório
    URL Token de acesso
    Obrigatório
    URL solicitação de TokenObrigatório
    URL Autorização de UsuárioObrigatório
    URL para teste de ServiçoOpcional
    card
    Card
    labelImagem

    Image Modified


    Image Modified

     

     


    OAuth 2

    ...

    Deck of Cards
    idOAuth 2
    effectTypefade
    Card
    labelOAuth 2Cadastro
    Informações
    titleNota

    Para o OAuth 2 utilizamos a autenticação do tipo Baerer.

     

     

     Cadastro de client com

    O uso de Refresh Token e da URL Refresh Token se fazem obrigatório para o OAuth 2.0 quando utilizado com um access Token passivo de expiração.

    • Para cadastrar client com o tipo de autorização OAuth 2, informar os campos:
    CampoCondição
    Código do Serviço
    (
    Obrigatório
    )
    Domínio
    (
    Obrigatório
    )
    Tipo de Autenticação
    (
    Obrigatório
    )
    Id Cliente
    (
    Obrigatório
    )
    Client Secret
    (Obrigatório)(
    Obrigatório
    Refresh TokenApenas se disponibilizado pelo Serviço
    Token de
    Acesso
    acesso
    Obrigatório
    )
  • Refresh token (apenas se o Serviço disponibilizar)
  • URL refresh token (apenas se o Serviço disponibilizar)
  • URL GET para test da autenticação do serviço (Opcional)
  • Image RemovedImage Removed

    Card
    id3
    labelBasic Authentication

     

    • Cadastro de client com autorização Basic Authentication, informar os campos:

      1. Código do Serviço (Obrigatório)
      2. Domínio (Obrigatório)
      3. Tipo de Autenticação (Obrigatório)
      4. Usuário (Obrigatório)
      5. Senha (Obrigatório)
      6. Confirmação da Senha (Obrigatório)
      7. URL GET para test da autenticação do serviço (Opcional)

    Image Removed

     

    Testando configurações de autorização do Client cadastrado

    URL Refresh TokenApenas se disponibilizado pelo Serviço
    URL para teste de ServiçoOpcional
    Informações
    titleNota

    Para o OAuth 2 utilizamos a autenticação do tipo Baerer

    Card
    labelImagem

    Image Added


    Image Added

    Basic Authentication

    ...

    Deck of Cards
    effectDuration0.5
    historyfalse
    idBasic Auth
    effectTypefade
    Card
    labelCadastro


    • Para cadastrar client com o tipo de autorização Basic, informar os campos:
    CampoCondição
    Código do ServiçoObrigatório
    DomínioObrigatório
    Tipo de AutenticaçãoObrigatório
    UsuárioObrigatório
    SenhaObrigatório
    Confirmação da SenhaObrigatório
    URL para teste do ServiçoOpcional
    Card
    labelImagem

    Image Added


    Custom Authentication

    ...

    Deck of Cards
    effectDuration0.5
    historyfalse
    idCustom
    effectTypefade
    Card
    defaulttrue
    id1
    labelCadastro


    • Para cadastrar client com o tipo de autorização Custom, informar os campos:
    CampoCondição
    Código do ServiçoObrigatório
    DomínioObrigatório
    Tipo de AutenticaçãoObrigatório
    PersonalizadoObrigatório
    URL para teste do ServiçoOpcional
    Card
    id2
    labelImagem

    Image Added

    None Authentication

    ...

    Deck of Cards
    effectDuration0.5
    historyfalse
    idNone
    effectTypefade
    Card
    defaulttrue
    id1
    labelCadastro


    • Para cadastrar client com o tipo Nenhuma (None) autorização, informar os campos:
    CampoCondição
    Código do ServiçoObrigatório
    DomínioObrigatório
    Tipo de AutenticaçãoObrigatório
    URL para teste do ServiçoOpcional
    Card
    id2
    labelImagem

    Image Added


    Testando configurações de autorização do client cadastrado

    ...

    Após o cadastro do clientApós o cadastro do Client, é possível testar as configurações de acesso utilizando o endpoint GET a URL para teste do Serviço (Endpoint GET) cadastrado. Basta selecionar o client e  e clicar no link Testar Serviço na pagina principal do recurso.

    Image Removed

    Image Removed

    Image Removed

     

     

    botão Testar Serviço:


    Image Added

    Consumindo o serviço com autenticação OAuth 1, OAuth 2, Basic Authentication, Custom Authentication e None Authentication

    ...

    Chamada via

    ...

    JavaScript

    Para consumo do serviço

    ...

    a partir

    ...

    do desenvolvimento de workflows ou de desenvolvimento sobre a plataforma, deve-se informar os seguintes parâmetros no

    ...

    Javascript:

    ...

    Como montar os parâmetros?

    Para envio dos parâmetros no JSON, é obrigatório utilizar o nome das chaves conforme descrito abaixo.

    • companyId: Id da empresa. (sempre com o valor: getValue("WKCompany") + '')
    • serviceCode: Chave única cadastrada.
    • endpoint: Endpoint que  que será chamado.
    • timeoutService: definir limite de tempo (em segundos) durante a chamada ao serviço.
    Informações

    Para endpoint's que recebem QueryParam e PathParam, os

    ...

    parâmetros devem ser incluídos diretamente no endpoint. (endpoint : '/api/public/2.0/users/create?queryParam=exemple',)

    • method: Método http HTTP do serviço.
    • params: Parâmetros em formato JSON para envio ao serviço.
    • options: Parâmetros em formato JSON para configuração do request (se o mesmo não for definido ele vai com as opções padrões que seria encoding: UTF-8 e mediaType: application/json).
    • headers: Parâmetros em formato JSON para configuração do header do request


    Informações

    Para habilitar a utilização de serviços REST pelo protocolo SSL, na propriedade options é necessário informar useSSL: true.

    Exemplo de chamada aos serviços com

    ...

    HTTP methodPOST no JavaScript do desenvolvimento

    Bloco de código
    languagejs
    themeEclipse

    ...

    linenumberstrue
    	try{
    		var clientService = fluigAPI.getAuthorizeClientService();
    		var data = {
    			companyId : getValue("WKCompany") + '',
    			serviceCode : 'bamboo',
    			endpoint : '/api/public/2.0/users/create',
    			method : 'post',// 'delete', 'patch', 'put', 'get'      
    			timeoutService: '100', // segundos
    			params : {
    				login : 'authorize.client',
    				email : '[email protected]',
    				code : 'authorize.client',
    				firstName : 'authorize',
    				lastName : 'client',
    				fullName : 'authorize client',
    				password : '123',
    				extData :{
    					'addicional-data':'123456'
    				}
    			},
              options : {
                 encoding : 'UTF-8',
    			 mediaType: 'application/json',
    			 useSSL : true
              },
    		 headers: {
     			 Content-Type: 'application/json;charset=UTF-8'
    		 }
    		}
    		// OU 
    		var data = {
    			companyId : getValue("WKCompany") + '',
    			serviceCode : 'google',
    			endpoint : '/userinfo/v2/me',
    			method : 'get',
    			timeoutService: '100' // segundos
    		}
    		// OU
    		var data = {                                                    
    			companyId : getValue("WKCompany") + '',
    			serviceCode : 'fluig-local-basic',                      
    			endpoint : '/api/public/2.0/testauthorizeclient/put',   
    			method : 'put', // 'delete', 'patch', 'post', 'get'                                         
    			timeoutService: '100', // segundos
    			params : {                                              
    					teste : 'teste'                                     
    			}                                                       
    		}                                                           
    		var vo = clientService.invoke(JSON.stringify(data));
    
    		if(vo.getResult()== null || vo.getResult().isEmpty()){
    			throw new Exception("Retorno está vazio"); 
    		}else{
    			log.info(vo.getResult());
    		}
    	} catch(err) {
    		throw new Exception(err); 
    	}
     

    ...


    Retorno da chamada

    A chamada "clientService.invoke(JSON.stringify(data));" retorna um objeto com os

    ...

    parâmetros abaixo:

    • companyId: Id da empresa. (sempre com o valor: getValue("WKCompany") + '')
    • serviceCode: Chave única cadastrada.
    • description: Informa o serviceCode e  e se obteve sucesso. Ex: "google:SUCCESS".
    • endopint: Endpoint chamado chamado.
    • result: String com  com o resultado retornado.
    • method: Método http do serviço.
    • strParams: Paramêtros Parâmetros em formato formato String.
    • params: Paramêtros em formato Map<String, Object> utilizados.
        Parâmetros em formato Map<StringObject> utilizados.

    Chamada via componente SDK

    O recurso para consumo do serviço externo também está disponível no componente SDK através do AuthorizeClientSdkService.

    Veja a seguir o exemplo para a chamado ao serviço no SDK:

    Bloco de código
    languagejava
    themeEclipse
    linenumberstrue
    private getAuthorizeClientSdkService getAuthorizeClientSdkService() throws SDKException {
    	return new FluigAPI().getAuthorizeClientSdkService();
    }

     

    ...