SAMLAssertion politikaları

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Ne

  • Gelen kimlik doğrulama ve yetkilendirme: SAML Onay politikasını doğrulayın
    SAML politika türü, API proxy'lerinin gelen SOAP isteklerine eklenen SAML onaylarını doğrulamasını sağlar. SAML politikası, dijital olarak imzalanmış bir SAML onayı içeren gelen mesajları doğrular, geçersizse reddeder ve onaylamadaki bilgileri daha da doğrulamak için ek politikalara veya arka uç hizmetlerinin kendisine izin veren değişkenleri ayarlar.
  • Giden jeton oluşturma: SAML Onay politikası oluşturma
    SAML politika türü, API proxy'lerinin giden XML isteklerine SAML onayları eklemesine olanak tanır. Ardından bu onaylar, arka uç hizmetlerinin kimlik doğrulama ve yetkilendirmeye yönelik ek güvenlik işlemleri uygulaması için kullanılabilir.

Sana Özel

SAML onayı oluştur

<GenerateSAMLAssertion name="SAML" ignoreContentType="false">
  <CanonicalizationAlgorithm />
  <Issuer ref="reference">Issuer name</Issuer>
  <KeyStore>
    <Name ref="reference">keystorename</Name>
    <Alias ref="reference">alias</Alias>
  </KeyStore>
  <OutputVariable>
    <FlowVariable>assertion.content</FlowVariable>
    <Message name="request">
      <Namespaces>
        <Namespace prefix="test">http://www.example.com/test</Namespace>
      </Namespaces>
      <XPath>/envelope/header</XPath>
    </Message>
  </OutputVariable>
  <SignatureAlgorithm />
  <Subject ref="reference">Subject name</Subject>
  <Template ignoreUnresolvedVariables="false">
    <!-- A lot of XML goes here, in CDATA, with {} around
         each variable -->
  </Template>
</GenerateSAMLAssertion>

SAML onayı oluşturma

SAML onayını doğrulama

<ValidateSAMLAssertion name="SAML" ignoreContentType="false">
  <Source name="request">
    <Namespaces>
      <Namespace prefix='soap'>http://schemas.xmlsoap.org/soap/envelope/</Namespace>
      <Namespace prefix='wsse'>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd</Namespace>
      <Namespace prefix='saml'>urn:oasis:names:tc:SAML:2.0:assertion</Namespace>
    </Namespaces>
    <AssertionXPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</AssertionXPath>
    <SignedElementXPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</SignedElementXPath>
  </Source>
  <TrustStore>TrustStoreName</TrustStore>
  <RemoveAssertion>false</RemoveAssertion>
</ValidateSAMLAssertion>

SAML onayını doğrulama


Öğe referansı

SAML Onayı Oluştur

Alan adı Açıklama
name özellik Politika örneğinin adı. Ad, kuruluşta benzersiz olmalıdır. Adda kullanabileceğiniz karakterler şunlarla sınırlıdır: A-Z0-9._\-$ %. Bununla birlikte, Yönetim kullanıcı arayüzü, alfanümerik olmayan karakterlerin otomatik olarak kaldırılması gibi ek kısıtlamalar uygular.
ignoreContentType özellik true veya false olarak ayarlanabilen bir boole. Mesajın içerik türü bir XML İçerik Türü değilse onay varsayılan olarak oluşturulmaz. Bu politika true olarak ayarlanırsa mesaj, Content-type ne olursa olsun XML olarak değerlendirilir.
Issuer
Kimlik sağlayıcının benzersiz tanımlayıcısı. İsteğe bağlı ref özelliği mevcutsa Düzenleyen'in değeri, çalışma zamanında belirtilen değişkene göre atanır. İsteğe bağlı ref özelliği mevcut değilse Veren kuruluşun değeri kullanılır.
KeyStore
Özel anahtarı ve SAML onaylarını dijital olarak imzalamak için kullanılan özel anahtarın takma adını içeren KeyStore'un adı.
OutputVariable
FlowVariable
Message Politikanın hedefi. Geçerli değerler message, request ve response'dir. message değerine ayarlandığında politika, mesaj nesnesini politikanın ek noktasına göre koşullu olarak alır. Politika, istek Akışına eklendiğinde message talimatını istek akışı için çözümler, yanıt Akışına eklendiğinde ise yanıt vermek için message çözümlenir.
XPath Politikanın SAML onayını ekleyeceği giden XML belgesindeki öğeyi belirten bir XPath ifadesi.
SignatureAlgorithm SHA1 veya SHA256
Subject
SAML onayının konusunun benzersiz tanımlayıcısıdır. İsteğe bağlı ref özelliği mevcutsa Subject değeri, çalışma zamanında belirtilen değişkene göre atanır. İsteğe bağlı ref özelliği mevcutsa Konu değeri kullanılır.
Template
Varsa bu şablon çalıştırılarak, {} ile belirtilen her şey karşılık gelen değişkenle değiştirilerek onay oluşturulur ve ardından sonucu dijital olarak imzalar. Şablon, AttributionMessage politika kurallarına göre işlenir. Mesaj politikası atama başlıklı makaleyi inceleyin.

SAML Onayını Doğrulama

Alan adı Açıklama
name özellik
Politika örneğinin adı. Ad, kuruluşta benzersiz olmalıdır. Adda kullanabileceğiniz karakterler şunlarla sınırlıdır: A-Z0-9._\-$ %. Bununla birlikte, Yönetim Kullanıcı Arayüzü, alfanümerik olmayan karakterlerin otomatik olarak kaldırılması gibi ek kısıtlamalar uygular.
ignoreContentType özellik true veya false olarak ayarlanabilen bir boole. Mesajın içerik türü bir XML İçerik Türü değilse onay varsayılan olarak oluşturulmaz. Bu politika true olarak ayarlanırsa mesaj, Content-type ne olursa olsun XML olarak değerlendirilir.
Source Politikanın hedefi. Geçerli değerler message, request ve response'dir. message değerine ayarlandığında politika, mesaj nesnesini politikanın ek noktasına göre koşullu olarak alır. Politika, istek Akışına eklendiğinde message talimatını istek akışı için çözümler, yanıt Akışına eklendiğinde ise yanıt vermek için message çözümlenir.
XPath
Kullanımdan kaldırıldı. Source alt öğesi. AssertionXPath ve SignedElementXPath kullanın.
AssertionXPath
Source alt öğesi. Politikanın, SAML onayından ayıklayabileceği öğeyi gösteren, gelen XML belgesinde bulunan bir XPath ifadesi.
SignedElementXPath
Source alt öğesi. Politikanın imzalı öğeyi çıkarabileceği gelen XML belgesindeki öğeyi belirten bir XPath ifadesi. Bu, AssertionXPath için XPath ile farklı veya aynı olabilir.
TrustStore
SAML onaylarında dijital imzaları doğrulamak için kullanılan güvenilir X.509 sertifikalarını içeren TrustStore'un adı.
RemoveAssertion
true veya false olarak ayarlanabilen bir boole. true olduğunda, mesaj arka uç hizmetine yönlendirilmeden önce istek mesajından SAML onayı kaldırılır.

Kullanım notları

Güvenlik Onayı Biçimlendirme Dili (SAML) spesifikasyonu, uygulamaların kimlik doğrulama ve yetkilendirme için XML biçimindeki bilgileri alışverişinde bulunmasına olanak tanıyan biçimleri ve protokolleri tanımlar.

"Güvenlik onayı"; bir uygulamanın, uygulama kullanıcısının veya işlemdeki başka bir katılımcının özelliğini tanımlayan güvenilir bir jetondur. Güvenlik onayları, iki tür varlık tarafından yönetilir ve tüketilir:

  • Kimlik sağlayıcılar: Katılımcılar adına güvenlik onayları oluşturma
  • Servis sağlayıcılar: Kimlik sağlayıcılarla kurulan güvenilir ilişkiler aracılığıyla güvenlik onaylarını doğrulayın

API platformu bir kimlik sağlayıcı ve servis sağlayıcı işlevi görebilir. Bu API, onaylar oluşturup bunları mesaj isteğine ekleyerek bir kimlik sağlayıcı görevi görür. Böylece bu onaylar, arka uç hizmetleri tarafından işlenmeye hazır olur. Gelen istek mesajlarındaki onayları doğrulayarak servis sağlayıcı görevi görür.

SAML politika türü, SAML Temel Spesifikasyonu'nun 2.0 sürümüyle ve WS Güvenlik SAML Jetonu Profili spesifikasyonunun 1.0 sürümüyle eşleşen SAML onaylamalarını destekler.

SAML Onayı Oluştur

Politika işleme:

  1. Mesaj XML değilse ve ignoreContentType özelliği true değerine ayarlanmamışsa hata bildiriminde bulunun.
  2. "Template" ayarlandıysa şablonu, Ata-Message politikasında açıklandığı şekilde işleyin. Herhangi bir değişken eksikse ve GenderUnresolvedVariables ayarlanmadıysa bir hata bildiriminde bulunun.
  3. "Template" ayarlanmamışsa Konu ve Düzenleyen parametrelerinin değerlerini veya referanslarını içeren bir onay oluşturun.
  4. Belirtilen anahtarı kullanarak onayı imzalayın.
  5. Onayı, belirtilen XPath'deki mesaja ekleyin.

SAML Onayını Doğrulama

Politika işleme:

  1. Politika, içerik türünün text/(.*+)?xml veya application/(.*+)?xml biçimleriyle eşleşip eşleşmediğini kontrol ederek isteğin medya türünün XML olduğunu doğrulamak için gelen mesajı kontrol eder. Medya türü XML değilse ve <IgnoreContentType> ayarlanmamışsa politika hata verir.
  2. Politika, XML'i ayrıştırır. Ayrıştırma başarısız olursa hata oluşur.
  3. Politika, belirtilen ilgili XPath'leri (<SignedElementXPath> ve <AssertionXPath>) kullanarak imzalı öğeyi ve onayı çıkarır. Bu yollardan herhangi biri bir öğe döndürmezse politika hata verir.
  4. Politika, Onaylama'nın imzalanmış öğeyle aynı veya imzalanmış öğenin alt öğesi olduğunu doğrular. Bu doğru değilse politika hata verir.
  5. Onaylamada <NotBefore> veya <NotOnOrAfter> öğelerinden biri varsa politika, SAML Core bölümü 2.5.1'de açıklandığı gibi mevcut zaman damgasını bu değerlerle karşılaştırarak kontrol eder.
  6. Politika, SAML Core bölümü 2.5.1.1'de açıklandığı gibi, "Koşullar"ın işlenmesiyle ilgili tüm ek kuralları uygular.
  7. Politika, yukarıda açıklandığı gibi <TrustStore> ve <ValidateSigner> değerlerini kullanarak XML dijital imzasını doğrular. Doğrulama başarısız olursa politika hata verir.

Politika hata bildirmeden tamamlandıktan sonra proxy'nin geliştiricisi aşağıdakilerden emin olabilir:

  • Onaydaki dijital imza geçerli ve güvenilir bir CA tarafından imzalanmış
  • Onay, geçerli dönem için geçerlidir
  • Onayın konusu ve vereni ayıklanır ve akış değişkenlerinde ayarlanır. Bu değerlerin ek kimlik doğrulama işlemlerinde (ör. konu adının geçerli olup olmadığının kontrol edilmesi veya doğrulama amacıyla bir hedef sisteme iletilmesi) için kullanılması diğer politikaların sorumluluğundadır.

Daha karmaşık doğrulama için onaylamanın ham XML'sini ayrıştırmak amacıyla ExtractVariables gibi diğer politikalar kullanılabilir.


Akış değişkenleri

SAML onayında belirtilebilecek birçok bilgi vardır. SAML onayının kendisi, daha karmaşık doğrulamaları uygulamak için ExtractVariables politikası ve diğer mekanizmalar kullanılarak ayrıştırılabilen bir XML'dir.

Değişken Açıklama
saml.id SAML onay kimliği
saml.issuer Onayın "Düzenleyen"i, yerel XML türünden bir dizeye dönüştürülmüştür
saml.subject Onayın "Konu" öğesi, yerel XML türünden bir dizeye dönüştürülmüştür
saml.valid Geçerlilik kontrolünün sonucuna göre doğru veya yanlış değerini döndürür
saml.issueInstant IssueInstant
saml.subjectFormat Konu biçimi
saml.scmethod Konu onay yöntemi
saml.scdaddress Konu onayı veri adresi
saml.scdinresponse Yanıtta, konu onay verileri
saml.scdrcpt Konu onayı veri alıcısı
saml.authnSnooa AuthnStatement SessionNotOnOrAfter
saml.authnContextClassRef AuthnStatement AuthnContextClassRef
saml.authnInstant AuthnStatement AuthInstant
saml.authnSessionIndex AuthnStatement Oturum Dizini

Hata referansı

Bu bölümde, bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.

Dağıtım hataları

Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda ortaya çıkabilir.

Hata adı Neden Düzelt
SourceNotConfigured SAML Onaylama Politikası'nın şu öğelerinden biri veya daha fazlası tanımlı değil veya boş: <Source>, <XPath>, <Namespaces>, <Namespace>.
TrustStoreNotConfigured <TrustStore> öğesi boşsa veya ValidateSAMLAssertion politikasında belirtilmemişse API proxy'sinin dağıtımı başarısız olur. Geçerli bir Trust Store gereklidir.
NullKeyStoreAlias <Alias> alt öğesi boşsa veya SAML Onaylama Politikası'nın <Keystore> öğesinde belirtilmemişse API proxy'sinin dağıtımı başarısız olur. Geçerli bir Anahtar Deposu takma adı gereklidir.
NullKeyStore <Name> alt öğesi boşsa veya GenerateSAMLAssertion politikasının <Keystore> öğesinde belirtilmemişse API proxy'sinin dağıtımı başarısız olur. Geçerli bir anahtar deposu adı gerekli.
NullIssuer <Issuer> öğesi boşsa veya SAML Onaylama Politikası'nda belirtilmemişse API proxy'sinin dağıtımı başarısız olur. Geçerli bir <Issuer> değeri gereklidir.

Hata değişkenleri

Bu değişkenler, bir çalışma zamanı hatası oluştuğunda ayarlanır. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler bölümüne bakın.

Değişkenler Konum Örnek
fault.name="fault_name" fault_name, hatanın adıdır. Hata adı, hata kodunun son kısmıdır. fault.name = "InvalidMediaTpe"
GenerateSAMLAssertion.failed Doğrulama SAML onay politikası yapılandırması için hata ön eki ValidateSAMLAssertion şeklindedir. GenerateSAMLAssertion.failed = true

Örnek hata yanıtı

{
  "fault": {
    "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type",
    "detail": {
      "errorcode": "steps.saml.generate.InvalidMediaTpe"
    }
  }
}

Hata kuralı örneği

<FaultRules>
    <FaultRule name="invalid_saml_rule">
        <Step>
            <Name>invalid-saml</Name>
        </Step>
        <Condition>(GenerateSAMLAssertion.failed = "true")</Condition>
    </FaultRule>
</FaultRules>

İlgili konular

Değişkenleri çıkarma: Değişkenleri Ayıklama politikası