Modül 2 · Modül 2 — Domain 2: User Identity & Authentication · ⏱ 10-15 dakika

SAML SSO Temelleri

SAML SSO Fundamentals

Bu derste neler öğreneceksin

  • SAML 2.0 SSO akışını ve GitHub Enterprise'daki rolünü açıklamak
  • IdP ve SP kavramlarını ve konfigürasyon adımlarını bilmek
  • SAML SSO etkinleştirildiğinde kullanıcı deneyiminin nasıl değiştiğini anlamak

SAML SSO (Security Assertion Markup Language Single Sign-On), kurumsal kullanıcıların mevcut Identity Provider (IdP) hesaplarıyla GitHub’a giriş yapmasını sağlar. GH-100 Domain 2’nin en ağır konularından biridir.

SAML Temel Kavramlar

  • Identity Provider (IdP): Kullanıcının kimliğini doğrulayan sistem. Örnekler: Okta, Azure AD (Entra ID), OneLogin, PingFederate
  • Service Provider (SP): Kimlik doğrulamasını IdP’ye devreden sistem. Burada GitHub
  • Assertion: IdP’nin SP’ye gönderdiği imzalı XML belgesi; kullanıcı hakkında attribute’lar içerir
  • NameID: Kullanıcıyı benzersiz şekilde tanımlayan SAML attribute (genellikle e-posta)

SAML Akışı (SP-initiated)

  1. Kullanıcı GitHub’a erişmeye çalışır
  2. GitHub kullanıcıyı IdP’ye yönlendirir (SAML AuthnRequest)
  3. IdP kullanıcıyı doğrular (mevcut oturum varsa otomatik)
  4. IdP, imzalı SAML Assertion’ı GitHub’a POST eder
  5. GitHub assertion’ı doğrular, kullanıcıyı eşleştirir ve oturum açar

GitHub’da SAML SSO Konfigürasyonu

GHEC için (Org seviyesi):

Organization → Settings → Authentication security
→ Enable SAML single sign-on
→ SSO URL, Issuer, Public certificate (IdP'den alınır)

GHES için (Enterprise seviyesi):

Management Console → Authentication
→ SAML → SSO URL, Issuer, Certificate

GHEC’te SAML SSO önce “enabled” (isteğe bağlı) sonra “enforced” (zorunlu) yapılabilir. Zorunlu yapılmadan önce tüm kullanıcıların IdP hesaplarını bağlaması gerekir.

SAML Attribute Mapping

IdP’den gönderilen attribute’lar GitHub kullanıcı profiliyle eşleştirilir:

SAML AttributeGitHub Alanı
NameID / emailPrimary e-posta
displayName / nameGörünen ad
groupsOrg üyeliği (SCIM entegrasyonuyla)

Dikkat: Personal Access Token’lar

SAML SSO etkinleştirildiğinde, PAT (Personal Access Token) ve SSH key’lerin de SSO için authorize edilmesi gerekir. Authorization yapılmamış token’lar 403 Resource protected by organization SAML enforcement hatası verir.