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:
- Mesaj XML değilse ve YoksayContentType
true
olarak ayarlanmamışsa bir hata oluştu. - "Ş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.
- "Şablon" ayarlanmazsa Konu ve Düzenleyen parametreleri veya referansları.
- Belirtilen anahtarı kullanarak onaylamayı imzalayın.
- Onaylamayı, belirtilen XPath'deki iletiye ekleyin.
SAML Onaylama İşlemini Doğrulama
Politika işleme:
- 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
veyaapplication/(.*+)?xml
. Medya türü XML değilse ve<IgnoreContentType>
ayarlanmazsa politika hata verir. - Politika, XML'i ayrıştırır. Ayrıştırma işlemi başarısız olursa bir hata oluşur.
- 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. - 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.
<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.- 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.
- 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> .
|
build |
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.
|
build |
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.
|
build |
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.
|
build |
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.
|
build |
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