Verwendung von Aktualisierungstoken zur einmaligen Verwendung für Snowflake OAuth-Sicherheitsintegrationen¶
Unter diesem Thema wird beschrieben, wie Sie Aktualisierungstoken für die einmalige Verwendung für Snowflake OAuth-Sicherheitsintegrationen aktivieren.
Einmalige Aktualisierungstoken sind ein Feature, das Sie aktivieren können, um zu verhindern, dass gestohlene Aktualisierungstoken in Ihrem Snowflake-Konto wiederverwendet werden. Wenn Sie Aktualisierungstoken zur einmaligen Verwendung aktivieren, treten die folgenden Änderungen am Verhalten des Gewährungsablaufs für Aktualisierungstoken auf:
Sie können ein Aktualisierungstoken nur einmal innerhalb der 90 Tage verwenden, in denen das Aktualisierungstoken gültig ist.
Nachdem Sie ein Aktualisierungstoken verwendet haben, wird das Aktualisierungstoken ungültig.
Der Gewährungsablauf für Aktualisierungstoken gibt ein neues Aktualisierungstoken und ein neues Zugriffstoken zurück, anstatt nur ein neues Zugriffstoken.
Nachdem Sie ein neues Aktualisierungstoken erhalten haben, werden alle vorherigen Aktualisierungstoken und Zugriffstoken ungültig.
Vorteile von Aktualisierungstoken zur einmaligen Verwendung¶
Aktualisierungstoken zur einmaligen Verwendung bieten die folgenden Sicherheitsvorteile:
Verkürzte effektive Token-Lebensdauer: Wenn eine gültige Anwendung ein Aktualisierungstoken verwendet, werden alle gestohlenen Kopien des Aktualisierungstokens ungültig. Dieses Einmalverwendungsverhalten erschwert das Verteilen von gestohlenen Token und das Verwenden von gestohlenen Token in zeitlich begrenzten Angriffen.
Wenn Ihre Anwendung beispielsweise alle 10 Minuten den Aktualisierungstoken-Gewährungsablauf einmal verwendet, kann ein böswilliger Akteur, der das Aktualisierungstoken stiehlt, das gestohlene Token nur innerhalb von 10 Minuten verwenden, oder bevor die Anwendung ein neues Aktualisierungstoken erhält, selbst wenn das Token 90 Tage lang gültig ist.
Intrusion Detection: Sie können ein Aktualisierungstoken nicht wiederverwenden. Wenn ein Aktualisierungstoken wiederverwendet wird, werden alle vorherigen Aktualisierungstoken und Zugriffstoken ungültig.
Wenn beispielsweise ein böswilliger Akteur ein einmaliges Aktualisierungstoken stiehlt und versucht, das Token wiederzuverwenden, dann werden bei dem Versuch, das Aktualisierungstoken für die einmalige Verwendung wiederzuverwenden, alle vorherigen Aktualisierungstoken und Zugriffstoken ungültig gemacht, wodurch die böswillige Verwendung eines Aktualisierungstokens aufgedeckt wird.
Aktivieren von Aktualisierungstoken zur einmaligen Verwendung¶
Sie können die Rotation des Aktualisierungstokens aktivieren, wenn Sie unter Verwendung eines Autorisierungscode-Gewährungsablaufs einen Autorisierungscode gegen ein Zugriffstoken und ein Aktualisierungstoken austauschen.
Sie können Aktualisierungstoken zur einmaligen Verwendung mit einer der folgenden Methoden aktivieren:
Verwenden eines Anforderungsparameters im Textteil (Body) einer HTTP-Anforderung
Eine Eigenschaft in einer Snowflake OAuth-Sicherheitsintegration festlegen
Verwenden eines Anforderungsparameters im Textteil (Body) einer HTTP-Anforderung¶
Eine Clientanwendung kann den enable_single_use_refresh_tokens
-Anforderungsparameter während eines Autorisierungscode-Gewährungsablaufs auf TRUE
im Textteil einer HTTP POST-Anforderung auf den Token-Anforderungsendpunkt für Snowflake OAuth festlegen.
Nachdem eine Clientanwendung den enable_single_use_refresh_tokens
-Anforderungsparameter während des Autorisierungscode-Gewährungsablaufs auf TRUE
festgelegt hat, geben alle zukünftigen Aktualisierungstoken-Gewährungsabläufe ein neues Aktualisierungstoken und ein neues Zugriffstoken zurück und machen alle vorherigen Zugriffstoken und Aktualisierungstoken ungültig.
Sie können zum Beispiel die folgende HTTP POST-Anforderung stellen, um einen Autorisierungscode-Gewährungsablauf auszuführen und den Parameter für die enable_single_use_refresh_tokens
-Anforderung auf TRUE
festlegen, um das erste Zugriffstoken und das erste Aktualisierungstoken zu erhalten:
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>",
}
Sie können dann die folgende HTTP POST-Anforderung einen Aktualisierungstoken-Gewährungsablauf unter Verwendung Ihres alten Aktualisierungstokens ausführen lassen, um ein neues Zugriffstoken und ein neues Aktualisierungstoken zu erhalten:
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",
}
Eine Eigenschaft in einer Snowflake OAuth-Sicherheitsintegration festlegen¶
Wenn eine Clientanwendung ihr zwischengespeichertes Aktualisierungstoken nach jedem Aktualisierungstoken-Gewährungsablauf aktualisiert, können Sie Aktualisierungstoken für die einmalige Verwendung für eine Snowflake OAuth-Sicherheitsintegration aktivieren, indem Sie die Eigenschaft OAUTH_SINGLE_USE_REFRESH_TOKENS_REQUIRED
auf TRUE
festlegen.
Nachdem Sie Aktualisierungstoken zur einmaligen Verwendung für eine Snowflake-OAuth-Sicherheitsintegration aktiviert haben, geben alle Autorisierungscode- und Aktualisierungstoken-Gewährungsabläufe, die die client_id
der Sicherheitsintegration verwenden, Aktualisierungstoken zur einmaligen Verwendung aus, unabhängig davon, ob die Clientanwendung den enable_single_use_refresh_tokens
-Anforderungsparameter während eines Autorisierungscode-Gewährungsablaufs angibt.
Sie können zum Beispiel ALTER SECURITY INTEGRATION verwenden, um Aktualisierungstoken zur einmaligen Verwendung für eine Snowflake OAuth-Sicherheitsintegration zu aktivieren:
ALTER SECURITY INTEGRATION my_integration
SET OAUTH_SINGLE_USE_REFRESH_TOKENS_REQUIRED = TRUE;