SAML 2.0
SAML 2.0 Nedir?
SAML 2.0, kullanıcının kimliğini SAML 2.0 destekleyen bir kimlik sağlayıcısında (IdP; Microsoft Entra ID, ADFS, Keycloak, Okta gibi) doğrulatan Authentication Providers türüdür. Kullanıcı IdP'nin tek oturum açma adresine yönlendirilir; IdP'nin imzalı SAML yanıtı TR7'de doğrulanır ve kullanıcı bilgileri yanıttaki assertion'dan okunur. TR7 bu akışta hizmet sağlayıcıdır (SP).
Nasıl çalışır?
- IdP'de TR7 için bir uygulama (SP) kaydı oluşturulur; SP Entity ID ve Assertion Consumer Service URL bu kayda yazılır.
- Bu ekranda Provider Type olarak SAML 2.0 seçilir; IdP bilgileri Import Metadata ile ya da elle girilir.
- Profil, erişim akışına Authentication Provider adımı olarak eklenir; kullanıcı IdP'ye yönlendirilir.
- IdP'nin döndürdüğü imzalı yanıt doğrulanır, öznitelikler otomatik eşlemeyle oturuma yazılır ve akış success geçişinden devam eder; doğrulama başarısız olursa fail geçişi işletilir.
Operasyonel En İyi Uygulamalar
- Meta veriyle doldurma. IdP bilgileri elle yazılmak yerine Import Metadata ile doldurulmalıdır.
- İmza doğrulaması açık. Require Signed Assertions ya da Require Signed Response seçeneklerinden en az biri açık kalmalıdır.
- Saat eşitlemesi. TR7 ve IdP'nin saatleri NTP ile eşit tutulmalıdır; Clock Skew Tolerance yalnızca küçük farkları karşılar.
- ACS adresi kayıtlı. IdP'de Assertion Consumer Service URL tam adres (
https://<alan adı><yol>) olarak kayıtlı olmalıdır. - Kilitleme IdP'de. Kilitleme genellikle IdP tarafında yapılır; Lockout Behavior için No Lockout ya da Use Gateway Defaults seçilmelidir.
Nasıl Eklenir?
Yeni bir SAML 2.0 sağlayıcısı, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlarla eklenir:
- Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
- AGS → Authentication → Authentication Providers → Add adımları takip edilir.
- Profil için benzersiz ve açıklayıcı bir isim girilir; Provider Type olarak SAML 2.0 seçilir.
- Import Metadata ile IdP bilgileri doldurulur; SP bilgileri girilir.
Addbutonuna tıklanarak profil eklenir.
Profil Ekleme Formu
AGS → Authentication → Authentication Providers → Add adımları takip edilerek Provider Type alanında SAML 2.0 seçildiğinde form aşağıdaki alanlarla açılır; bu türde Namespace ve Authentication Server alanları bulunmaz.
SAML 2.0 Seçiliyken Form
SAML 2.0 Formunun Devamı
INFO
Provider Name Zorunlu
Profilin adı; listede, akış şemasındaki adım seçiminde, oturum listesinde ve loglarda profili tanımlar. Ad cihazda benzersiz olmalıdır; aynı adla ikinci bir profil kaydedilmez ve Name is used uyarısı görüntülenir. Boş bırakıldığında Required field uyarısı görüntülenir.
INFO
Provider Type Zorunlu
Sağlayıcı türü; bu sayfada SAML 2.0 seçilidir. Tür değiştirildiğinde yalnızca yeni türün alanları görüntülenir ve kaydedilir; tür düzenleme formunda da değiştirilir.
INFO
IdP Single Sign-On URL Zorunlu
Kullanıcının giriş için yönlendirileceği IdP uç noktası (SingleSignOnService; https://idp.example.com/sso/saml gibi).
INFO
IdP Entity ID (Issuer)
SAML yanıtlarında beklenen yayıncı; girildiğinde başka yayıncıdan gelen yanıtlar reddedilir.
INFO
IdP Signing Certificate Zorunlu
IdP'nin imzalarını doğrulamak için kullanılan X.509 sertifikası; çok satırlı alana -----BEGIN CERTIFICATE----- ile başlayan PEM ya da base64 biçiminde yapıştırılır.
INFO
SP Entity ID Zorunlu
Bu erişim servisinin IdP'deki tanımlayıcısı; assertion'ın beklenen hedef kitlesi (audience) olarak da kullanılır.
INFO
Assertion Consumer Service URL Zorunlu Varsayılan: /ags-portal/saml/acs
IdP'nin SAML yanıtını göndereceği adres. Yol girildiğinde adres, isteğin geldiği şema ve alan adıyla tamamlanır; tam adres girildiğinde IdP'ye olduğu gibi bildirilir. Yol kullanılıyorsa erişim servisi kök yolunun altında tutulmalı ve IdP'de tam adres (https://<alan adı><yol>) kayıtlı olmalıdır.
INFO
NameID Format Varsayılan: Unspecified (default)
Kimlik doğrulama isteğinde istenecek NameID biçimi seçilir:
| Seçenek | Anlamı |
|---|---|
| Unspecified (default) | Biçimi IdP belirler; IdP belirli bir biçim istemiyorsa bu seçenek kullanılır. |
| Email Address | Kullanıcı e-posta adresiyle tanımlanır. |
| Persistent | Kullanıcı, IdP'nin bu SP için ürettiği kalıcı ve değişmeyen bir kimlikle tanımlanır. |
| Transient | Kullanıcı her oturumda değişen geçici bir kimlikle tanımlanır. |
INFO
Require Signed Assertions Varsayılan: Enabled
Açıkken imzasız assertion içeren yanıtlar reddedilir.
INFO
Require Signed Response Varsayılan: Disabled
Açıkken imzasız SAML yanıt belgesi reddedilir. Bazı IdP'ler (Keycloak'un varsayılanı gibi) assertion yerine yanıtı imzalar; bu durumda bu seçenek açılır. İki imza seçeneğinden en az biri açık kalmalıdır.
INFO
Clock Skew Tolerance Varsayılan: 5 minutes
Assertion zaman pencereleri doğrulanırken erişim servisi ile IdP arasında hoş görülecek saat farkı; değer ve birim (saniye ya da dakika) olarak girilir, 0 saniye ile 10 dakika arasında bir süre kabul edilir.
INFO
Force Re-authentication Varsayılan: Disabled
Açıkken IdP'de oturum açık olsa da kullanıcıdan yeniden kimlik doğrulaması istenir.
INFO
Authentication Request Binding Varsayılan: HTTP Redirect (default)
Kimlik doğrulama isteğinin IdP'ye nasıl iletileceği seçilir:
| Seçenek | Anlamı |
|---|---|
| HTTP Redirect (default) | İstek adres satırında, yönlendirmeyle iletilir. |
| HTTP POST | İstek otomatik gönderilen bir form içinde iletilir; büyük istekler ya da yalnızca POST kabul eden IdP'ler için. |
User Attribute Mapping
INFO
Custom User Attribute Mapping Varsayılan: No customisation
Sağlayıcı yanıtındaki alanların oturum özniteliklerine nasıl eşleneceği yönetilir. Alanın solundaki bilgi çubuğu, bu tür için otomatik eşlenen alan sayısını gösterir: 7 fields are filled in automatically for this provider. Çubuktaki ok simgesine tıklandığında otomatik eşlenen 7 satır ve her birinin JSONata ifadesi listelenir.
Sağdaki anahtar Customised konumuna alındığında AGS Attribute ve Source Attribute tablosu görüntülenir: sol kolonda oturum özniteliği (öneri listesiyle), sağ kolonda sağlayıcı yanıtı üzerinde değerlendirilen JSONata ifadesi girilir. Anahtar açıldığında çubuğun sağında satır ekleyen + Add bağlantısı belirir. Otomatik satırla aynı özniteliği hedefleyen özel satır otomatik olanı geçersiz kılar (replaced below rozeti) ve bilgi çubuğunun metni, kaç otomatik satırın değiştirildiğini de söyleyen … fields are filled in automatically; you replace … of them biçimine döner. AGS'nin standart öznitelikleri dışında bir ad girildiğinde bu öznitelik vService'te özel kullanıcı alanı olarak tanımlanır; _ ile başlayan adlar gizli alan sayılır ve özel kullanıcı alanı üretmez.
Lockout Configuration
INFO
Lockout Behavior Varsayılan: Use gateway defaults
Bu sağlayıcıdaki başarısız denemelerin hangi kilitleme politikalarıyla sayılacağı seçilir:
| Seçenek | Anlamı |
|---|---|
| Use Gateway Defaults | vService'in Default Lockout Policies listesindeki politikalar kullanılır. |
| Replace Defaults | Yalnızca Lockout Policies alanında seçilen politikalar kullanılır. |
| Add to Defaults | vService'in varsayılan politikalarına ek olarak Lockout Policies alanında seçilenler de kullanılır. |
| No Lockout | Bu sağlayıcıda başarısız denemeler sayılmaz, kilitleme yapılmaz. |
Lockout Policies
Replace Defaults ya da Add to Defaults seçiliyken görüntülenir; Account Lockout Policies ekranındaki hazır ve tanımlı politikalar seçilir.
Import Metadata
Formdaki Import Metadata butonu, Metadata XML alanlı Import identity provider metadata penceresini açar. Yapıştırılan meta veriden şu alanlar doldurulur: IdP Single Sign-On URL (önce HTTP-Redirect bağlaması, yoksa HTTP-POST, o da yoksa listedeki ilk giriş), meta veride entityID varsa IdP Entity ID (Issuer), IdP Signing Certificate (imzalama sertifikaları PEM olarak) ve IdP'nin ilk NameID biçimi listedeki dört seçenekten biriyse NameID Format; Authentication Request Binding değişmez.
İşlem tarayıcıda yapılır, cihazdan ağ isteği çıkmaz. Başarı SAML fields were filled from the identity provider metadata iletisiyle bildirilir; ayrıştırılamayan içerikte pencere açık kalır.
