Tokens de atualização de uso único para integrações de segurança do OAuth no Snowflake¶
Este tópico descreve como habilitar tokens de atualização de uso único para integrações de segurança OAuth no Snowflake.
Os tokens de atualização de uso único são um recurso que você pode ativar para impedir que tokens de atualização removidos sejam reutilizados em sua conta Snowflake. Ao ativar tokens de atualização de uso único, as seguintes alterações ocorrem no fluxo de concessão de tokens de atualização:
Você só pode usar um token de atualização uma vez durante os 90 dias em que o token de atualização é válido.
Depois de usar um token de atualização, ele se torna inválido.
O fluxo de concessão de token de atualização retorna um novo token de atualização e um novo token de acesso, em vez de apenas um novo token de acesso.
Depois de obter um novo token de atualização, todos os tokens de atualização e de acesso anteriores se tornam inválidos.
Benefícios dos tokens de atualização de uso único¶
Os tokens de atualização de uso único oferecem os seguintes benefícios de segurança:
Token com vida útil efetiva reduzida: Quando um aplicativo legítimo usa um token de atualização, todas as cópias roubadas desse token são invalidadas. Esse comportamento de uso único dificulta a distribuição e o uso de tokens roubados em ataques com tempo determinado.
Por exemplo, se o seu aplicativo usar o fluxo de concessão de token de atualização uma vez a cada 10 minutos, um agente mal-intencionado que roubar o token só poderá usá-lo por 10 minutos, ou antes que o aplicativo receba um novo, mesmo que o token seja válido por 90 dias.
Detecção de intrusão: Você não pode reutilizar um token de atualização. Quando um token de atualização é reutilizado, todos os tokens de atualização e acesso anteriores tornam-se inválidos.
Por exemplo, se um agente mal-intencionado roubar um token de atualização de uso único e tentar reutilizar o token, a tentativa de reutilização desse token invalidará todos os tokens de atualização e de acesso anteriores, expondo esse uso malicioso de um token de atualização.
Habilitação de tokens de atualização de uso único¶
Você pode habilitar a rotação de tokens de atualização trocando o código de autorização para token de acesso e o token de atualização por meio de um fluxo de concessão de código de autorização.
Você pode habilitar tokens de atualização de uso único usando qualquer um dos seguintes métodos:
Use um parâmetro no corpo de uma solicitação HTTP¶
Um aplicativo cliente pode definir o parâmetro enable_single_use_refresh_tokens
de solicitação como TRUE
no corpo de uma solicitação HTTP POST para o ponto de extremidade de solicitação de token para OAuth no Snowflake durante o fluxo de concessão do código de autorização.
Depois que um aplicativo do cliente definir o parâmetro de solicitação enable_single_use_refresh_tokens
como TRUE
durante o fluxo de concessão de código de autorização, todos os fluxos futuros de desse tipo retornarão um novo token de atualização e um novo token de acesso, invalidando todos os tokens de acesso e atualização anteriores.
Por exemplo, você pode fazer a seguinte solicitação HTTP POST para realizar um fluxo grande de código de autorização e definir o parâmetro de solicitação``enable_single_use_refresh_tokens`` como TRUE
para obter seus primeiros tokens de acesso e atualização:
POST /oauth/token-request HTTP/1.1
Host: <my_subdomain>.snowflakecomputing.com
Authorization: Basic <client_id:client_secret>
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ12345&redirect_uri=http://127.0.0.1:8080&enable_single_use_refresh_tokens=true
{
"access_token": "<your_new_access_token>",
"expires_in": 600,
"refresh_token": "<your_new_refresh_token>",
"token_type": "Bearer",
"username": "<user1>",
}
Depois, usando seu token de atualização antigo, você pode fazer a seguinte solicitação HTTP POST para realizar um fluxo de concessão de token de atualização. Assim, você recebe um novo token de acesso e um novo token de atualização:
POST /oauth/token-request HTTP/1.1
Host: <my_subdomain>.snowflakecomputing.com
Authorization: Basic <client_id:client_secret>
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&refresh_token=<your_old_refresh_token>
{
"access_token": "<your_new_access_token>",
"expires_in": 600,
"refresh_token": "<your_new_refresh_token>",
"token_type": "Bearer",
}
Definição de uma propriedade em uma integração de segurança do OAuth no Snowflake¶
Se um aplicativo cliente atualiza seu token de atualização em cache após cada fluxo de concessão de token de atualização, você pode habilitar tokens de atualização de uso único para uma integração de segurança do :doc:` OAuth no Snowflake </user-guide/oauth-snowflake-overview>` definindo a propriedade OAUTH_SINGLE_USE_REFRESH_TOKENS_REQUIRED
como TRUE
.
Depois de ativar tokens de atualização de uso único para uma integração de segurança do OAuth no Snowflake, todos os fluxos de concessão de código de autorização e token de atualização que usam o client_id
da integração de segurança emitem tokens de atualização de uso único, independentemente de o aplicativo cliente especificar o parâmetro de solicitação enable_single_use_refresh_tokens
durante um fluxo de concessão de código de autorização.
Por exemplo, você pode usar ALTER SECURITY INTEGRATION para habilitar tokens de atualização de uso único para uma integração de segurança do OAuth no Snowflake:
ALTER SECURITY INTEGRATION my_integration
SET OAUTH_SINGLE_USE_REFRESH_TOKENS_REQUIRED = TRUE;