- Diantar
- 15 November 2026 pukul 02.41 UTC
- Pengarang
- Kamo
- Kommit
- c75df92
federation /: sebuah pihak OIDC yang bergantung (PKCE S256 + nonce + state) untuk Google / Microsoft / Apple / LinkedIn, dan adapter OAuth2 untuk GitHub (/user + primary verified /user/emails) dan Facebook (/me + appsecret_proof), di belakang satu antarmuka ProviderAdapter. id_tokens diperiksa terhadap setiap JWKS provider (cached, refetch awal pada anak yang tidak diketahui paling banyak sekali per menit), penerbit, audience/azp, expiry/iat dan nonce; penerbit Microsoft diperiksa terhadap token sendiri tid dan kunci identitas pada penerbit penyewa + oid, tidak pernah pada emailnya. Rahasia klien Apple adalah ES256 JWT ditandatangani dari pendaftaran .p8 (150 hari, cached); nama-nya tiba sekali, sebagai appleUser. Mulai/link/daftar rekaman hidup di Redis (FEDST/FEDLK/FEDSU/FEDLS), penggunaan tunggal, dihabiskan di jalan masuk dan dipulihkan dengan TTL mereka yang tersisa (dan terbukti Identitas) atas kesalahan yang bukan anggota - tidak pernah setelah ikatan yang salah, kode yang ditolak atau token palsu. Menghubungkan: lihat oleh (penerbit, subjek, kunci_konektivitas); jawaban surel yang ada NOT_LINKED dan memerlukan bukti - sandi + faktor kedua akun, atau kode ke surat elektronik ACCOUNT (5 cobaan, 3 dikirim); LINK dari sesi terdaftar Setiap koneksi / pemisahan mengirimkan email akun dan menulis IDENTITY_LINKED / IDENTITY_UNLINKED. Identitas terhubung diberikan ke sandi jalur ke bawah (FederatedSignInCompleter -> gerbang akun, aturan host/pemilih, aturan akses, SignInCompletionService) ditambah kebijakan org (provider diizinkan untuk penonton anggota ini; MFA diminta tetapi tidak terdaftar = ditolak di sini). Tidak dikenakan biaya ke tangga pemblokiran; per-IP callback/link anggaran sebagai gantinya. Klien datang dari PlatformOAuthClientResolver untuk tipe *_SIGNIN - sebuah org aplikasi sendiri hanya pada domain yang diverifikasi sendiri - dan hanya ditawarkan pada config_json.signinStatus ENABLED (CONFIGURED = platform org only). None is dikonfigurasi, jadi tidak ada perubahan yang terlihat.
