Belajar IAM Engineer - SSO & Federation
Episode 6 of 28

Belajar IAM Engineer - SSO & Federation

SSO architecture, federation protocols, dan trust setup memungkinkan user login sekali dan mengakses semua aplikasi tanpa mengulang credential

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 5 kita membahas authentication protocols, pada episode ini kita masuk ke SSO & federation — konsep yang memungkinkan user login sekali dan mengakses semua aplikasi tanpa memasukkan ulang credentials. SSO adalah salah satu benefit paling nyata dari IAM bagi end user.

Mengapa SSO penting? Karena tanpa SSO, user harus mengingat puluhan password untuk berbagai aplikasi. Ini mengarah ke password reuse, fatigue, dan akhirnya — security risk. SSO menghilangkan masalah ini sekaligus meningkatkan security.

Arsitektur SSO

Centralized SSO

Satu IdP menjadi pusat authentication untuk semua aplikasi:

text
User → Login → IdP (Keycloak/Entra ID)

    Token diterbitkan

    User mengakses App A, B, C dengan token yang sama

SSO Patterns

PatternCara KerjaContoh
Web SSOBrowser redirect ke IdPOIDC, SAML
API SSOToken-based authOAuth 2.0 Bearer
Desktop SSOIntegrated Windows AuthKerberos/NTLM
Mobile SSOSystem browser redirectOIDC + PKCE

Federation

Konsep Federation

Federation memungkinkan beberapa organisasi saling mempercayai authentication:

text
Organisasi A (IdP: AD/Entra)
         ↕ Trust Relationship
Organisasi B (SP: SaaS App)
         ↕ Trust Relationship
Organisasi C (IdP: Keycloak)

User di Organisasi B bisa login menggunakan credentials dari Organisasi A atau C.

Federated Authentication Flow

100%

SSO Implementation dengan Keycloak

Setup Realm

LinuxSetup Keycloak realm untuk SSO
# Buka Keycloak Admin Console
# Create new realm: company-sso
# Configure:
#   - Login settings (redirect URIs)
#   - Token settings (lifespan)
#   - Security defences (CORS, CSP)

Konfigurasi Client

LinuxKonfigurasi OIDC client di Keycloak
# 1. Create Client → Client ID: myapp
# 2. Client Protocol: OpenID Connect
# 3. Valid Redirect URIs: https://myapp.example.com/callback
# 4. Web Origins: https://myapp.example.com
# 5. Copy Client Secret dari Credentials tab

Testing SSO

Test OIDC login dengan curl
# 1. Redirect user ke authorization endpoint
open "http://localhost:8080/realms/company-sso/protocol/openid-connect/auth?client_id=myapp&response_type=code&scope=openid&redirect_uri=http://localhost:3000/callback"
 
# 2. Login, dapat authorization code dari redirect
# 3. Exchange code untuk token
curl -X POST http://localhost:8080/realms/company-sso/protocol/openid-connect/token \
  -d "grant_type=authorization_code&code=CODE&client_id=myapp&client_secret=SECRET&redirect_uri=http://localhost:3000/callback"

SAML Federation Setup

Metadata Exchange

SAML federation dimulai dengan pertukaran metadata:

text
IdP Metadata (XML):
- Entity ID
- SSO URL
- Certificate
- NameID format
 
SP Metadata (XML):
- Entity ID
- ACS URL
- Certificate
- Assertion consumer service

Trust Configuration

xml
<!-- Contoh SAML metadata IdP -->
<EntityDescriptor entityID="https://idp.company.com">
  <IDPSSODescriptor>
    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
      Location="https://idp.company.com/slo"/>
    <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
      Location="https://idp.company.com/sso"/>
  </IDPSSODescriptor>
</EntityDescriptor>

Note

SSO federation membutuhkan planning yang matang. Pastikan trust relationships terdokumentasi, certificate rotation dijadwalkan, dan disaster recovery plan tersedia. SSO yang gagal bisa mengunci semua user dari semua aplikasi.

Common SSO Pitfalls

  1. Single point of failure — jika IdP down, semua aplikasi terpengaruh
  2. Clock skew — token expirty bisa gagal jika clock tidak sync
  3. Certificate expiry — SAML signature verification gagal jika certificate expired
  4. Redirect URI mismatch — error umum yang memblok login

Penutup

Inti yang harus dibawa pulang:

  • SSO memungkinkan login sekali dan akses semua aplikasi.
  • Federation memungkinkan trust antar organisasi untuk authentication.
  • Keycloak adalah open-source IdP yang bisa digunakan untuk SSO dan federation.
  • SSO planning harus mempertimbangkan HA, certificate management, dan disaster recovery.

Di episode 7 selanjutnya kita akan membahas MFA & passwordless — metode MFA, FIDO2/WebAuthn, dan phishing-resistant authentication. Siapkan keamanan authentication kalian!