Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Ne?
- Gelen kimlik doğrulama ve yetkilendirme: SAML onayını doğrulama
politikası
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 onaylama işlemi içeren gelen mesajları doğrular, geçersizlerse bunları reddeder ve onaylama işlemindeki bilgilerin daha fazla doğrulanmasına olanak tanıyan ek politikalar veya arka uç hizmetlerinin kendisi için değişkenler ayarlar. - Giden jeton oluşturma: SAML onayı politikası oluşturma
SAML politika türü, API proxy'lerinin giden XML isteklerine SAML onayları eklemesini sağlar. Bu onaylar daha sonra arka uç hizmetlerinin kimlik doğrulama ve yetkilendirme için ek güvenlik işlemleri uygulamasına olanak tanır.
Örnekler
SAML onayı oluşturma
<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şturma
| Alan Adı | Açıklama | ||
|---|---|---|---|
name özellik |
Politika örneğinin adı. Ad, kuruluş içinde benzersiz olmalıdır. Adda kullanabileceğiniz karakterler şunlarla sınırlıdır: A-Z0-9._\-$
%. Ancak yönetim kullanıcı arayüzü, alfanümerik olmayan karakterleri otomatik olarak kaldırma gibi ek kısıtlamalar uygular. |
||
ignoreContentType özellik |
true veya false olarak ayarlanabilen bir Boole değeri. Varsayılan olarak, iletinin içerik türü XML Content-Type değilse onaylama oluşturulmaz. Bu değer true olarak ayarlanırsa ileti, Content-type'tan bağımsız olarak XML olarak değerlendirilir. |
||
Issuer |
Kimlik sağlayıcının benzersiz tanımlayıcısı. İsteğe bağlı
ref
özelliği varsa Yayınlayan değeri, belirtilen değişkene göre çalışma zamanında atanır. İsteğe bağlı ref özelliği yoksa veren kuruluşun değeri kullanılır.
|
||
KeyStore |
Özel anahtarı içeren anahtar deposunun adı ve SAML onaylarını dijital olarak imzalamak için kullanılan özel anahtarın diğer adı.
|
||
OutputVariable |
|||
FlowVariable |
|||
Message |
Politikanın hedefi. Geçerli değerler message, request ve response şeklindedir. message olarak ayarlandığında politika, ileti nesnesini koşullu olarak alır. Bu işlem, politikanın ek noktasına göre yapılır. İstek akışına eklendiğinde politika, message değerini istek olarak çözer. Yanıt akışına eklendiğinde ise politika, message değerini yanıt olarak çözer. |
||
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ı. İsteğe bağlı
ref özelliği varsa Konu değeri, belirtilen değişkene göre çalışma zamanında 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 gösterilen her şey ilgili değişkenle değiştirilerek ve sonuç dijital olarak imzalanarak onaylama oluşturulur. Şablon, AssignMessage politika kurallarına göre işlenir.
İleti politikası
atama başlıklı makaleyi inceleyin.
|
||
SAML Onayını Doğrulama
| Alan Adı | Açıklama |
|---|---|
name özellik |
Politika örneğinin adı. Ad, kuruluş içinde benzersiz olmalıdır.
Adda kullanabileceğiniz karakterler şunlarla sınırlıdır:
A-Z0-9._\-$ %.
Ancak yönetim kullanıcı arayüzü, alfanümerik olmayan karakterleri otomatik olarak kaldırma gibi ek kısıtlamalar uygular.
|
ignoreContentType özellik |
true veya false olarak ayarlanabilen bir Boole değeri. Varsayılan olarak, iletinin içerik türü XML Content-Type değilse onaylama oluşturulmaz. Bu ayar true olarak belirlenirse, Content-type'tan bağımsız olarak ileti XML olarak değerlendirilir. |
Source |
Politikanın hedefi. Geçerli değerler message, request ve response şeklindedir. message olarak ayarlandığında politika, ileti nesnesini koşullu olarak alır. Bu işlem, politikanın ek noktasına göre yapılır. İstek akışına eklendiğinde politika, message değerini istek olarak çözer. Yanıt akışına eklendiğinde ise politika, message değerini yanıt olarak çözer. |
XPath |
Kullanımdan kaldırıldı.
Source adlı kullanıcının çocuğu. AssertionXPath ve SignedElementXPath özelliğini kullanın.
|
AssertionXPath |
Source adlı kullanıcının çocuğu. Politikanın SAML onayını çıkarabileceği, gelen XML dokümanındaki öğeyi belirten bir XPath ifadesi.
|
SignedElementXPath |
Source adlı kullanıcının çocuğu. Politikanın imzalı öğeyi çıkarabileceği, gelen XML dokümanındaki öğeyi belirten bir XPath ifadesi. Bu, AssertionXPath için XPath ile aynı veya farklı olabilir.
|
TrustStore |
SAML onaylarındaki dijital imzaları doğrulamak için kullanılan güvenilen X.509 sertifikalarını içeren güven deposunun adı.
|
RemoveAssertion |
true veya false olarak ayarlanabilen bir Boole değeri. true olduğunda, ileti arka uç hizmetine yönlendirilmeden önce SAML onaylaması istek iletisinden çıkarılır.
|
Kullanım notları
Güvenlik Onayı Biçimlendirme Dili (SAML) spesifikasyonu, uygulamaların kimlik doğrulama ve yetkilendirme için XML biçimli bilgileri değiştirmesini sağlayan biçimleri ve protokolleri tanımlar.
"Güvenlik onayı", bir uygulamanın, uygulama kullanıcısının veya bir işlemdeki başka bir katılımcının özelliğini açıklayan güvenilir bir jetondur. Güvenlik onayları iki tür kuruluş tarafından yönetilir ve kullanılır:
- Kimlik sağlayıcılar: Katılımcılar adına güvenlik onayları oluşturur.
- Hizmet sağlayıcılar: Kimlik sağlayıcılarla güvenilir ilişkiler kurarak güvenlik onaylarını doğrulama
API platformu, kimlik sağlayıcı ve servis sağlayıcı olarak hareket edebilir. Onaylamalar oluşturup bunları istek mesajlarına ekleyerek kimlik sağlayıcı görevi görür ve bu onaylamaların arka uç hizmetleri tarafından işlenmesini sağlar. Gelen istek mesajlarındaki onayları doğrulayarak servis sağlayıcı görevi görür.
SAML politika türü, SAML Core Specification'ın 2.0 sürümü ve WS-Security SAML Token Profile Specification'ın 1.0 sürümüyle eşleşen SAML onaylarını destekler.
SAML onayı oluşturma
Politika işleme:
- İleti XML değilse ve IgnoreContentType
trueolarak ayarlanmamışsa hata oluşturun. - "Template" ayarlanmışsa şablonu AssignMessage politikası için açıklandığı şekilde işleyin. Değişkenlerden herhangi biri eksikse ve IgnoreUnresolvedVariables ayarlanmamışsa hata oluşturun.
- "Şablon" ayarlanmamışsa Subject ve Issuer parametrelerinin değerlerini veya referanslarını içeren bir onaylama oluşturun.
- Belirtilen anahtarı kullanarak onaylamayı imzalayın.
- Onayı, belirtilen XPath'teki iletiye ekleyin.
SAML Onayını Doğrulama
Politika işleme:
- Politika, içerik türünün
text/(.*+)?xmlveyaapplication/(.*+)?xmlbiç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. - Politika, XML'yi ayrıştırır. Ayrıştırma başarısız olursa hata oluşur.
- Politika, belirtilen ilgili XPath'leri (
<SignedElementXPath>ve<AssertionXPath>) kullanarak imzalı öğeyi ve onaylamayı çıkarır. Bu yollardan biri öğe döndürmezse politika bir hata oluşturur. - Politika, onaylamanın imzalı öğeyle aynı olduğunu veya imzalı öğenin alt öğesi olduğunu doğrular. Bu doğru değilse politika bir hata oluşturur.
- Onayda
<NotBefore>veya<NotOnOrAfter>öğelerinden biri varsa politika, SAML Core bölüm 2.5.1'de açıklandığı gibi geçerli zaman damgasını bu değerlerle karşılaştırarak kontrol eder. - Politika, SAML Core bölüm 2.5.1.1'de açıklandığı gibi "Koşullar"ın işlenmesi için ek kurallar uygular.
- Politika, yukarıda açıklanan güvenilir sertifika deposu değerini (
<TrustStore>) kullanarak XML dijital imzasını doğrular. Doğrulama başarısız olursa politika bir hata oluşturur.
Politika hataya neden olmadan tamamlandığında, proxy'nin geliştiricisi şunlardan emin olabilir:
- Onaydaki dijital imza geçerlidir ve güvenilir bir CA tarafından imzalanmıştır.
- Onay, mevcut dönem için geçerlidir.
- Onayın konusu ve yayınlayanı çıkarılıp akış değişkenlerine ayarlanır. Konu adının geçerli olup olmadığını kontrol etmek veya doğrulama için hedef sisteme iletmek gibi ek kimlik doğrulama işlemleri için bu değerleri kullanmak diğer politikaların sorumluluğundadır.
Daha karmaşık doğrulama için ExtractVariables gibi diğer politikalar, onaylamanın ham XML'sini ayrıştırmak üzere kullanılabilir.
Akış değişkenleri
SAML onaylama işleminde belirtilebilecek birçok bilgi vardır. SAML onayı, daha karmaşık doğrulamalar uygulamak için ExtractVariables politikası ve diğer mekanizmalar kullanılarak ayrıştırılabilen XML'dir.
| Değişken | Açıklama |
|---|---|
saml.id |
SAML onayı kimliği |
saml.issuer |
Doğrulamanın "Vereni", kendi XML türünden dizeye dönüştürülür. |
saml.subject |
İddianın "Konu" alanı, kendi XML türünden dizeye dönüştürülü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 onaylama yöntemi |
saml.scdaddress |
Konu onayı verilerinin adresi |
saml.scdinresponse |
Yanıtın konu onay verileri |
saml.scdrcpt |
Konu onay verileri 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, 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 çıkarma: Değişkenleri Çıkarma politikası