Skip to content

Commit 9e8447c

Browse files
silverhand-botgao-suncharIeszhao
authored
chore: update translations and generated content (#1320)
* chore: update translations and generated content * fix: lint errors --------- Co-authored-by: gao-sun <14722250+gao-sun@users.noreply.github.com> Co-authored-by: Charles Zhao <charleszhao@silverhand.io>
1 parent eb6dbce commit 9e8447c

File tree

37 files changed

+1333
-1021
lines changed

37 files changed

+1333
-1021
lines changed

docs/authorization/fragments/_handle-user-permission-change.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Even if a user gains new permissions, the token issued later can only contain a
88
To access newly granted scopes that were not part of the initial request, the client must run a new authorization flow.
99
:::
1010

11-
#### Downscoped permissions
11+
#### Downscoped permissions \{#downscoped-permissions}
1212

1313
When a user loses permissions:
1414

@@ -18,13 +18,13 @@ When a user loses permissions:
1818

1919
If you need faster reactions, implement your own signal that tells clients to refresh their tokens.
2020

21-
#### Enlarged permissions
21+
#### Enlarged permissions \{#enlarged-permissions}
2222

2323
{props.type === "global" && <p>For global API resources, when a user gains permissions, enlarged permissions will NOT show up through refresh. The client must perform a new OAuth authorization flow to obtain a token that includes the new scopes. This can happen silently if the user has an active Logto session.</p>}
2424

2525
{props.type === "organization" && <p>For organization tokens, when a user gains permissions, enlarged permissions will show up on the next issuance (refresh or token request). A new token is still required, but no full re-auth is needed unless the new scopes exceed the original request set.</p>}
2626

27-
#### Recommendations
27+
#### Recommendations \{#recommendations}
2828

2929
- Validate scopes in your API on every call.
3030
- Keep token expiration short.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
### Optional: Benutzerberechtigungsänderungen behandeln \{#optional-handle-user-permission-change}
2+
3+
Benutzerberechtigungen können sich jederzeit ändern. Da Logto JWTs für rollenbasierte Zugangskontrolle (RBAC) ausstellt, erscheinen Berechtigungsänderungen nur in neu ausgestellten Tokens und ändern niemals bestehende JWTs.
4+
5+
:::info Berechtigungs-Subset-Regel
6+
Ein Zugangstoken (Access token) kann nur Berechtigungen (Scopes) enthalten, die im ursprünglichen OAuth-Autorisierungsablauf angefordert wurden.
7+
Selbst wenn ein Benutzer neue Berechtigungen erhält, kann das später ausgestellte Token nur eine Teilmenge der ursprünglich angeforderten Berechtigungen enthalten.
8+
Um auf neu gewährte Berechtigungen zuzugreifen, die nicht Teil der ursprünglichen Anfrage waren, muss der Client einen neuen Autorisierungsablauf durchführen.
9+
:::
10+
11+
#### Reduzierte Berechtigungen \{#downscoped-permissions}
12+
13+
Wenn ein Benutzer Berechtigungen verliert:
14+
15+
- Neu ausgestellte Tokens spiegeln die reduzierten Berechtigungen sofort wider.
16+
- Bestehende JWTs behalten die alten Berechtigungen, bis sie ablaufen.
17+
- Deine API sollte immer die Berechtigungen validieren und sich auf kurze Token-Laufzeiten verlassen.
18+
19+
Wenn du schnellere Reaktionen benötigst, implementiere ein eigenes Signal, das den Clients mitteilt, ihre Tokens zu aktualisieren.
20+
21+
#### Erweiterte Berechtigungen \{#enlarged-permissions}
22+
23+
{props.type === "global" && <p>Für globale API-Ressourcen werden erweiterte Berechtigungen, wenn ein Benutzer neue Berechtigungen erhält, NICHT durch Aktualisierung (Refresh) sichtbar. Der Client muss einen neuen OAuth-Autorisierungsablauf durchführen, um ein Token zu erhalten, das die neuen Berechtigungen enthält. Dies kann still erfolgen, wenn der Benutzer eine aktive Logto-Sitzung hat.</p>}
24+
25+
{props.type === "organization" && <p>Für Organisationstokens werden erweiterte Berechtigungen, wenn ein Benutzer neue Berechtigungen erhält, bei der nächsten Ausstellung (Refresh oder Token-Anfrage) sichtbar. Ein neues Token ist weiterhin erforderlich, aber eine vollständige erneute Authentifizierung ist nicht nötig, es sei denn, die neuen Berechtigungen überschreiten die ursprünglich angeforderte Menge.</p>}
26+
27+
#### Empfehlungen \{#recommendations}
28+
29+
- Validiere die Berechtigungen bei jedem API-Aufruf.
30+
- Halte die Token-Gültigkeit kurz.
31+
- Füge optionale Benachrichtigungen hinzu, wenn du eine sofortige Verbreitung von Berechtigungsänderungen benötigst.

i18n/de/docusaurus-plugin-content-docs/current/authorization/global-api-resources.mdx

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import illustration from '@site/docs/authorization/assets/rbac-global-api-resour
66
import AuthorizationRequestExample from '@site/docs/authorization/fragments/AuthorizationRequestExample';
77
import ClientCredentialsRequestExample from '@site/docs/authorization/fragments/ClientCredentialsRequestExample';
88
import TokenRequestExample from '@site/docs/authorization/fragments/TokenRequestExample';
9+
import HandleUserPermissionChange from '@site/docs/authorization/fragments/_handle-user-permission-change.mdx';
910
import TabItem from '@theme/TabItem';
1011
import Tabs from '@theme/Tabs';
1112

@@ -30,8 +31,8 @@ Logto ermöglicht es dir, diese APIs mit OAuth 2.1 in Kombination mit flexibler,
3031
## So funktioniert es in Logto \{#how-it-works-in-logto}
3132

3233
- **API-Ressourcen und Berechtigungen werden global registriert:** Jede API, die du schützen möchtest, wird mit einem eindeutigen Ressourcenindikator (URI) und einem Satz von Berechtigungen (Scopes) definiert, die den Zugriff steuern.
33-
- **Der Zugriff wird durch globale Rollen gesteuert:** Du kannst Berechtigungen Rollen zuweisen, die dann Benutzern oder Clients zugeordnet werden.
34-
- **Getrennt von organisationsbezogenen Berechtigungen:** Globale API-Ressourcen haben keinen Organisationskontext. Sie können jedoch zusammen mit Organisationsrollen verwendet werden, um bei Bedarf eine zusätzliche Kontextebene bereitzustellen. Um organisationsbezogene APIs zu schützen, siehe [Organisationsbezogene API-Ressourcen schützen](/authorization/organization-level-api-resources).
34+
- **Der Zugriff wird durch globale Rollen gesteuert:** Du kannst Berechtigungen Rollen zuweisen, die dann Benutzern oder Clients zugewiesen werden.
35+
- **Getrennt von organisationsbezogenen Berechtigungen:** Globale API-Ressourcen haben keinen Organisationskontext. Sie können jedoch in Verbindung mit Organisationsrollen verwendet werden, um bei Bedarf eine zusätzliche Kontextebene bereitzustellen. Um organisationsbezogene APIs zu schützen, siehe [Organisationsbezogene API-Ressourcen schützen](/authorization/organization-level-api-resources).
3536

3637
<img src={illustration} alt="Globale API-Ressourcen RBAC" style={{ maxWidth: '100%' }} />
3738

@@ -50,7 +51,7 @@ Logto modelliert API-Ressourcen gemäß [RFC 8707: Resource Indicators for OAuth
5051
**Wichtige Punkte**
5152

5253
- Ressourcenindikatoren müssen absolute URIs sein (z. B. `https://api.example.com`)
53-
- Kein Fragmentbestandteil; vermeide nach Möglichkeit Query-Strings.
54+
- Kein Fragmentbestandteil; vermeide nach Möglichkeit die Verwendung von Query-Strings.
5455
- Ressourcenindikatoren ermöglichen zielgruppenbeschränkte Tokens und unterstützen Multi-API-Architekturen.
5556

5657
**Beispiel**
@@ -60,9 +61,9 @@ Logto modelliert API-Ressourcen gemäß [RFC 8707: Resource Indicators for OAuth
6061

6162
### Autorisierungsfluss: Authentifizierung und Absicherung deiner API \{#authorization-flow-authenticating-and-securing-your-api}
6263

63-
Der folgende Ablauf gilt sowohl für interaktive Benutzer-Authentifizierung (Browser/App) als auch für Backend-Maschine-zu-Maschine (M2M)-Szenarien.
64+
Der folgende Ablauf gilt sowohl für interaktive Benutzer-Authentifizierung (Browser / App) als auch für Backend-Maschine-zu-Maschine (M2M)-Szenarien.
6465

65-
Beachte, dass der Ablauf nicht alle Details zu erforderlichen Parametern oder Headern enthält, sondern sich auf die wichtigsten Schritte konzentriert. Lies weiter, um zu sehen, wie der Ablauf in der Praxis funktioniert.
66+
Beachte, dass der Ablauf nicht alle erforderlichen Parameter oder Header im Detail enthält, sondern sich auf die wichtigsten Schritte konzentriert. Lies weiter, um zu sehen, wie der Ablauf in der Praxis funktioniert.
6667

6768
```mermaid
6869
sequenceDiagram
@@ -96,13 +97,13 @@ sequenceDiagram
9697
end
9798
```
9899

99-
_Benutzer-Authentifizierung = Browser/App. M2M = Backend-Dienst oder Skript mit Client-Credentials._
100+
_Benutzer-Authentifizierung = Browser / App. M2M = Backend-Dienst oder Skript mit Client-Credentials._
100101

101102
:::note
102103
Der `resource`-Parameter muss exakt mit dem in Logto registrierten API-Identifier (Ressourcenindikator) übereinstimmen.
103104
:::
104105

105-
## Implementierungsschritte \{#implementation-steps}
106+
## Umsetzungsschritte \{#implementation-steps}
106107

107108
### Registriere deine API-Ressourcen \{#register-your-api-resources}
108109

@@ -139,23 +140,23 @@ Details zu jedem SDK findest du in den [Schnellstarts](/quick-starts).
139140
</TabItem>
140141
<TabItem value="oauth-client" label="OAuth 2.0 / OIDC client library">
141142

142-
Beim Konfigurieren deines OAuth 2.0-Clients oder beim Initialisieren des Authorization Code Flows stelle sicher, dass du den `resource`-Parameter und die gewünschten Scopes in der Autorisierungsanfrage einfügst.
143+
Beim Konfigurieren deines OAuth 2.0-Clients oder beim Initialisieren des Authorization Code Flows stelle sicher, dass du den `resource`-Parameter und die gewünschten Scopes in der Autorisierungsanfrage einschließt.
143144

144-
Einige Bibliotheken unterstützen den `resource`-Parameter nicht nativ, erlauben aber in der Regel das Hinzufügen zusätzlicher Parameter zur Autorisierungsanfrage. Prüfe die Dokumentation deiner Bibliothek für Details.
145+
Einige Bibliotheken unterstützen den `resource`-Parameter nicht nativ, erlauben aber in der Regel das Übergeben zusätzlicher Parameter in der Autorisierungsanfrage. Prüfe die Dokumentation deiner Bibliothek für Details.
145146

146147
Hier ein nicht-normatives Beispiel für die Autorisierungsanfrage mit den Parametern `resource` und `scope`:
147148

148149
<AuthorizationRequestExample resource={resource} scope="read:products write:products" />
149150

150-
Nach erfolgreicher Authentifizierung erhältst du einen Authorization Code. Tausche diesen Code gegen ein Zugangstoken, indem du eine POST-Anfrage an Logtos `/oidc/token`-Endpunkt stellst und den `resource`-Parameter im Anfragekörper angibst.
151+
Nach erfolgreicher Authentifizierung erhältst du einen Authorization Code. Tausche diesen Code gegen ein Zugangstoken aus, indem du eine POST-Anfrage an Logtos `/oidc/token`-Endpunkt stellst und den `resource`-Parameter im Request-Body einschließt.
151152

152-
Hier ein nicht-normatives Beispiel für die Token-Anfrage mit dem Grant-Typ authorization_code:
153+
Hier ein nicht-normatives Beispiel für die Token-Anfrage mit dem Grant-Typ Authorization Code:
153154

154155
<TokenRequestExample grantType="authorization_code" resource={resource} />
155156

156-
Du kannst auch den Grant-Typ `refresh_token` verwenden, um ohne Benutzerinteraktion ein neues Zugangstoken zu erhalten, solange der `resource`-Parameter in der Anfrage enthalten ist.
157+
Du kannst auch den Grant-Typ `refresh_token` verwenden, um ein neues Zugangstoken ohne Benutzerinteraktion zu erhalten, solange der `resource`-Parameter in der Anfrage enthalten ist.
157158

158-
Hier ein nicht-normatives Beispiel für die Token-Anfrage mit dem Grant-Typ refresh_token:
159+
Hier ein nicht-normatives Beispiel für die Token-Anfrage mit dem Grant-Typ Auffrischungstoken:
159160

160161
<TokenRequestExample grantType="refresh_token" resource={resource} />
161162

@@ -171,7 +172,7 @@ Es gibt zwei wichtige Parameter, die in der Anfrage enthalten sein müssen:
171172
- `resource`: Die URI des Ressourcenindikators der API, auf die du zugreifen möchtest (z. B. `https://api.yourapp.com`).
172173
- `scope`: Die Berechtigungen, die du für die API anfordern möchtest (z. B. `read:products write:products`).
173174

174-
Hier ein nicht-normatives Beispiel für die Token-Anfrage mit dem Grant-Typ client_credentials:
175+
Hier ein nicht-normatives Beispiel für die Token-Anfrage mit dem Grant-Typ Client-Credentials:
175176

176177
<ClientCredentialsRequestExample
177178
resource="https://api.yourapp.com"
@@ -192,16 +193,12 @@ Wenn deine API eine Anfrage mit einem von Logto ausgestellten Zugangstoken erhä
192193

193194
Für Schritt-für-Schritt- und sprachspezifische Anleitungen siehe [Zugangstokens validieren](/authorization/validate-access-tokens).
194195

195-
### Optional: Benutzerberechtigungsänderung behandeln \{#optional-handle-user-permission-change}
196-
197-
:::info
198-
👷 In Arbeit. 🚧
199-
:::
196+
<HandleUserPermissionChange type="global" />
200197

201198
## Best Practices und Sicherheitstipps \{#best-practices-and-security-tips}
202199

203200
- **Berechtigungen geschäftsorientiert halten:** Verwende klare Namen, die echten Aktionen entsprechen.
204-
- **Token-Ablauf kurz halten:** Reduziert das Risiko bei Token-Leakage.
201+
- **Token-Ablauf kurz halten:** Reduziert das Risiko bei einem Token-Leak.
205202
- **Vergebene Scopes begrenzen:** Gib Tokens nur die Berechtigungen, die sie tatsächlich benötigen.
206203
- **Zielgruppenbeschränkung nutzen:** Überprüfe immer den `aud`-Anspruch, um Missbrauch zu verhindern.
207204

@@ -227,9 +224,9 @@ Lege eine Standard-API-Ressource in der Logto-Konsole fest. Tokens verwenden die
227224

228225
Überprüfe die folgenden häufigen Probleme:
229226

230-
- **Token-Signatur**: Stelle sicher, dass dein Backend die korrekten JWKs von Logto abruft
227+
- **Token-Signatur**: Stelle sicher, dass dein Backend die richtigen JWKs von Logto abruft
231228
- **Token-Ablauf**: Stelle sicher, dass das Token nicht abgelaufen ist (`exp`-Anspruch)
232-
- **Zielgruppe**: Prüfe, ob der `aud`-Anspruch mit deinem registrierten API-Ressourcenindikator übereinstimmt
229+
- **Zielgruppe**: Prüfe, dass der `aud`-Anspruch mit deinem registrierten API-Ressourcenindikator übereinstimmt
233230
- **Erforderliche Scopes**: Stelle sicher, dass das Token die notwendigen Berechtigungen im `scope`-Anspruch enthält
234231

235232
</details>
@@ -270,12 +267,12 @@ scopes: ["read:elections", "write:elections"]
270267
Das funktioniert **NICHT**:
271268

272269
```swift
273-
scopes: ["read", "write"] //Stimmt nicht mit den Berechtigungsnamen überein
270+
scopes: ["read", "write"] //Entspricht nicht den Berechtigungsnamen
274271
```
275272

276273
</details>
277274

278-
## Weiterführende Literatur \{#further-reading}
275+
## Weiterführende Informationen \{#further-reading}
279276

280277
<Url href="/authorization/validate-access-tokens">Zugangstokens validieren</Url>
281278
<Url href="/use-cases/authorization/rbac-in-practice">

0 commit comments

Comments
 (0)