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ı
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
SourceNotConfigured |
One or more of the following elements of the Validate SAML Assertion
policy is not defined or empty: <Source> , <XPath> ,
<Namespaces> , <Namespace> .
|
build |
TrustStoreNotConfigured |
If the <TrustStore> element is empty or not specified in the
ValidateSAMLAssertion policy, then the deployment of the API proxy fails.
A valid Trust Store is required.
|
build |
NullKeyStoreAlias |
If the child element <Alias> is empty or not specified in the <Keystore>
element of Generate SAML Assertion policy, then the deployment of the API
proxy fails. A valid Keystore alias is required.
|
build |
NullKeyStore |
If the child element <Name> is empty or not specified in the <Keystore>
element of GenerateSAMLAssertion policy, then the deployment of the API
proxy fails. A valid Keystore name is required.
|
build |
NullIssuer |
If the <Issuer> element is empty or not specified in the Generate SAML
Assertion policy, then the deployment of the API proxy fails. A
valid <Issuer> value is required.
|
build |
Fault variables
These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault. The fault name is the last part of the fault code. | fault.name = "InvalidMediaTpe" |
GenerateSAMLAssertion.failed |
For a validate SAML assertion policy configuration, the error prefix is
ValidateSAMLAssertion . |
GenerateSAMLAssertion.failed = true |
Example error response
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
Example fault rule
<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