OpenID Connect (OIDC)
Menambahkan identitas di atas OAuth.
OpenID Connect (OIDC) adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Alasan OIDC Ada
OpenID Connect adalah lapisan identitas ringan yang dibangun di atas OAuth 2.0. OAuth menjawab apa yang dapat dilakukan aplikasi ini; OIDC menjawab siapa penggunanya.
- OIDC menstandarkan cara klien mengautentikasi pengguna dan menerima klaim identitas yang terverifikasi.
- OIDC memperkenalkan token ID sebagai pernyataan autentikasi yang ditandatangani secara kriptografis.
Sebelum OIDC, pengembang menyalahgunakan token akses OAuth untuk masuk, yang menyebabkan masalah wakil yang bingung dan kerentanan penyamaran identitas.
Token ID (JWT)
Artefak utama OIDC adalah token ID, yaitu JWT bertanda tangan yang menjelaskan peristiwa autentikasi.
- Token ini membawa klaim tentang siapa yang masuk dan kapan.
- Token ini ditujukan untuk digunakan oleh klien, bukan server sumber daya.
Jangan pernah mengirim token ID ke API sebagai kredensial akses, dan jangan pernah menerima token tersebut tanpa memvalidasi tanda tangan serta klaimnya.
Header.Payload.Signature
{
"iss": "https://idp.example",
"sub": "248289761001",
"aud": "app123",
"exp": 1718000000,
"iat": 1717996400,
"nonce": "n-abc"
}Klaim Inti Token ID
Memvalidasi token ID berarti memeriksa klaim tertentu, bukan hanya tanda tangannya.
- iss Penerbit harus cocok dengan IdP yang diharapkan.
- aud Audiens harus memuat ID klien Anda.
- exp / iat Token harus belum kedaluwarsa dan baru diterbitkan.
- sub Pengenal pengguna yang stabil dan unik.
- nonce Harus cocok dengan nilai yang dikirim oleh klien Anda.
Alur Autentikasi OIDC
OIDC menggunakan kembali alur Kode Otorisasi, tetapi menambahkan cakupan openid dan nonce.
- Klien meminta cakupan
openid(ditambahprofiledanemailsecara opsional). - Titik akhir token mengembalikan token ID bersama token akses.
noncemengaitkan token ID dengan permintaan awal sehingga mencegah pemutaran ulang.
GET /authorize?response_type=code
&scope=openid profile email
&client_id=app123
&redirect_uri=https://app.example/cb
&state=xyz&nonce=n-abcMemvalidasi Tanda Tangan dengan JWKS
Penyedia OIDC menerbitkan kunci penandatanganannya di titik akhir JWKS, yang dapat ditemukan melalui dokumen konfigurasi terkenal.
- Ambil kunci dari
jwks_uridan cocokkan dengan header tokenkid. - Verifikasi menggunakan algoritme asimetris yang tercantum (RS256, ES256).
Tolak algoritme none dan jangan pernah memercayai nilai algoritme yang hanya diberikan oleh token.
GET /.well-known/openid-configuration
-> { "jwks_uri": "https://idp.example/jwks", ... }
GET /jwks
-> { "keys": [ { "kid": "k1", "kty": "RSA", ... } ] }Nonce Melindungi dari Pemutaran Ulang
nonce bagi token ID sama seperti state bagi pengalihan: nilai sekali pakai yang mengikat respons dengan permintaan.
- Klien membuat nonce acak dan menyimpannya dalam sesi.
- IdP menggemakannya di dalam token ID.
- Saat menerimanya, klien memverifikasi bahwa nonce cocok dan belum pernah digunakan.
Hal ini memblokir pemutaran ulang token dan penyisipan token yang diterbitkan untuk sesi berbeda.
Titik Akhir UserInfo
Untuk data profil tambahan di luar token ID, OIDC mendefinisikan titik akhir UserInfo.
- Klien memanggilnya dengan token akses, bukan token ID.
- Titik akhir ini mengembalikan klaim seperti nama, alamat surel, dan gambar untuk subjek yang terautentikasi.
Selalu cocokkan sub yang dikembalikan dengan sub pada token ID untuk mencegah penggantian klaim.
GET /userinfo
Authorization: Bearer <access_token>
-> { "sub": "248289761001", "email": "u@example.com" }Penemuan dan Metadata
OIDC menstandarkan penemuan agar klien dapat mengonfigurasi titik akhir dan fitur yang didukung secara otomatis.
- Dokumen
/.well-known/openid-configurationmencantumkan titik akhir, cakupan yang didukung, dan algoritme. - Tetapkan penerbit yang diizinkan secara eksplisit atau validasi penerbit tersebut; jangan mengikuti penemuan secara membabi buta dari server yang dikendalikan penyerang.
Penemuan menyederhanakan integrasi, tetapi penerbit tetap menjadi jangkar kepercayaan yang harus Anda verifikasi.
Keluar melalui Saluran Depan vs Saluran Belakang
Pengakhiran sesi di seluruh aplikasi terfederasi ditangani oleh spesifikasi keluar OIDC.
- Keluar melalui saluran depan menggunakan pengalihan atau bingkai sebaris peramban untuk menghapus sesi dari setiap pihak pengandalan.
- Keluar melalui saluran belakang mengirimkan token keluar antarpeladen, yang lebih andal tetapi memerlukan titik akhir.
Tanpa proses keluar yang terkoordinasi, pengguna dapat keluar dari satu aplikasi tetapi tetap masuk ke aplikasi lain, yang merupakan risiko nyata dalam pengelolaan sesi.
Kesalahan Umum OIDC
Kesalahan identitas sering kali terjadi karena langkah validasi dilewati.
- Menerima token tanpa memeriksa aud (token tersebut ditujukan untuk klien lain).
- Mengabaikan iss, sehingga pemalsuan IdP dimungkinkan.
- Tidak memvalidasi tanda tangan atau menerima
alg: none. - Mencampuradukkan token ID dan token akses.
- Tidak memeriksa nonce, sehingga pemutaran ulang dimungkinkan.
Validation checklist:
[ ] iss == expected
[ ] aud contains client_id
[ ] exp not passed, iat sane
[ ] signature verified via JWKS
[ ] nonce matches sessionOIDC dibandingkan OAuth Biasa untuk Masuk
Jika tujuan Anda adalah masuk, gunakan OIDC, bukan OAuth mentah.
- Token akses OAuth bersifat buram bagi klien dan tidak membuktikan apa pun tentang identitas.
- Token akses dapat valid untuk pengguna atau aplikasi lain, sehingga dapat menyebabkan penyamaran identitas jika digunakan untuk masuk.
- Token ID OIDC secara khusus merupakan pernyataan identitas yang terikat pada audiens.
Pembedaan ini mencegah cacat autentikasi wakil yang bingung dan klasik.
Pemeriksaan Singkat: Validasi Token ID
Pilih langkah validasi yang paling penting bagi pihak pengandalan yang menggunakan token ID.
Ringkasan: OpenID Connect
Kesimpulan utama:
- OIDC menambahkan lapisan identitas pada OAuth 2.0; token ID adalah JWT bertanda tangan yang membuktikan autentikasi.
- Selalu validasi iss, aud, exp, tanda tangan (melalui JWKS), dan nonce.
- Token ID ditujukan untuk klien; token akses ditujukan untuk API; jangan pernah menukar perannya.
- Gunakan
nonceuntuk mencegah pemutaran ulang danstateuntuk mencegah CSRF. - Gunakan OIDC, bukan OAuth mentah, saat Anda perlu mengautentikasi pengguna.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “OpenID Connect (OIDC)” gratis?
Ya — teks lengkap “OpenID Connect (OIDC)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “OpenID Connect (OIDC)”?
Menambahkan identitas di atas OAuth. Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?
Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “OpenID Connect (OIDC)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?
Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Alur OAuth 2.0
- OpenID Connect (OIDC)
- SAML dan Federasi
- Serangan Token dan Penguatan Keamanan