Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la
documentación de Apigee Edge.
La política GenerateSAMLAssertion permite que los proxies de API adjunten aserciones de SAML para solicitudes XML salientes. Esas aserciones están disponibles para que los servicios de backend apliquen más procesos de seguridad para la autenticación y la autorización. Consulta Descripción general de las políticas de SAML para obtener más información.
Esta política es una política extensible y el uso de esta política puede tener implicaciones de costo o uso, según tu licencia de Apigee. Para obtener información sobre los tipos de políticas y sus implicaciones de uso, consulta Tipos de políticas.
Muestras
<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="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> </Namespaces> <XPath>/soap:Envelope/soap:Header/wsse:Security</XPath> </Message> </OutputVariable> <SignatureAlgorithm /> <Subject ref="reference">Subject name</Subject> <Template ignoreUnresolvedVariables="false"> <!-- A lot of XML goes here, within CDATA, with {} around each variable --> </Template> </GenerateSAMLAssertion>
Referencia del elemento
En esta sección, se enumeran los elementos y atributos de la política GenerateSAMLAssertion.
Atributos que se aplican al elemento de nivel superior
<GenerateSAMLAssertion name="SAML-A1" continueOnError="false" enabled="true" async="false">
Los siguientes atributos son comunes a todos los elementos superiores de la política.
| Atributo | Descripción | Valor predeterminado | Presencia |
|---|---|---|---|
| name |
El nombre interno de la política. Los caracteres que puede usar en el nombre están restringidos a:
A-Z0-9._\-$ %. Sin embargo, la IU de Apigee aplica restricciones adicionales, como quitar automáticamente los caracteres que no son alfanuméricos.
De forma opcional, usa el elemento |
N/A | Obligatorio |
| habilitado |
Configúralo como true para aplicar la política.
Configúralo como |
verdadero | Opcional |
Elementos y atributos para la generación de aserciones de SAML
| Nombre del campo | Descripción | ||
|---|---|---|---|
Atributo ignoreContentType |
Un valor booleano que se puede establecer en true o false. De forma predeterminada, la aserción no se generará si el tipo de contenido del mensaje no es un tipo de contenido XML. Si el valor es true, el mensaje se tratará como XML independientemente del tipo de contenido. |
||
Issuer |
Es el identificador único del proveedor de identidad. Si el atributo
ref opcional está presente, el valor de la entidad emisora se asignará en el entorno de ejecución en función de la variable especificada. Si el atributo opcional ref no está presente, se usará el valor de la entidad emisora.
|
||
KeyStore |
El nombre del KeyStore que contiene la clave privada y el alias de la clave privada
que se usa para firmar las afirmaciones SAML de manera digital.
|
||
OutputVariable |
Especifica dónde se colocará la aserción de SAML generada. La aserción se puede almacenar
en una variable de flujo o insertar en un mensaje existente.
|
||
FlowVariable |
Especifica el nombre de la variable de flujo en la que se almacenará el contenido de la aserción de SAML generada.
Esta es una alternativa al uso del elemento
<Message> para insertar la aserción
en un mensaje XML existente.
|
||
Message |
Es el destino de la política. Los valores válidos son message, request, y response. Cuando se establece en message, la política recupera de forma condicional el objeto de mensaje en función del punto de unión de la política. Cuando se adjunta al flujo de solicitudes, la política resuelve message para solicitar y, cuando se adjunta al flujo de respuesta, la política resuelve message como respuesta. |
||
XPath |
Una expresión XPath que indica el elemento del documento XML saliente al que la política adjuntará la aserción de SAML. | ||
SignatureAlgorithm |
SHA1 o SHA256 | ||
Subject |
El identificador único del sujeto de la aserción SAML. Si el atributo opcional
ref está presente, el valor de asunto se asignará en el
tiempo de ejecución según la variable especificada. Si el atributo ref opcional no está presente, se usará el valor del asunto.
|
||
Template |
Si está presente, la aserción se generará mediante la ejecución de esta plantilla, y reemplazará
todo lo que indica
{} con la variable correspondiente y, luego, firmará el resultado de manera digital. La plantilla se procesa según las reglas de la política de AssignMessage.
Consulta Política AssignMessage.
|
||
Notas de uso
Procesamiento de políticas:
- Si el mensaje no es XML y
ignoreContentTypeno está configurado entrue, entonces se genera un error. - Si la opción
Templateestá configurada, procesa la plantilla como se describe para la política AssignMessage. Si falta alguna variable y no se configuraignoreUnresolvedVariablesse, genera un error. - Si
Templateno está configurada, crea una aserción que incluya los valores de los parámetros Asunto y Emisor o sus referencias. - Firma la aserción mediante la clave especificada.
- Agrega la aserción al mensaje en la XPath especificada.
Referencia de errores
En esta sección, se describen los códigos de fallas y los mensajes de error que se muestran, así como las variables de fallas que establece Apigee cuando esta política activa un error. Esta información es importante para saber si estás desarrollando reglas de fallas con el propósito de manejar fallas. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo solucionar fallas.
Errores en la implementación
Estos errores pueden generarse cuando implementas un proxy que contiene esta política.
| Nombre del error | Causa | Corregir |
|---|---|---|
SourceNotConfigured |
Uno o más de los siguientes elementos de la política ValidateSAMLAssertion no están definidos o están vacíos: <Source>, <XPath>, <Namespaces>, <Namespace>.
|
build |
TrustStoreNotConfigured |
Si el elemento <TrustStore> está vacío o no se especifica en la política ValidateSAMLAssertion, falla la implementación del proxy de API.
Se requiere un almacenamiento de confianza válido.
|
build |
NullKeyStoreAlias |
La implementación del proxy de API fallará si el elemento secundario <Alias> está vacío o no se especifica en el elemento <Keystore> de la política GenerateSAMLAssertion. Se requiere un alias del almacén de claves válido.
|
build |
NullKeyStore |
La implementación del proxy de API fallará si el elemento secundario <Name> está vacío o no se especifica en el elemento <Keystore> de la política GenerateSAMLAssertion. Se requiere el nombre de almacén de claves válido.
|
build |
NullIssuer |
Si el elemento <Issuer> está vacío o no se especifica en la política GenerateSAMLAssertion, falla la implementación del proxy de API. Se requiere un valor válido de <Issuer>.
|
build |
Variables con fallas
Estas variables se configuran cuando se genera un error de entorno de ejecución. Para obtener más información, consulta Qué debes saber sobre los errores de la política.
| Variables | Donde | Ejemplo |
|---|---|---|
fault.name="fault_name" |
fault_name es el nombre de la falla . El nombre de la falla es la última parte del código de la falla. | fault.name = "InvalidMediaTpe" |
GenerateSAMLAssertion.failed |
Para la configuración de una política de confirmación de SAML validada, el prefijo de error es ValidateSAMLAssertion. |
GenerateSAMLAssertion.failed = true |
Ejemplo de respuesta de error
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
Ejemplo de regla de falla
<FaultRules>
<FaultRule name="invalid_saml_rule">
<Step>
<Name>invalid-saml</Name>
</Step>
<Condition>(GenerateSAMLAssertion.failed = "true")</Condition>
</FaultRule>
</FaultRules>Temas relacionados
Extrae variables: política de extracción de variables