Cloud & IT Cert Prep · Pelajaran

Identitas Terfederasi: SAML, OAuth, dan OpenID Connect

Pelajari cara SSO, pernyataan SAML, alur OAuth 2.0, dan token OpenID Connect memungkinkan pengguna melakukan autentikasi sekali secara aman di berbagai aplikasi.

Pelajaran 4 dari 413 langkah

Identitas Terfederasi: SAML, OAuth, dan OpenID Connect adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 4 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 Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Masalah Identitas Lintas Domain

Dalam perusahaan modern, karyawan perlu mengakses puluhan aplikasi — aplikasi cloud, alat SaaS, portal mitra, dan sistem internal — yang masing-masing mungkin dikelola oleh organisasi yang berbeda. Membuat dan mengelola akun terpisah untuk setiap aplikasi tidak aman (menyebabkan kredensial berlebihan) dan tidak efisien. Identitas terfederasi mengatasi masalah ini dengan memungkinkan Penyedia Identitas (IdP) — sumber identitas yang tepercaya dan berwenang — mengautentikasi pengguna serta membagikan identitas yang telah diautentikasi tersebut kepada Penyedia Layanan (SP) di berbagai batas organisasi. Pengguna cukup melakukan autentikasi sekali untuk memperoleh akses ke banyak sistem tanpa memasukkan kembali kredensial.

Dasar-Dasar Single Sign-On (SSO)

Single Sign-On (SSO) memungkinkan pengguna melakukan autentikasi sekali dan mengakses beberapa aplikasi dalam satu sesi tanpa perlu melakukan autentikasi ulang. Pengguna masuk ke Penyedia Identitas (Active Directory perusahaan, Okta, Azure AD), menerima token sesi atau pernyataan, lalu memberikan token tersebut kepada setiap Penyedia Layanan yang dikunjungi. SSO meningkatkan keamanan dengan mengurangi jumlah kata sandi yang harus dikelola pengguna (sehingga mengurangi penggunaan ulang kata sandi), memungkinkan penerapan kebijakan autentikasi secara terpusat, dan memungkinkan pencabutan akses segera di semua aplikasi yang terintegrasi ketika akun dinonaktifkan pada tingkat IdP.

SAML 2.0: Federasi Berbasis XML

SAML (Bahasa Markah Pernyataan Keamanan) 2.0 adalah standar terbuka berbasis XML untuk bertukar data autentikasi dan otorisasi antara Penyedia Identitas dan Penyedia Layanan. Alur SAML adalah sebagai berikut: (1) pengguna mengakses Penyedia Layanan (misalnya Salesforce), (2) SP mengarahkan pengguna ke Penyedia Identitas (misalnya Okta), (3) pengguna melakukan autentikasi di IdP, (4) IdP menerbitkan Pernyataan SAML XML bertanda tangan yang berisi identitas dan atribut pengguna, (5) pernyataan tersebut dikembalikan kepada SP, (6) SP memvalidasi tanda tangan pernyataan menggunakan kunci publik IdP dan memberikan akses. SAML banyak digunakan untuk SSO perusahaan pada aplikasi web.

<!-- Simplified SAML Assertion structure -->
<saml:Assertion xmlns:saml='urn:oasis:names:tc:SAML:2.0:assertion'
  IssueInstant='2026-06-21T10:00:00Z'
  ID='_abc123'>
  <saml:Issuer>https://idp.company.com</saml:Issuer>
  <saml:Subject>
    <saml:NameID>alice@company.com</saml:NameID>
  </saml:Subject>
  <saml:Conditions NotBefore='2026-06-21T10:00:00Z'
                   NotOnOrAfter='2026-06-21T10:05:00Z'/>
  <saml:AttributeStatement>
    <saml:Attribute Name='groups'>
      <saml:AttributeValue>Sales</saml:AttributeValue>
    </saml:Attribute>
  </saml:AttributeStatement>
  <!-- Signature verifies IdP signed this assertion -->
</saml:Assertion>

Peran SAML: IdP, SP, dan Principal

Tiga pihak berpartisipasi dalam federasi SAML. Principal adalah pengguna (atau sistem) yang meminta akses — pihak ini memulai proses autentikasi. Penyedia Identitas (IdP) adalah sumber identitas berwenang yang mengautentikasi principal dan menerbitkan pernyataan — contohnya Microsoft Azure AD, Okta, Ping Identity, dan ADFS. Penyedia Layanan (SP) menggunakan pernyataan tersebut dan memberikan akses berdasarkan isinya — contohnya Salesforce, Google Workspace, AWS, dan aplikasi apa pun yang mendukung SAML. SP dan IdP membangun kepercayaan terlebih dahulu dengan bertukar metadata yang berisi URL titik akhir dan sertifikat penandatanganan satu sama lain.

OAuth 2.0: Kerangka Otorisasi

OAuth 2.0 adalah kerangka otorisasi (bukan protokol autentikasi) yang memungkinkan aplikasi pihak ketiga mengakses sumber daya atas nama pengguna tanpa membuka kredensial pengguna. Contoh penggunaan yang umum adalah: “Izinkan aplikasi pengedit foto ini mengakses Google Photos Anda.” OAuth 2.0 memperkenalkan empat peran: Pemilik Sumber Daya (pengguna), Client (aplikasi pihak ketiga), Server Otorisasi (menerbitkan token), dan Server Sumber Daya (menyediakan sumber daya yang dilindungi). Pengguna memberikan otorisasi kepada client, yang kemudian menerima token akses untuk diberikan kepada server sumber daya — tanpa pernah memerlukan kata sandi pengguna yang sebenarnya.

Alur Kode Otorisasi OAuth 2.0

Alur Kode Otorisasi adalah alur OAuth 2.0 yang paling aman untuk aplikasi web. Alurnya adalah sebagai berikut: (1) Client mengarahkan pengguna ke Server Otorisasi dengan menyertakan scope yang diminta; (2) Pengguna melakukan autentikasi dan memberikan persetujuan di Server Otorisasi; (3) Server Otorisasi mengarahkan pengguna kembali dengan kode otorisasi yang berumur singkat; (4) Client menukar kode tersebut dengan token akses (dan, jika diperlukan, token penyegaran) melalui panggilan antars server menggunakan kredensial client; (5) Client menggunakan token akses untuk memanggil Server Sumber Daya. Pertukaran kode berlangsung di sisi server, sehingga token akses tidak terekspos dalam riwayat peramban atau catatan.

# OAuth 2.0 Authorization Code Flow (step 3-4)
# Step 3: User is redirected back to client with auth code
# GET https://app.example.com/callback?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz

# Step 4: Client exchanges code for access token (server-to-server)
curl -X POST https://auth.example.com/oauth2/token \
  -d 'grant_type=authorization_code' \
  -d 'code=SplxlOBeZQQYbYS6WxSbIA' \
  -d 'redirect_uri=https://app.example.com/callback' \
  -d 'client_id=client_abc' \
  -d 'client_secret=secret_xyz'
# Response: {'access_token': 'MTQ0Nj...', 'token_type': 'Bearer', 'expires_in': 3600}

OpenID Connect: Menambahkan Autentikasi ke OAuth

OpenID Connect (OIDC) adalah lapisan autentikasi yang dibangun di atas OAuth 2.0. OAuth hanya menyediakan otorisasi (token akses membuktikan tindakan yang dapat dilakukan client); OIDC menambahkan autentikasi (token ID membuktikan identitas pengguna). OIDC menambahkan scope openid ke alur OAuth dan mengembalikan Token ID JWT (JSON Web Token) bertanda tangan bersama token akses. Token ID berisi klaim (nama, email, sub [pengenal subjek]) yang mengidentifikasi pengguna. OIDC kini menjadi protokol dominan untuk SSO yang ditujukan kepada konsumen — semua tombol “Masuk dengan Google/Apple/Microsoft” menggunakan OIDC.

# OIDC ID Token is a JWT with three base64url-encoded parts:
# header.payload.signature

# Decoded payload example:
# {
#   'iss': 'https://accounts.google.com',
#   'sub': '110169484474386276334',
#   'aud': 'client_id_abc123',
#   'exp': 1750000000,
#   'iat': 1749996400,
#   'email': 'alice@gmail.com',
#   'name': 'Alice Smith',
#   'email_verified': true
# }

# The signature is verified with the IdP's public key (from JWKS endpoint)

JWT: Token dalam Autentikasi Modern

JSON Web Token (JWT) adalah format ringkas yang aman digunakan dalam URL untuk merepresentasikan klaim di antara berbagai pihak. JWT memiliki tiga bagian yang dikodekan dalam base64url dan dipisahkan oleh titik: Header (algoritme dan jenis token), Payload (klaim: iss, sub, aud, exp, iat, dan klaim khusus), serta Signature (tanda tangan kriptografis yang memverifikasi integritas token). JWT bersifat mandiri — Server Sumber Daya dapat memverifikasinya tanpa menghubungi kembali Server Otorisasi, sehingga meningkatkan kinerja dan memungkinkan arsitektur tanpa status. Persyaratan keamanan yang penting: selalu verifikasi tanda tangan JWT dan periksa klaim exp (masa berlaku) serta aud (audiens).

# Decode a JWT (header and payload are just base64 encoded)
import base64, json

jwt = 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFsaWNlIiwiZXhwIjoxNzUwMDAwMDAwfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
parts = jwt.split('.')
print('Header:', json.loads(base64.b64decode(parts[0] + '==')))
print('Payload:', json.loads(base64.b64decode(parts[1] + '==')))
# Signature (parts[2]) must be verified with IdP public key!

SAML vs OAuth vs OIDC: Kapan Menggunakan Masing-Masing

Memahami kapan setiap standar diterapkan sangat penting untuk ujian Security+. SAML 2.0: SSO perusahaan untuk aplikasi web, alur berbasis peramban, dan pernyataan XML. Bersifat lama, tetapi digunakan secara luas di perusahaan. OAuth 2.0: otorisasi API — memberikan akses terbatas kepada aplikasi pihak ketiga untuk menggunakan sumber daya. Tidak mengautentikasi pengguna secara langsung. OIDC: autentikasi konsumen dan perusahaan modern (SSO) yang dibangun di atas OAuth 2.0. Mengembalikan token ID JWT yang mengidentifikasi pengguna. Dalam praktiknya, lingkungan perusahaan sering menggunakan SAML untuk SSO aplikasi dan OIDC untuk autentikasi API/perangkat seluler. Lingkungan cloud-native modern lebih memilih OIDC daripada SAML karena format JSON/JWT dan dukungan perangkat selulernya yang lebih baik.

Vektor Serangan Federasi

Sistem identitas terfederasi memperkenalkan vektor serangan tertentu. Serangan pemutaran ulang pernyataan: penyerang mencegat pernyataan SAML lalu menggunakannya kembali untuk memperoleh akses. Mitigasinya adalah menggunakan masa berlaku pernyataan yang singkat dan ID pernyataan yang hanya dapat digunakan sekali. Pembungkusan tanda tangan XML (XSW): dalam SAML, penyerang terkadang dapat memanipulasi XML bertanda tangan untuk mengubah klaim, sementara tanda tangan pada konten asli tetap valid. Kebingungan algoritme JWT: jika server menerima algoritme RS256 (asimetris) dan HS256 (simetris), penyerang dapat memalsukan JWT dengan menggunakan kunci publik server sebagai rahasia HMAC untuk HS256. Selalu validasi bahwa header algoritme sesuai dengan algoritme yang diharapkan. Pengarah ulang terbuka: URI pengalihan OAuth harus dicocokkan secara tepat untuk mencegah pencurian token melalui pengalihan ke situs yang dikendalikan penyerang.

Federasi Direktori dan SCIM

Federasi identitas perusahaan sering memerlukan sinkronisasi data identitas pengguna di antara berbagai sistem. SCIM (Manajemen Identitas Lintas Domain Sistem) adalah standar API REST untuk mengotomatiskan penyediaan dan pencabutan penyediaan pengguna antara Penyedia Identitas dan Penyedia Layanan yang terhubung. Ketika karyawan baru ditambahkan ke Azure AD (IdP), SCIM secara otomatis membuat akun mereka di Salesforce, Slack, GitHub, dan aplikasi lain yang kompatibel dengan SCIM. Ketika karyawan tersebut diberhentikan, SCIM menonaktifkan semua akun secara bersamaan — menutup celah waktu ketika akun yatim dapat dieksploitasi. SCIM melengkapi protokol SSO (SAML/OIDC) dengan menangani pengelolaan siklus hidup yang tidak dicakup oleh protokol SSO.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep CompTIA Security+ (SY0-701) dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, Anda telah mempelajari bahwa SAML 2.0 menggunakan pernyataan XML untuk SSO perusahaan berbasis peramban; OAuth 2.0 adalah kerangka otorisasi untuk pendelegasian akses API; OpenID Connect menambahkan autentikasi (token ID JWT) di atas OAuth; dan SCIM mengotomatiskan pengelolaan siklus hidup identitas di berbagai sistem terfederasi. Kursus Autentikasi dan Otorisasi ini telah selesai — selanjutnya kita akan membahas Dasar-Dasar Keamanan Jaringan.

Gratis untuk memulai

Belajar Cloud & IT Cert Prep dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
150
Pelajaran
600

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Identitas Terfederasi: SAML, OAuth, dan OpenID Connect” gratis?

Ya — teks lengkap “Identitas Terfederasi: SAML, OAuth, dan OpenID Connect” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Identitas Terfederasi: SAML, OAuth, dan OpenID Connect”?

Pelajari cara SSO, pernyataan SAML, alur OAuth 2.0, dan token OpenID Connect memungkinkan pengguna melakukan autentikasi sekali secara aman di berbagai aplikasi. Kamu berlatih Cloud & IT Cert Prep 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 Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep 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 4 dari 4.

Berapa lama pelajaran “Identitas Terfederasi: SAML, OAuth, dan OpenID Connect” 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 Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep 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

  1. Kebijakan Kata Sandi dan Autentikasi Multifaktor
  2. Biometrik dan Autentikasi Berbasis Token
  3. Model Otorisasi: RBAC, MAC, dan DAC
  4. Identitas Terfederasi: SAML, OAuth, dan OpenID Connect
← Kembali ke Cloud & IT Cert Prep