SAMLAssertion politikaları

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Ne?

  • Gelen kimlik doğrulaması ve yetkilendirme: SAML Onaylama İşlemini Doğrulama politika
    SAML politika türü, API proxy'lerinin gelen SOAP istekleri. SAML politikası, aşağıdakileri içeren gelen iletileri doğrular. dijital olarak imzalanmış SAML onayı işlemi, geçersizlerse bunları reddeder ve bilgileri daha da doğrulamak için ek politikalara veya arka uç hizmetlerinin kendisine izin verme söz konusu e-postadır.
  • Giden jeton oluşturma: SAML Onaylama politikası oluşturma
    SAML politika türü, API proxy'lerinin SAML onayları giden XML isteklerine ekleyebilmesini sağlar. Bu onaylar, daha fazla güvenlik uygulamak amacıyla arka uç hizmetlerinin etkinleştirilmesi için kullanılabilir kimlik doğrulama ve yetkilendirme için işleniyor.

Örnekler

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ı doğrulama


Öğe referansı

SAML Onayı Oluştur

Alan adı Açıklama
name özellik Politika örneğinin adı. Ad, kurum içinde tutmaktır. Adda kullanabileceğiniz karakterler şununla sınırlıdır: A-Z0-9._\-$ %. Ancak Yönetim Kullanıcı Arayüzünde aşağıdakiler gibi ek kısıtlamalar uygulanır: Alfanümerik olmayan karakterler otomatik olarak kaldırılır.
ignoreContentType özellik true veya false olarak ayarlanabilen bir boole değeri. Varsayılan olarak Mesajın içerik türü XML değilse onay işlemi oluşturulmaz İçerik Türü. true değerine ayarlanırsa mesaj XML olarak işlenir. her ne olursa olsun.
Issuer
Kimlik sağlayıcının benzersiz tanımlayıcısı. İsteğe bağlı ref özelliği mevcutsa, düzenleyen kurumun değeri, Veriye Dayalı İlişkilendirme'ye göre belirtilen değişken. İsteğe bağlı ref özelliği yoksa Veren'in değeri kullanılır.
KeyStore
Özel anahtarı ve özel anahtarın takma adını içeren KeyStore'un adı SAML onaylarını dijital olarak imzalamak için kullanılır.
OutputVariable
FlowVariable
Message Politikanın hedefi. Geçerli değerler message, request, ve response. message değerine ayarlanırsa politika koşullu olarak Politikanın ek noktasına göre ileti nesnesini alır. Şuna eklendiğinde: İstek Akışı'na eklendiğinde, politika, istekte bulunmak üzere message politikasını çözümler ve yanıt Akışı'nı ihlal ederse politika, message yanıtı yanıtını verir.
XPath Giden XML dokümanında yer alan öğeyi belirten XPath ifadesi bu politika, SAML onayını ekler.
SignatureAlgorithm SHA1 veya SHA256
Subject
SAML onayının konusunun benzersiz tanımlayıcısı. İsteğe bağlı ref özelliği mevcutsa Konu değeri çalışma zamanını ayarlayabilirsiniz. İsteğe bağlı ref özelliği Subject (Konu) değeri kullanılır.
Template
Bu kod varsa onay, bu şablonu çalıştırarak üretilir ve {} ile gösterilen her şey karşılık gelen değişkenle, sonra da dijital olarak ve sonucu imzalamasıdır. Şablon,assignMessage politika kurallarına göre işlenir. Bkz. Ödev Mesaj politikası

SAML Onaylama İşlemini Doğrulama

Alan adı Açıklama
name özellik
Politika örneğinin adı. Ad, kuruluşta benzersiz olmalıdır. Adda kullanabileceğiniz karakterler şununla sınırlıdır: A-Z0-9._\-$ %. Ancak Yönetim Kullanıcı Arayüzü'nde, otomatik olarak izleme gibi Alfanümerik olmayan karakterleri kaldırmalıdır.
ignoreContentType özellik true veya false olarak ayarlanabilen bir boole değeri. Varsayılan olarak Mesajın içerik türü XML değilse onay işlemi oluşturulmaz İçerik Türü. true değerine ayarlanırsa mesaj XML olarak işlenir. her ne olursa olsun.
Source Politikanın hedefi. Geçerli değerler message, request, ve response. message değerine ayarlanırsa politika koşullu olarak Politikanın ek noktasına göre ileti nesnesini alır. Şuna eklendiğinde: İstek Akışı'na eklendiğinde, politika, istekte bulunmak üzere message politikasını çözümler ve yanıt Akışı'nı ihlal ederse politika, message yanıtı yanıtını verir.
XPath
Kullanımdan kaldırıldı. Source alt öğesi. Tekliflerinizi otomatikleştirmek ve optimize etmek için AssertionXPath ve SignedElementXPath.
AssertionXPath
Source alt öğesi. Öğeyi Politikanın, SAML onayını çıkarabileceği gelen XML belgesidir.
SignedElementXPath
Source alt öğesi. Öğeyi gelen XML dokümanıdır. Bu AssertionXPath öğesinin XPath'inden farklı veya aynı olabilir.
TrustStore
Doğrulama için kullanılan güvenilir X.509 sertifikalarını içeren TrustStore'un adı dijital imzaları kullandığınızdan emin olun.
RemoveAssertion
true veya false olarak ayarlanabilen bir boole değeri. Zaman true, SAML onayı, istek mesajından önce kaldırılacak. Mesaj arka uç hizmetine yönlendirilir.

Kullanım notları

Güvenlik Onayı Biçimlendirme Dili (SAML) spesifikasyonu, uygulamaların kimlik doğrulama için XML biçimli bilgiler alışverişinde bulunmasını ve yetkilendirme.

"Güvenlik onayı" bir uygulamanın, uygulama kullanıcılarının özelliğini açıklayan güvenilir jetondur. başka bir katılımcıyı etkilemez. Güvenlik onayları, iki kullanıcı tarafından yönetilir ve kullanılır. Varlık türleri:

  • Kimlik sağlayıcılar: Katılımcılar adına güvenlik onayı oluşturma
  • Servis sağlayıcılar: Kimlikle güvenilir ilişkilerle güvenlik onaylarını doğrulama sağlayıcılar

API platformu, kimlik sağlayıcı ve servis sağlayıcı işlevi görebilir. Görev onaylayarak ve bunları istek mesajlarına ekleyerek, onayları arka uç hizmetleri tarafından işlenmek üzere kullanılabilir. Servis sağlayıcı rolünü üstlenen gelen istek mesajlarındaki onayları doğrulama.

SAML politikası türü, SAML Core'un 2.0 sürümüyle eşleşen SAML onaylarını destekler WS Güvenliği SAML Jeton Profili spesifikasyonunun 1.0 Sürümü ve Özelliği.

SAML Onayı Oluştur

Politika işleme:

  1. Mesaj XML değilse ve YoksayContentType true olarak ayarlanmamışsa bir hata oluştu.
  2. "Şablon" ayarlandıktan sonra şablonu Ataması politikasında açıklandığı şekilde işleyin. Eksik değişken varsa ve YoksayUnresolvedVariables ayarlanmamışsa bir hata kaydı oluşturun.
  3. "Şablon" ayarlanmazsa Konu ve Düzenleyen parametreleri veya referansları.
  4. Belirtilen anahtarı kullanarak onaylamayı imzalayın.
  5. Onaylamayı, belirtilen XPath'deki iletiye ekleyin.

SAML Onaylama İşlemini Doğrulama

Politika işleme:

  1. Politika, istek medya türünün XML olduğunu doğrulamak için gelen iletiyi kontrol eder. içerik türünün şu formatlara uygun olup olmadığını kontrol ederek: text/(.*+)?xml veya application/(.*+)?xml. Medya türü XML değilse ve <IgnoreContentType> ayarlanmazsa politika hata verir.
  2. Politika, XML'i ayrıştırır. Ayrıştırma işlemi başarısız olursa bir hata oluşur.
  3. Politika, ilgili XPath'leri kullanarak imzalı öğeyi ve onay işlemini ayıklar belirtilmiş (<SignedElementXPath> ve <AssertionXPath>). Bu yollardan herhangi biri bir öğe döndürmezse politika bir hata verir.
  4. Politika, Onaylama işleminin imzalı öğe ile aynı olduğunu doğrular veya imzalı öğenin bir alt öğesidir. Bu doğru değilse politika bir hata oluşturur.
  5. <NotBefore> veya <NotOnOrAfter> öğesi varsa politika, mevcut zaman damgasını aşağıdaki adımları uygulayın: SAML Core bölümü 2.5.1'de açıklandığı gibi.
  6. Politika, "Koşullar"ın işlenmesi için tüm ek kuralları uygular açıklandığı gibi SAML Core bölümü 2.5.1.1'de mevcuttur.
  7. Bu politika XML dijital imzasını doğrulamak için <TrustStore> ve <ValidateSigner> (yukarıda açıklandığı gibi). Doğrulama başarısız olursa politika bir hata oluşturur.

Politika hata bildirmeden tamamlandıktan sonra proxy'nin geliştiricisi, şunlardan biri:

  • Onaylamadaki dijital imza geçerli ve güvenilir bir CA tarafından imzalandı
  • Onaylama, mevcut dönem için geçerlidir
  • Onaylamanın konusu ve yayıncısı çıkartılacak ve akış değişkenlerinde ayarlanacaktır. Evet Bu değerlerin ek kimlik doğrulama için kullanılması konusunda diğer politikaların sorumluluğunda (örneğin, veya doğrulama için konu adının geçerli olup olmadığını kontrol etmek ya da bir hedef sisteme iletmek.

Onaylamanın ham XML'sini ayrıştırmak için ExtractVariables gibi diğer politikalar kullanılabilir kullanabilirsiniz.


Akış değişkenleri

SAML onayında belirtilebilecek birçok bilgi vardır. SAML onayın kendisi ExtractVariables politikası ve diğer mekanizmaları hakkında daha karmaşık doğrulamalar yapabilirsiniz.

Değişken Açıklama
saml.id SAML onay kimliği
saml.issuer "Düzenleyen" yerel XML türünden bir dizeye dönüştürülen onayın
saml.subject "Konu" yerel XML türünden bir dizeye dönüştürülen onayın
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 Konunun onay veri adresi
saml.scdinresponse Yanıttaki konu onay verileri
saml.scdrcpt Konu onayı verisi alıcısı
saml.authnSnooa AuthnStatement Oturumu NotOnOrAfter
saml.authnContextClassRef AuthnStatement AuthnContextClassRef
saml.authnInstant AuthnStatement AuthInstant
saml.authnSessionIndex AuthnStatement Oturum Dizini

Hata referansı

Bu bölümde, döndürülen hata kodları ve hata mesajları açıklanmaktadır ve bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata değişkenleri. Hata kuralları geliştirirken bu bilgilerin farkında olmanız önemlidir. hoşuma gitmesi için bir fırsattır. Daha fazla bilgi için Bilmeniz gerekenler Politika hataları ve Kullanım sorun.

Dağıtım hataları

Bu politikayı içeren bir proxy dağıttığınızda bu hatalar oluşabilir.

Hata adı Neden Düzelt
SourceNotConfigured Aşağıdaki "SAML Onay Doğrulaması" öğelerinden biri veya daha fazlası politika tanımlanmadı veya boş: <Source>, <XPath>, <Namespaces>, <Namespace>.
TrustStoreNotConfigured <TrustStore> öğesi boşsa veya ValidateSAMLAssertion politikasını kontrol ederseniz API proxy'sinin dağıtımı başarısız olur. Geçerli bir Trust Store gerekli.
NullKeyStoreAlias <Alias> alt öğesi boşsa veya <Keystore> içinde belirtilmemişse öğesi oluşturun, ardından API'nin dağıtımına proxy başarısız olur. Geçerli bir Anahtar Deposu takma adı gerekir.
NullKeyStore <Name> alt öğesi boşsa veya <Keystore> içinde belirtilmemişse öğesi oluşturmak, ardından API dağıtımının proxy başarısız olur. Geçerli bir Anahtar Deposu adı gerekli.
NullIssuer <Issuer> öğesi boşsa veya SAML Oluştur bölümünde belirtilmemişse Onay politikası yoksa API proxy'sinin dağıtımı başarısız olur. CEVAP geçerli <Issuer> değeri gereklidir.

Hata değişkenleri

Bu değişkenler, çalışma zamanı hatası oluştuğunda ayarlanır. Daha fazla bilgi için Bilmeniz gerekenler hakkında daha fazla bilgi edinin.

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 öneki ValidateSAMLAssertion GenerateSAMLAssertion.failed = true

Örnek hata yanıtı

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

Örnek hata kuralı

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

İlgili konular

Değişkenleri ayıklama: Değişkenleri Çıkarın politika