* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
**Security Assertion Markup Language (SAML)**, kimlik sağlayıcıların (IdP) yetkilendirme kimlik bilgilerini hizmet sağlayıcılara (SP) göndermek için kullanılmasını sağlayarak tek oturum açma (SSO) işlemini kolaylaştırır. Bu yaklaşım, tek bir kimlik bilgisi kümesinin birden çok web sitesinde kullanılmasına izin vererek çoklu oturum açma yönetimini basitleştirir. Kimlik sağlayıcılar ve hizmet sağlayıcılar arasında standartlaştırılmış iletişim için XML'yi kullanır ve kullanıcı kimliğinin kimlik doğrulamasını hizmet yetkilendirmesiyle bağlar.
**Daha fazla ayrıntı için [https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/)** adresindeki tam yazıya bakın. İşte bir özet:
Bir kullanıcının [https://shibdemo-sp1.test.edu/secure/](https://shibdemo-sp1.test.edu/secure/) adresindeki güvenli bir kaynağa erişim isteğini düşünelim. SP, kimlik doğrulamasının eksik olduğunu tespit eder ve bir SAML İsteği oluşturur:
SAML İsteği oluşturulduktan sonra, SP, tarayıcıyı SAML İsteğini HTTP yanıtının **Location** başlığında kodlanmış olarak içeren IdP'ye yönlendiren bir **302 yönlendirmesi** ile yanıt verir. **RelayState** parametresi, işlem boyunca durum bilgisini korur ve SP, SAML Yanıtını aldığında başlangıç kaynağı isteğini tanır. **SAMLRequest** parametresi, ham XML parçacığının sıkıştırılmış ve kodlanmış bir sürümüdür ve Deflate sıkıştırma ve base64 kodlama kullanır.
[İşte tam bir SAML yanıtı](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/) bulabilirsiniz. Yanıtın temel bileşenleri şunları içerir:
- **ds:Signature**: Bu bölüm, bir XML İmzasıdır ve beyanın yayıncısının bütünlüğünü ve otantikliğini sağlar. Örnekteki SAML yanıtı, mesaj için bir `ds:Signature` öğesi ve beyan için başka bir `ds:Signature` öğesi içerir.
- **saml:Assertion**: Bu bölüm, kullanıcının kimlik bilgilerini ve olası diğer öznitelikleri içerir.
- **saml:Subject**: Beyanda yer alan tüm ifadelerin temel konusunu belirtir.
- **saml:StatusCode**: İlgili isteğe yanıt olarak işlemin durumunu temsil eder.
- **saml:Conditions**: Beyanın geçerlilik zamanlaması ve belirtilen Hizmet Sağlayıcı gibi koşulları ayrıntılandırır.
- **saml:AuthnStatement**: Beyanın konusunun IdP tarafından kimlik doğrulandığını onaylar.
- **saml:AttributeStatement**: Beyanın konusunu tanımlayan öznitelikleri içerir.
SAML Yanıtını takiben, süreç IdP'den bir 302 yönlendirmesi içerir. Bu, Hizmet Sağlayıcının Assertion Consumer Service (ACS) URL'sine bir POST isteği yapılmasına yol açar. POST isteği, `RelayState` ve `SAMLResponse` parametrelerini içerir. ACS, SAML Yanıtını işlemek ve doğrulamakla sorumludur.
POST isteği alındıktan ve SAML Yanıtı doğrulandıktan sonra, kullanıcının başlangıçta istediği korumalı kaynağa erişim sağlanır. Bu, `/secure/` uç noktasına bir `GET` isteği ve başarılı erişimi gösteren bir `200 OK` yanıtı ile gösterilir.
XML İmzaları çok yönlüdür ve bir XML ağacının tamamını veya belirli öğelerini imzalayabilir. Bunlar yalnızca Yanıt öğelerine değil, herhangi bir XML Nesnesine uygulanabilir. Aşağıda XML İmzalarının temel türleri bulunmaktadır:
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
* Şirketinizi HackTricks'te **reklamınızı yapmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).