Zum Hauptinhalt springen

Persönliches Zugangstoken

Persönliche Zugangstokens (PATs) bieten eine sichere Möglichkeit für Benutzer, Zugangstokens 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 verwalten. In der Karte "Authentifizierung" kannst du die Liste der persönlichen Zugangstokens sehen und neue erstellen.

Verwendung der Management API

Nach dem Einrichten 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, derselbe wie bei anderen Token-Anfragen.
  4. scope: OPTIONAL. Die angeforderten Berechtigungen, dieselben wie bei anderen Token-Anfragen.
  5. subject_token: ERFORDERLICH. Das PAT des Benutzers.
  6. subject_token_type: ERFORDERLICH. Der Typ des Sicherheitstokens, das im Parameter subject_token bereitgestellt wird. 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 dasselbe ist wie bei anderen Token-Anfragen wie authorization_code oder refresh_token.
  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"
}