Configuración de aserciones SAML para la respuesta de autenticación - AWS Identity and Access Management

Configuración de aserciones SAML para la respuesta de autenticación

En su organización, después de verificar la identidad de un usuario, el proveedor de identidad (IdP) externo envía una respuesta de autenticación al punto de enlace SAML de AWS en https://signin.aws.amazon.com/saml. Esta respuesta es una solicitud POST que contiene un token de SAML que cumple el estándar HTTP POST Binding for SAML 2.0 y que incluye los siguientes elementos o notificaciones. Estas notificaciones se configuran en su proveedor de identidades compatible con SAML. Consulte la documentación de su proveedor de identidad para obtener instrucciones sobre cómo ingresar esos reclamos.

Cuando el proveedor de identidades envía la respuesta que contiene las notificaciones a AWS, muchas de las notificaciones entrantes se mapean a claves de contexto de AWS. Estas claves de contexto pueden comprobarse en las políticas de IAM utilizando el elemento Condition. Encontrará una lista de los mapeos disponibles en la sección Asignación de atributos SAML con claves de contexto de una política de confianza de AWS.

Subject y NameID

En el fragmento siguiente se muestra un ejemplo. Solo tiene que cambiar sus propios valores por los valores marcados. Debe haber exactamente un elemento SubjectConfirmation con un elemento SubjectConfirmationData que contenga tanto el atributo NotOnOrAfter como un atributo Recipient. Estos atributos incluyen un valor que debe coincidir con el punto de enlace de AWS (https://signin.aws.amazon.com/saml), tal y como se muestra en el siguiente ejemplo. Para obtener información sobre los formatos de identificador de nombre compatibles para interacciones de inicio de sesión único, consulte Oracle Sun OpenSSO Enterprise Administration Reference.

<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">_cbb88bf52c2510eabe00c1642d4643f41430fe25e3</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2013-11-05T02:06:42.876Z" Recipient="https://signin.aws.amazon.com/saml"/> </SubjectConfirmation> </Subject>

AudienceRestriction y Audience

Por motivos de seguridad, AWS debería incluirse como público en la aserción SAML que su proveedor de identidades envía a AWS. Para el valor del elemento Audience, especifique https://signin.aws.amazon.com/saml o urn:amazon:webservices. Los siguientes fragmentos de muestra en XML de aserciones SAML muestran cómo el proveedor de identidad puede especificar esta clave. Incluya la muestra que se aplique a su caso de uso.

<Conditions> <AudienceRestriction> <Audience>https://signin.aws.amazon.com/saml</Audience> </AudienceRestriction> </Conditions>
<Conditions> <AudienceRestriction> <Audience>urn:amazon:webservices</Audience> </AudienceRestriction> </Conditions>
importante

El valor SAML AudienceRestriction de la aserción SAML del proveedor de identidades no se mapea con la clave de contexto saml:aud que puede probar en una política de IAM. En su lugar, la clave de contexto saml:aud proviene del atributo destinatario de SAML, ya que es el equivalente SAML del campo de público de OIDC, por ejemplo, por accounts.google.com:aud.

Attribute del rol de SAML

Puede usar un elemento Attribute con el atributo Name establecido en https://aws.amazon.com/SAML/Attributes/Role. Este elemento contiene uno o más elementos AttributeValue que indican el proveedor de identidad de IAM y el rol que el IdP asigna al usuario. El rol de IAM y el proveedor de identidad de IAM se especifican como un par de ARN delimitados con comas con el mismo formato que los parámetros RoleArn y PrincipalArn pasados a AssumeRoleWithSAML. Este elemento debe contener al menos un par de proveedores de roles (elemento AttributeValue) y puede contener varios pares. Si el elemento contiene varios pares, se pide al usuario que seleccione qué rol quiere asumir cuando utilice WebSSO para iniciar sesión en la Consola de administración de AWS.

importante

El valor del atributo Name de la etiqueta Attribute distingue entre mayúsculas y minúsculas. Debe establecerse en https://aws.amazon.com/SAML/Attributes/Role con precisión.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role"> <AttributeValue>arn:aws:iam::account-number:role/role-name1,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws:iam::account-number:role/role-name2,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws:iam::account-number:role/role-name3,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> </Attribute>

RoleSessionName Attribute de SAML

Puede usar un elemento Attribute con el atributo Name establecido en https://aws.amazon.com/SAML/Attributes/RoleSessionName. Este elemento contiene un elemento AttributeValue que proporciona un identificador para las credenciales temporales de AWS que se generan para SSO. Este elemento se utiliza para mostrar información del usuario en la Consola de administración de AWS. El valor del elemento AttributeValue debe tener entre 2 y 64 caracteres, solo puede contener caracteres alfanuméricos, guiones bajos y los siguientes caracteres: + (signo más), = (signo igual), , (coma), . (punto), @ (arroba) y - (guion). No puede contener espacios. El valor suele ser un ID de usuario (johndoe) o una dirección de correo electrónico (johndoe@example.com). No debe ser un valor que contenga un espacio, como el nombre de visualización de un usuario (John Doe).

importante

El valor del atributo Name de la etiqueta Attribute distingue entre mayúsculas y minúsculas. Debe establecerse en https://aws.amazon.com/SAML/Attributes/RoleSessionName con precisión.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName"> <AttributeValue>user-id-name</AttributeValue> </Attribute>

Attribute SessionDuration de SAML

(Opcional) Puede utilizar un elemento Attribute con el atributo Name establecido en https://aws.amazon.com/SAML/Attributes/SessionDuration". Este elemento contiene un elemento AttributeValue que especifica cuánto tiempo puede obtener acceso el usuario a la Consola de administración de AWS antes de tener que solicitar credenciales temporales nuevas. El valor es un número entero que representa el número de segundos para la sesión. Este valor puede oscilar entre 900 segundos (15 minutos) y 43 200 segundos (12 horas). Si este atributo no está presente, las credenciales serán válidas durante una hora (el valor predeterminado del parámetro DurationSeconds de la API AssumeRoleWithSAML).

Para utilizar este atributo, debe configurar el proveedor SAML para que proporcione un acceso de inicio de sesión único a la Consola de administración de AWS a través del punto de enlace web de inicio de sesión de la consola en https://signin.aws.amazon.com/saml. Tenga en cuenta que este atributo amplía las sesiones únicamente en la Consola de administración de AWS. No puede ampliar la duración de otras credenciales. Sin embargo, si está presente en una llamada a la API AssumeRoleWithSAML, se puede utilizar para acortar la duración de la sesión. La duración predeterminada de las credenciales devueltas por la llamada es de 60 minutos.

Tenga en cuenta también que si se ha definido también un atributo SessionNotOnOrAfter, el valor inferior de los dos atributos, SessionDuration o SessionNotOnOrAfter, establecerá la duración máxima de la sesión de la consola.

Si habilita sesiones de consola con una duración ampliada, aumenta el riesgo de que las credenciales se filtren. Para ayudarle a mitigar este riesgo, puede deshabilitar inmediatamente las sesiones de consola activas para cualquier rol eligiendo Revoke Sessions (Revocar sesiones) en la página Role Summary (Resumen de rol) de la consola de IAM. Para obtener más información, consulte Revocación de las credenciales de seguridad temporales de un rol de IAM..

importante

El valor del atributo Name de la etiqueta Attribute distingue entre mayúsculas y minúsculas. Debe establecerse en https://aws.amazon.com/SAML/Attributes/SessionDuration con precisión.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/SessionDuration"> <AttributeValue>1800</AttributeValue> </Attribute>

Attribute PrincipalTag de SAML

(Opcional) Puede utilizar un elemento Attribute con el atributo Name establecido en https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}. Este elemento le permite pasar atributos como etiquetas de sesión en la aserción SAML. Para obtener más información acerca de las etiquetas de sesión, consulte Transferencia de etiquetas de sesión en AWS STS.

Para pasar atributos como etiquetas de sesión, incluya el elemento AttributeValue que especifica el valor de la etiqueta. Por ejemplo, para pasar los pares clave-valor de etiquetas Project = Marketing y CostCenter = 12345, utilice el siguiente atributo. Incluya un elemento Attribute separado para cada etiqueta.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project"> <AttributeValue>Marketing</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter"> <AttributeValue>12345</AttributeValue> </Attribute>

Para establecer las etiquetas anteriores como transitivas, incluya otro elemento Attribute con el atributo Name establecido en https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys. Este es un atributo opcional multivalor que establece las etiquetas de sesión como transitivas. Las etiquetas transitivas persisten cuando se utiliza la sesión de SAML para asumir otro rol en AWS. Esto se conoce como encadenamiento de roles. Por ejemplo, para establecer tanto las etiquetas CostCenter como las Principal como transitivas, utilice el siguiente atributo para especificar las claves.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>CostCenter</AttributeValue> </Attribute>

Asignación de atributos SAML con claves de contexto de una política de confianza de AWS

En las tablas de esta sección se enumeran los atributos SAML utilizados con más frecuencia y se muestra su correspondencia con las claves de contexto de condición de una política de confianza de AWS. Puede utilizar estas claves para controlar el acceso a un rol. Para ello, compare las claves con los valores que se incluyen en las aserciones que acompañan a una solicitud de acceso SAML.

importante

Estas claves solo están disponibles en las políticas de confianza de IAM (políticas que determinan quién puede asumir un rol) y no se pueden aplicar a políticas de permisos.

En la tabla de atributos eduPerson y eduOrg, los valores se indican como cadenas o como listas de cadenas. En el caso de los valores de cadenas, puede probar estos valores en las políticas de confianza de IAM usando las condiciones StringEquals o StringLike. En cuanto a los valores que contienen una lista de cadenas, puede utilizar los operadores de definición de políticas ForAnyValue y ForAllValues para probar los valores de las políticas de confianza.

nota

Debe incluir únicamente una notificación por clave de contexto de AWS. Si incluye más de una, solo se asignará una notificación.

Atributos eduPerson y eduOrg
Atributo eduPerson o eduOrg (clave Name) Se asigna con esta clave de contexto AWS (clave FriendlyName) Tipo

urn:oid:1.3.6.1.4.1.5923.1.1.1.1

eduPersonAffiliation

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.1.1.2

eduPersonNickname

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.1.1.3

eduPersonOrgDN

Cadena

urn:oid:1.3.6.1.4.1.5923.1.1.1.4

eduPersonOrgUnitDN

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.1.1.5

eduPersonPrimaryAffiliation

Cadena

urn:oid:1.3.6.1.4.1.5923.1.1.1.6

eduPersonPrincipalName

Cadena

urn:oid:1.3.6.1.4.1.5923.1.1.1.7

eduPersonEntitlement

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.1.1.8

eduPersonPrimaryOrgUnitDN

Cadena

urn:oid:1.3.6.1.4.1.5923.1.1.1.9

eduPersonScopedAffiliation

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.1.1.10

eduPersonTargetedID

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.1.1.11

eduPersonAssurance

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.2.1.2

eduOrgHomePageURI

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.2.1.3

eduOrgIdentityAuthNPolicyURI

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.2.1.4

eduOrgLegalName

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.2.1.5

eduOrgSuperiorURI

Lista de cadenas

urn:oid:1.3.6.1.4.1.5923.1.2.1.6

eduOrgWhitePagesURI

Lista de cadenas

urn:oid:2.5.4.3

cn

Lista de cadenas

Atributos de Active Directory
Atributo de AD Se asigna con esta clave de contexto AWS Tipo

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

name

Cadena

http://schemas.xmlsoap.org/claims/CommonName

commonName

Cadena

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname

givenName

Cadena

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname

surname

Cadena

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

mail

Cadena

http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid

uid

Cadena

Atributos X.500
Atributo X.500 Se asigna con esta clave de contexto AWS Tipo

2.5.4.3

commonName

Cadena

2.5.4.4

surname

Cadena

2.4.5.42

givenName

Cadena

2.5.4.45

x500UniqueIdentifier

Cadena

0.9.2342.19200300100.1.1

uid

Cadena

0.9.2342.19200300100.1.3

mail

Cadena

0.9.2342.19200300.100.1.45

organizationStatus

Cadena