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.
client_id
: ERFORDERLICH. Die Client-ID der Anwendung.grant_type
: ERFORDERLICH. Der Wert dieses Parameters mussurn:ietf:params:oauth:grant-type:token-exchange
sein, was anzeigt, dass ein Token-Austausch durchgeführt wird.resource
: OPTIONAL. Der Ressourcenindikator, derselbe wie bei anderen Token-Anfragen.scope
: OPTIONAL. Die angeforderten Berechtigungen, dieselben wie bei anderen Token-Anfragen.subject_token
: ERFORDERLICH. Das PAT des Benutzers.subject_token_type
: ERFORDERLICH. Der Typ des Sicherheitstokens, das im Parametersubject_token
bereitgestellt wird. Der Wert dieses Parameters mussurn: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
.
access_token
: ERFORDERLICH. Das Zugangstoken des Benutzers, das dasselbe ist wie bei anderen Token-Anfragen wieauthorization_code
oderrefresh_token
.issued_token_type
: ERFORDERLICH. Der Typ des ausgegebenen Tokens. Der Wert dieses Parameters mussurn:ietf:params:oauth:token-type:access_token
sein.token_type
: ERFORDERLICH. Der Typ des Tokens. Der Wert dieses Parameters mussBearer
sein.expires_in
: ERFORDERLICH. Die Lebensdauer des Zugangstokens in Sekunden.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"
}