Introdução
Ao usar uma cadeia que faz várias chamadas de API com um token de autenticação que está expirando, como as usadas pelas APIs da Workiva, há o risco de o token expirar antes que todas as chamadas sejam iniciadas. Se isso acontecer, todas as chamadas de API restantes falharão. Se você fizer uma nova autenticação antes de cada chamada de API, poderá evitar esse problema, mas isso adicionará mais sobrecarga à cadeia.
Este manual explica como você pode implementar o modelo Atualizar tokens OAuth dinamicamente. O modelo destina-se a cadeias que usam o HTTP Connector para fazer chamadas de API em que a API exige autenticação por meio de um token com data e tempo de expiração. Embora tenha sido criada para a API da Workiva, você pode adaptá-la para outras APIs que usam métodos de autenticação semelhantes.
A cadeia inclui um mecanismo para atualizar automaticamente o token quando ele estiver perto de expirar. Você subtrai 2 minutos (esse valor pode ser ajustado) do tempo de expiração do token existente como um buffer e o compara com o tempo atual. Se o tempo atual for posterior ao tempo de expiração ajustado, a cadeia acionará o processo de reautenticação para gerar um novo token, que será emitido pela cadeia. Se o token ainda for válido, a cadeia pulará a reautenticação e simplesmente dará saída ao token existente.
Nota: Se nenhum token for passado para essa cadeia, ela passará automaticamente pelo processo de autenticação e gerará um, o que significa que essa cadeia também pode ser usada para nossa (primeira) solicitação de autenticação inicial e para as subsequentes.
Pré-requisitos
Correntes
Os seguintes conectores devem ser ativados e configurados em seu espaço de trabalho:
O modelo contém as seguintes variáveis de espaço de trabalho|workspace projetadas para uso com a API da Workiva; altere e configure conforme apropriado:
- wsv_platform (o local do aplicativo em que seu espaço de trabalho|workspace está localizado; nos EUA, use "app"; na UE/EMEA, use "eu"; na APAC, use "apac")
- wsv_Client ID (o ID do cliente que você concedeu à API)
- wsv_Client Secret (o segredo da API que você concedeu)
Implantar a cadeia
O modelo de cadeia "Refresh OAuth Tokens Dynamically" está localizado na seção Cadeias da Workiva da tela Modelos.
Veja como encontrá-lo:
- No Construtor de Cadeia, acesse a guia Modelos
- Selecione Cadeias Workiva no menu na parte superior
- Pesquise Refresh OAuth Tokens Dynamically Chain Template (Atualizar tokens OAuth dinamicamente em cadeia) no canto superior direito e abra o modelo.
- Depois de localizar o modelo, clique em Nova cadeia para implantá-lo em seu espaço de trabalho
- Configure o modelo para seu espaço de trabalho|workspace e API.
- Lembre-se de publicar a cadeia depois de configurada e se você quiser usá-la como está, sem necessidade de modificações.
Nota: Para obter instruções detalhadas sobre como criar uma cadeia a partir de um modelo, consulte o artigo Criar e gerenciar cadeias.
Configurar o modelo
Esse modelo pode ser adicionado a uma cadeia existente usando o comando Run Chain e funcionará sem nenhuma modificação adicional para a API da Workiva. Consulte aqui as instruções sobre como usar o comando de evento "Run Chain".
Um exemplo de caso de uso para essa cadeia seria em um grupo de comando existente que usa iteração. Essa cadeia pode ser executada a partir de um comando de evento "Run Chain" com sua própria ramificação no grupo, definindo variáveis dinâmicas de cadeia com as saídas de cadeia dessa cadeia.
No comando "Executar Cadeias", você pode usar sua variável de cadeia dinâmica para garantir que o token verificado seja sempre o mais recente.
Em seguida, você precisa atualizar essa mesma variável de cadeia dinâmica com a saída do comando "Executar Cadeias".
Você pode usar essas mesmas variáveis de cadeia dinâmica em qualquer comando de solicitação HTTP que fizer
Atualize o tempo do buffer
Por padrão, esse modelo adiciona um tempo de buffer de 2 minutos ao tempo de expiração do token existente para evitar problemas de tempo. Você pode alterar isso no comando condicional "Check if expiry date time is close" (Verificar se o tempo da data de expiração está fechado).
Depois de editar esse comando, clique duas vezes na primeira variável "Advanced Query - convert epoch timestamp - timestamp" nas condições.
Você pode ajustar o valor conforme preferir.