Geliştiriciler için SAML kimlik doğrulama entegrasyonunu basitleştirin
SAML'in ne olduğunu, SSO'nun nasıl uygulanacağını ve kimlik sağlayıcı (IdP) veya hizmet sağlayıcı (SP) olarak SAML kimlik doğrulamayı entegre etmenin hızlı adımlarını öğrenin.
Tek Oturum Açma (SSO), modern uygulamalar için anahtardır ve SAML, kurumsal kimlik sistemleri arasında güvenli, kullanıcı dostu kimlik doğrulama sağlar. Bu rehber, geliştiriciler ve tasarımcılar için SAML'i net adımlar ve pratik örneklerle basitleştirir; böylece uygulamanızı verimli şekilde hayata geçirebilirsiniz.
SAML kimlik doğrulama ve SAML uygulamaları nedir?
Güvenlik Bildirimi İşaretleme Dili (SAML) XML tabanlı bir standarttır ve kimlik doğrulama ile yetkilendirme verilerini iki önemli oyuncu arasında paylaşmak için kullanılır: Kimlik Sağlayıcı (IdP) ve Hizmet Sağlayıcı (SP). Kuruluşlarda yaygın bir Tek Oturum Açma (SSO) çözümüdür ve kurumsal kullanıcıların tek bir kez oturum açıp birden fazla uygulamaya erişmesini sağlar.
Kimlik Sağlayıcı (IdP) kullanıcı kimlik bilgilerini (kullanıcı adı ve şifre gibi) yönetip doğrulamaktan sorumludur. Bir kullanıcı korumalı bir hizmete erişmek istediğinde, IdP kullanıcının kimliğini doğrular ve bu onayı hizmete gönderir.
- Örnek: Büyük bir şirkette çalıştığını ve çalışan hesaplarını yönetmek için Microsoft Azure AD kullandıklarını düşün. Salesforce'a giriş yapmak istediğinde Azure AD, IdP olarak hareket eder. Kimlik bilgilerini kontrol eder ve Salesforce'a bu hizmeti kullanmaya yetkili olduğunu bildirir.
Hizmet Sağlayıcı (SP) gerçek anlamda kullanıcıların erişmeye çalıştığı uygulama veya servistir. Kimlik doğrulama işini IdP'ye bırakır.
- Örnek: Yukarıdaki senaryoya devam edersek, Salesforce SP'dir. Kimliğini doğrulamak için Microsoft Azure AD'ye (IdP) güvenir. Azure AD kim olduğuna kefil olduktan sonra, Salesforce seni içeri alır.
“SAML uygulaması” denildiğinde genellikle SP kastedilir.
SAML protokolünü kullanarak, hizmetinizi IdP olarak kurabilir (Azure AD / Google Workspace gibi uygulama entegrasyonları için); ya da SP (Salesforce / Slack gibi) olarak kurabilir ve kullanıcılar için SSO sağlayabilirsiniz.
Bir SAML Bildirimi, SAML protokolünün kalbidir. Bu, IdP tarafından oluşturulan ve SP'ye gönderilen dijital bir "not"tur ve şöyle der: "Bu kullanıcının kimliğini doğruladım." Şimdi IdP ve SP için sürecin nasıl işlediğine değineceğiz.
SAML Kimlik Sağlayıcı olarak davranırken
Hizmetin IdP olarak çalıştığında, birden fazla uygulamada SAML kimlik doğrulamasına olanak tanırsın. Bu da kullanıcıların farklı hizmetlere tek bir kurumsal kimlik ile erişmesini sağlar.
Bir IdP için tipik SAML SSO iş akışı şöyledir:
- Kullanıcı, Salesforce gibi bir uygulamaya (SP) erişmeye çalışır.
- Uygulama, kullanıcıyı kimlik doğrulama için IdP'ne yönlendirir.
- Kullanıcı, IdP'nin giri ş sayfasında kimlik bilgilerini girer.
- IdP kimlik bilgilerini kontrol eder.
- Kimlik bilgileri doğrulanırsa, IdP SAML bildirimi SP'ye gönderir.
- SP bildirimi işler, geçerliliğini doğrular ve kullanıcıya erişim izni verir.
SAML Hizmet Sağlayıcı olarak davranırken
Eğer hizmetin SP ise, kullanıcılarına SSO özelliği sunmak için çeşitli kimlik sağlayıcılarla entegre olman gerekir. Bu, farklı kurumlardan veya kiracılardan gelen kurumsal kullanıcıların uygulamana güvenli ve verimli biçimde erişmesini sağlar.
SP başlatmalı SSO iş akışı:
- Kullanıcı, uygulamana giriş yapmaya çalışır.
- Uygulaman, bir SAML isteği oluşturup kullanıcıyı IdP'nin giriş sayfasına yönlendirir.
- Kullanıcı IdP'de oturum açar (veya zaten açık ise bu adımı atlar).
- IdP kullanıcının kimliğini doğrular, onayladıktan sonra kullanıcının bilgilerini SAML bildirimine ekler.
- IdP bildirimi tekrar uygulamana gönderir.
- Hizmetin bildirimi doğrular; geçerliyse kullanıcı uygulamana erişir.
SAML SSO'daki temel parametreler
Başarılı bir SAML SSO entegrasyonu için hem IdP'lerin hem de SP'lerin belirli parametreleri paylaşması gerekir. Temel öğelere bakalım:
IdP'den gelen parametreler
- IdP Varlık Kimliği (Entity ID): SAML iletişimlerinde IdP'yi benzersiz olarak tanımlayan kimlik.
- SSO URL: SP'nin kimlik doğruma için kullanıcıları yönlendirdiği oturum açma adresi.
- X.509 Sertifikası: SAML bildiriminin imzalanması için kullanılan açık anahtar. Bu da bildirimin güvenli ve kimliğinin doğrulanmış olmasını sağlar.
İpucu: Eğer IdP'nin SAML Metadata URL'i varsa, her şey kolaylaşır. Bu URL, gerekli tüm bilgileri (sertifikalar, SSO URL'leri ve IdP Entity ID gibi) içerir. Böylece manuel kopyala-yapıştır hatalarını ve sertifika dosyası güncellemelerini azaltır.
SP'den gelen parametreler
- SP Varlık Kimliği (Entity ID): Tıpkı IdP Entity ID gibi SP'yi benzersiz tanımlar.
- Doğrulama Tüketici Hizmeti (ACS) URL'si: IdP'den gelen SAML bildirimini alacak SP'nin adresi.
- RelayState (İsteğe bağlı): SAML işlemi sırasında veri aktarmak için kullanılır (örneğin, kullanıcının ilk ziyaret etmek istediği adres).
SAML öznitelik eşlemesi ve şifreleme
- NameID Formatı: Kullanıcıyı tanımlayan biçimi tanımlar (ör. e-posta adresi ya da kullanıcı adı).
- SAML Öznitelikleri: IdP'nin SP'ye gönderdiği fazladan kullanıcı bilgileri (ör. roller, e-posta, departman).
- Örnek: IdP'nin imzaladığı SAML bildiriminde
email
([email protected]),role
(admin) vedepartment
(engineering) öznitelikleri yer alıyor olsun. SP,role
ile admin yetkisi atayabilir veyadepartment
ile kullanıcıyı uygun ekibe dahil edebilir. Bu kritik kullanıcı verilerinin elde edilebilmesi için IdP ve SP'nin öznitelik eşleme konusunda anlaşması gerekir. Mesela, IdP "department"ı "team" olarak tanımlayabilir, SP ise bunu "group" olarak bekleyebilir. Doğru eşleme, sorunsuz iletişim sağlar.
- Örnek: IdP'nin imzaladığı SAML bildiriminde
- Şifrelenmiş Bildirimler (İsteğe bağlı): Hassas kimlik doğrulama verisini korumak için SAML bildirimleri şifrelenebilir.
- IdP'nin rolü: Bildirimi SP'nin açık anahtarıyla şifreler.
- SP'nin rolü: Özel anahtarını kullanarak bildirimi çözümler ve kullanıcı ayrıntılarını okur.
Artık bir SAML bağlantısı kurmak için gereken bilgilere sahipsin. Salesforce (SP) ile Azure AD (IdP)'yi entegre etmek için adımlar:
- Azure AD'den IdP Entity ID, SSO URL ve sertifikayı alıp Salesforce'a ekle.
- Salesforce'un SP Entity ID ve ACS URL'sini Azure AD'ye ilet.
Logto, SAML entegrasyonunu kolaylaştırır
Logto, uygulamaların için SAML SSO desteğinde hem IdP hem de SP olarak çalışabilir.
Logto'yu SAML IdP olarak kullanma
Logto, diğer uygulamaların federasyonlu kimlik doğrulaması için kendisine güvenmesini sağlar ve çok faktörlü kimlik doğrulama (MFA) desteğiyle daha güçlü güvenlik sunar.
- Bir Logto Uygulaması Oluştur Logto Konsol > Uygulamalar'a giderek yeni bir SAML uygulaması oluştur.
- SAML Parametrelerini Yapılandır Uygulamanı, Hizmet Sağlayıcı'nın (SP) Doğrulama Tüketici Hizmeti URL'si ve SP Varlık Kimliği ile yapılandır.
- Metadata URL'si Sağla Logto, SP'lerin otomatik olarak gerekli bilgileri (SSO URL'leri, sertifikalar gibi) alabilmesi için bir IdP Metadata URL sağlar.
- Gelişmiş Yapılandırma (İsteğe bağlı)
- Parmak izi ile yeni sertifikalar oluşturabilir ve geçerlilik tarihleri belirleyebilirsin; aynı anda yalnızca bir sertifika aktif olabilir.
- Name ID formatını şirketine göre değiştirebilirsin.
- SAML bildirimi şifrelemeyi etkinleştirmek için SP'nin x509 sertifikasını kopyala/yapıştır ile ekleyebilirsin.
- Öznitelik Eşleme (İsteğe bağlı) Kullanıcı özniteliklerinin Hizmet Sağlayıcılar ile nasıl paylaşılacağını kolayca özelleştir.
Detaylı rehber için resmi dökümana bakabilirsin: SAML Uygulaması
Logto'yu SAML SP olarak kullanma
Logto, SAML veya OIDC protokolüyle tüm kurumsal IdP'lerle de entegre olur. Tek bir giriş sayfası için SP başlatmalı SSO açmak veya IdP başlatmalı SSO yapılandırmak istersen süreç basittir.
- Kurumsal bağlantı oluştur Logto Konsol > Kurumsal SSO'ya gidip yeni bir Kurumsal Bağlantı oluştur. Protokol olarak SAML'i seç.
- SAML parametrelerini yapılandır IdP'nden metadata URL veya metadata XML dosyası sağlayabilirsin. Metadata yoksa manuel yapılandırmaya geçip IdP Entity ID, SSO URL girebilir ve imzalama sertifikasını yükleyebilirsin.
- ACS URL ve SP Entity ID'sini paylaş Entegrasyonu tamamlamak için Logto'nun ACS URL ve SP Entity ID'sini IdP'ne ilet.
- Öznitelik eşlemesi (isteğe bağlı) E-posta veya ad gibi kullanıcı verilerini doğru iletmek için öznitelik eşlemelerini yapılandır.
- Kurumsal e-posta alanları ekle Kurumsal bağlantı için "SSO Deneyimi" sekmesinde bir veya daha fazla e-posta alanı ekle. Böylece sadece bu alanlara sahip kullanıcılar SSO ile giriş yapabilir.
- IdP başlatmalı SSO'yu etkinleştir (isteğe bağlı) Sadece kurumsal müşterilerin ihtiyaç duyarsa etkinleştir. Bu, kullanıcıların uygulamalarına doğrudan IdP paneli üzerinden giriş yapmasını sağlar.
Detaylı rehber için resmi dökümanı ziyaret et: Kurumsal SSO dökümantasyonu.
Son düşünceler
SAML, SSO için standart, güvenli bir yöntem sunar ve kimlik doğrulamayı kolaylaştırır. Logto, ister IdP ister SP olarak kurulsun, süreci basitleştirir. Kullanıcı dostu arayüzüyle ve hem bulut hem de açık kaynak sürümlerini desteklemesi sayesinde SAML entegrasyonunu karmaşıklıktan çıkarır. Sadece birkaç parametreyi yapılandırarak hizmetlerini herhangi bir SAML IdP veya SP'ye bağlayabilir ve kullanıcıların için harika deneyimler sunmaya odaklanabilirsin.