feat(docs-i18n): translate all documentation into 20 languages

All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
This commit is contained in:
SnapOtter
2026-07-11 13:52:47 +08:00
committed by GitHub
parent 00b651c9f8
commit 4963ab3bbd
3620 changed files with 306134 additions and 0 deletions
+170
View File
@@ -0,0 +1,170 @@
---
description: "OpenID Connect ile Çoklu Oturum Açma kurulumu yapın. Keycloak, Authentik, Google ve diğer OIDC sağlayıcıları için adım adım kılavuzlar."
i18n_source_hash: 4296343b3cc5
i18n_provenance: human
i18n_output_hash: d14739acc1c3
---
# OIDC / Çoklu Oturum Açma {#oidc-single-sign-on}
SnapOtter, çoklu oturum açma için OpenID Connect (OIDC) desteği sunar. Kullanıcılar, yerel kullanıcı adı/parola kimlik doğrulaması yerine (veya bununla birlikte) Keycloak, Authentik veya Google gibi harici bir kimlik sağlayıcıyla oturum açabilir.
::: tip Ayrıca bkz.
[SAML SSO](/tr/guide/saml) | [SCIM Sağlama](/tr/guide/scim) | [Kullanıcılar, Roller ve İzinler](/tr/guide/users-roles)
:::
## Hızlı başlangıç {#quick-start}
Bu ortam değişkenlerini `docker-compose.yml` dosyanıza ekleyin:
```yaml
services:
SnapOtter:
image: snapotter/snapotter:latest
environment:
EXTERNAL_URL: "https://photos.example.com"
OIDC_ENABLED: "true"
OIDC_ISSUER_URL: "https://auth.example.com/realms/myrealm"
OIDC_CLIENT_ID: "snapotter"
OIDC_CLIENT_SECRET: "your-secret-here"
```
Sağlayıcınız için yönlendirme URI'si her zaman şudur:
```
${EXTERNAL_URL}/api/auth/oidc/callback
```
Örneğin, `EXTERNAL_URL` değeri `https://photos.example.com` ise, sağlayıcınızın yönlendirme URI'sini `https://photos.example.com/api/auth/oidc/callback` olarak yapılandırın.
## Yapılandırma referansı {#configuration-reference}
| Değişken | Varsayılan | Açıklama |
|---|---|---|
| `OIDC_ENABLED` | `false` | OIDC oturum açmayı etkinleştirir. Oturum açma sayfasında bir "SSO ile oturum aç" düğmesi görünür. |
| `OIDC_ISSUER_URL` | | Sağlayıcının veren (issuer) URL'si. OIDC Discovery (`/.well-known/openid-configuration`) desteklemelidir. |
| `OIDC_CLIENT_ID` | | Sağlayıcınızla kayıtlı OAuth istemci kimliği. |
| `OIDC_CLIENT_SECRET` | | OAuth istemci gizli anahtarı. |
| `OIDC_SCOPES` | `openid profile email` | İstenecek kapsamların boşlukla ayrılmış listesi. |
| `OIDC_AUTO_CREATE_USERS` | `true` | İlk OIDC oturum açmasında otomatik olarak yerel bir kullanıcı hesabı oluşturur. |
| `OIDC_DEFAULT_ROLE` | `user` | Otomatik oluşturulan OIDC kullanıcılarına atanan rol. `admin`, `editor` veya `user` değerlerinden biri. |
| `OIDC_AUTO_LINK_USERS` | `false` | E-posta adresi eşleşiyorsa bir OIDC kimliğini mevcut bir yerel kullanıcıya bağlar. |
| `OIDC_PROVIDER_NAME` | | Oturum açma düğmesinde gösterilen görünen ad (örn. "Keycloak", "Google"). Boşsa düğmede "SSO" yazar. |
| `OIDC_CLOCK_TOLERANCE` | `30` | Token doğrulaması için saniye cinsinden saat kayması toleransı. |
| `OIDC_USERNAME_CLAIM` | `preferred_username` | Yeni hesaplar için kullanıcı adı olarak kullanılan ID token istem değeri. |
| `EXTERNAL_URL` | | SnapOtter'ın erişilebilir olduğu genel URL. Doğru yönlendirme URI'sini oluşturmak için OIDC tarafından gereklidir. |
| `COOKIE_SECRET` | otomatik oluşturulur | Oturum çerezlerini imzalamak için gizli anahtar. Birden fazla kopya çalıştırırken bunu açıkça ayarlayın. |
## Sağlayıcı kılavuzları {#provider-guides}
### Keycloak {#keycloak}
1. Yeni bir realm oluşturun (veya mevcut birini kullanın).
2. **Clients** bölümüne gidin ve yeni bir istemci oluşturun:
- **Client ID**: `snapotter`
- **Client authentication**: On (confidential)
- **Authentication flow**: Standard flow (Authorization Code)
3. İstemcinin **Settings** sekmesi altında, **Valid redirect URIs** öğesini geri çağırma URL'nize ayarlayın (örn. `https://photos.example.com/api/auth/oidc/callback`).
4. **Credentials** sekmesinden **Client secret** öğesini kopyalayın.
5. `OIDC_ISSUER_URL` değerini `https://keycloak.example.com/realms/your-realm` olarak ayarlayın.
### Authentik {#authentik}
1. Yönetici arayüzünde, **Applications > Providers** bölümüne gidin ve yeni bir **OAuth2/OpenID Provider** oluşturun.
- **Client type**: Confidential
- **Redirect URIs**: Geri çağırma URL'niz
- **Signing key**: Mevcut bir anahtarı seçin veya bir tane oluşturun
2. Bir **Application** oluşturun ve sağlayıcıya bağlayın.
3. Sağlayıcı ayarlarından **Client ID** ve **Client Secret** öğelerini kopyalayın.
4. `OIDC_ISSUER_URL` değerini `https://authentik.example.com/application/o/snapotter/` olarak ayarlayın (sondaki eğik çizgi önemlidir).
### Google {#google}
1. [Google Cloud Console](https://console.cloud.google.com/) adresine gidin.
2. Bir proje oluşturun (veya mevcut birini seçin).
3. **APIs & Services > OAuth consent screen** bölümüne gidin ve yapılandırın.
4. **APIs & Services > Credentials** bölümüne gidin ve bir **OAuth 2.0 Client ID** oluşturun:
- **Application type**: Web application
- **Authorized redirect URIs**: Geri çağırma URL'niz
5. **Client ID** ve **Client secret** öğelerini kopyalayın.
6. `OIDC_ISSUER_URL` değerini `https://accounts.google.com` olarak ayarlayın.
7. `OIDC_USERNAME_CLAIM` değerini `email` olarak ayarlayın (Google `preferred_username` sağlamaz).
## Kullanıcı sağlama {#user-provisioning}
### Otomatik oluşturma {#auto-create}
`OIDC_AUTO_CREATE_USERS` değeri `true` olduğunda (varsayılan), birisi OIDC aracılığıyla ilk kez oturum açtığında yerel bir kullanıcı hesabı oluşturulur. Kullanıcı adı `OIDC_USERNAME_CLAIM` ile belirtilen istemden alınır ve rol `OIDC_DEFAULT_ROLE` olarak ayarlanır.
Bir kullanıcı adı çakışması olursa, sayısal bir sonek eklenir (örn. `jane`, `jane_2` olur).
### Otomatik bağlama {#auto-link}
`OIDC_AUTO_LINK_USERS` değeri `true` olduğunda, SnapOtter, e-posta adresleri eşleşiyorsa bir OIDC kimliğini mevcut bir yerel hesaba bağlar. Bu, önceden oluşturulmuş kullanıcı hesaplarınız olduğunda ve verilerini kaybetmeden SSO kullanmaya başlamalarını istediğinizde yararlıdır.
::: warning
Yalnızca OIDC sağlayıcınızın e-posta adreslerini doğrulamasına güveniyorsanız otomatik bağlamayı etkinleştirin. Doğrulanmamış bir e-posta, birinin başka bir kullanıcının hesabını ele geçirmesine olanak tanıyabilir.
:::
### Yerel oturum açmayı devre dışı bırakma {#disabling-local-login}
OIDC, yerel kullanıcı adı/parola oturum açmayı devre dışı bırakmaz. Her iki yöntem de kullanılabilir kalır. OIDC sağlayıcısı erişilemez durumdaysa, yöneticiler yine de yerel kimlik bilgileriyle oturum açabilir.
## Kendinden imzalı sertifikalar {#self-signed-certificates}
OIDC sağlayıcınız kendinden imzalı veya özel bir CA sertifikası kullanıyorsa, CA paketini konteynere bağlayın ve `NODE_EXTRA_CA_CERTS` öğesini ona yönlendirin:
```yaml
services:
SnapOtter:
image: snapotter/snapotter:latest
volumes:
- ./my-ca.pem:/etc/ssl/certs/custom-ca.pem:ro
environment:
NODE_EXTRA_CA_CERTS: /etc/ssl/certs/custom-ca.pem
OIDC_ENABLED: "true"
OIDC_ISSUER_URL: "https://auth.internal.example.com/realms/myrealm"
OIDC_CLIENT_ID: "snapotter"
OIDC_CLIENT_SECRET: "your-secret-here"
```
::: danger
`NODE_TLS_REJECT_UNAUTHORIZED=0` ayarlamayın. Bu, tüm TLS doğrulamasını devre dışı bırakır ve bir güvenlik riskidir.
:::
## Sorun giderme {#troubleshooting}
### Yönlendirme URI'si uyuşmazlığı {#redirect-uri-mismatch}
En yaygın hata. Sağlayıcınızın beklediği ile SnapOtter'ın gönderdiği arasındaki şu farklılıkları kontrol edin:
- `http` ile `https` karşılaştırması - şema tam olarak eşleşmelidir
- Sondaki eğik çizgi - bazı sağlayıcılar bu konuda katıdır
- Port numarası - standart değilse portu ekleyin
- Yol - `/api/auth/oidc/callback` olmalıdır
`EXTERNAL_URL` öğesini iki kez kontrol edin. Kullanıcıların tarayıcılarına yazdığı URL ile eşleşmelidir.
### UNABLE_TO_VERIFY_LEAF_SIGNATURE {#unable-to-verify-leaf-signature}
OIDC sağlayıcısı, Node.js'in güvenmediği bir sertifika kullanıyor. Yukarıdaki [Kendinden imzalı sertifikalar](#self-signed-certificates) bölümüne bakın.
### Saat kayması hataları {#clock-skew-errors}
Sunucu saatiniz ve OIDC sağlayıcı saati senkronize değilse, token doğrulaması başarısız olabilir. `OIDC_CLOCK_TOLERANCE` değerini artırın (varsayılan 30 saniyedir). Daha iyi bir çözüm, her iki makinede de NTP çalıştırmaktır.
### "OIDC sağlayıcısı erişilemez" {#oidc-provider-unreachable}
SnapOtter, sağlayıcının keşif belgesini başlangıçta ve oturum açma sırasında getirir. Kontrol edin:
- Docker konteynerinin içinden DNS çözümlemesi (`docker exec snapotter nslookup auth.example.com`)
- Konteyner ile sağlayıcı arasındaki güvenlik duvarı kuralları
- `OIDC_ISSUER_URL` değeri - yalnızca tarayıcınızdan değil, sunucudan da erişilebilir olmalıdır
### Eksik istemler {#missing-claims}
Oturum açtıktan sonra kullanıcı adları veya e-postalar boşsa, sağlayıcınız beklenen istemleri döndürmüyor olabilir. Doğrulayın:
- `OIDC_SCOPES` içinde yapılandırılan kapsamlar `profile` ve `email` içerir
- Sağlayıcı, `OIDC_USERNAME_CLAIM` içinde belirtilen istemi ID token'a dahil edecek şekilde yapılandırılmıştır
- Bazı sağlayıcılar istemleri yayınlamak için açık eşleyici/kapsam yapılandırması gerektirir