Zum Hauptinhalt springen

Persönliches Zugangstoken

Persönliche Zugangstokens (PATs) bieten eine sichere Möglichkeit für Benutzer, ein Zugangstoken zu gewähren, ohne ihre Anmeldedaten und interaktive Anmeldung zu verwenden. Dies ist nützlich für CI/CD, Skripte oder Anwendungen, die programmatisch auf Ressourcen zugreifen müssen.

Verwaltung persönlicher Zugangstokens

Verwendung der Konsole

Du kannst persönliche Zugangstokens auf der Seite "Benutzerdetails" der Konsole > Benutzerverwaltung verwalten. In der Karte "Authentifizierung" kannst du die Liste der persönlichen Zugangstokens sehen und neue erstellen.

Verwendung der Management API

Nach der Einrichtung der Management API kannst du die API-Endpunkte verwenden, um persönliche Zugangstokens zu erstellen, aufzulisten und zu löschen.

Verwendung von PATs zur Gewährung von Zugangstokens

Nach der Erstellung eines PAT kannst du es verwenden, um Zugangstokens für deine Anwendung zu gewähren, indem du den Token-Austausch-Endpunkt verwendest.

Anfrage

Die Anwendung stellt eine Token-Austauschanfrage an den Token-Endpunkt des Mandanten mit einem speziellen Grant-Typ unter Verwendung der HTTP-POST-Methode. Die folgenden Parameter sind im HTTP-Request-Entity-Body im Format application/x-www-form-urlencoded enthalten.

  1. client_id: ERFORDERLICH. Die Client-ID der Anwendung.
  2. grant_type: ERFORDERLICH. Der Wert dieses Parameters muss urn:ietf:params:oauth:grant-type:token-exchange sein, was anzeigt, dass ein Token-Austausch durchgeführt wird.
  3. resource: OPTIONAL. Der Ressourcenindikator, wie bei anderen Token-Anfragen.
  4. scope: OPTIONAL. Die angeforderten Berechtigungen, wie bei anderen Token-Anfragen.
  5. subject_token: ERFORDERLICH. Das PAT des Benutzers.
  6. subject_token_type: ERFORDERLICH. Der Typ des im subject_token-Parameter bereitgestellten Sicherheitstokens. Der Wert dieses Parameters muss urn:logto:token-type:personal_access_token sein.

Antwort

Wenn die Token-Austauschanfrage erfolgreich ist, gibt der Token-Endpunkt des Mandanten ein Zugangstoken zurück, das die Identität des Benutzers darstellt. Die Antwort enthält die folgenden Parameter im HTTP-Response-Entity-Body im Format application/json.

  1. access_token: ERFORDERLICH. Das Zugangstoken des Benutzers, das dem anderer Token-Anfragen wie authorization_code oder refresh_token entspricht.
  2. issued_token_type: ERFORDERLICH. Der Typ des ausgegebenen Tokens. Der Wert dieses Parameters muss urn:ietf:params:oauth:token-type:access_token sein.
  3. token_type: ERFORDERLICH. Der Typ des Tokens. Der Wert dieses Parameters muss Bearer sein.
  4. expires_in: ERFORDERLICH. Die Lebensdauer des Zugangstokens in Sekunden.
  5. scope: OPTIONAL. Die Berechtigungen des Zugangstokens.

Beispiel für einen Token-Austausch

POST /oidc/token HTTP/1.1
Host: tenant.logto.app
Content-Type: application/x-www-form-urlencoded
Authorization: Basic <base64(client-id:client-secret)>

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange
&scope=profile
&subject_token=pat_W51arOqe7nynW75nWhvYogyc
&subject_token_type=urn%3Alogto%3Atoken-type%3Apersonal_access_token
HTTP/1.1 200 OK
Content-Type: application/json

{
"access_token": "eyJhbGci...zg",
"issued_token_type": "urn:ietf:params:oauth:token-type:access_token",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "profile"
}

Das Beispiel-Zugangstoken-Payload:

{
"jti": "iFtbZBeh2M1cTTBuKbHk4",
"sub": "123",
"iss": "https://tenant.logto.app/oidc",
"exp": 1672531200,
"iat": 1672527600,
"scope": "profile",
"client_id": "client-id"
}

Persönliche Zugangstokens, Maschine-zu-Maschine-Authentifizierung und API-Schlüssel-Definition und ihre realen Szenarien