

# Configure aserciones SAML para la respuesta de autenticación
<a name="id_roles_providers_create_saml_assertions"></a>

Después de verificar la identidad de un usuario de su organización, el proveedor de identidades (IdP) externo envía una respuesta de autenticación a la URL de punto de conexión de SAML de AWS. Esta respuesta es una solicitud POST que contiene un token de SAML que cumple el estándar [HTTP POST Binding for SAML 2.0](http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf) 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 [Mapeo de atributos SAML con claves de contexto de una política de confianza de AWS](#saml-attribute-mapping).

## `Subject` y `NameID`
<a name="saml_subject-name-id"></a>

La respuesta debe incluir exactamente un elemento `SubjectConfirmation` con un elemento `SubjectConfirmationData` que contenga tanto el atributo `NotOnOrAfter` como un atributo `Recipient`. El atributo Recipient debe incluir un valor que coincida con la URL del punto de conexión de inicio de sesión de AWS. El IdP puede usar el término `ACS`, `Recipient` o `Target` para referirse a este atributo.

Si se requiere el cifrado de SAML, la URL de inicio de sesión debe incluir el identificador único que AWS asigna al proveedor de SAML, que puede encontrar en la página de detalles del proveedor de identidades. En el siguiente ejemplo, se muestra el formato de URL de inicio de sesión con el `region-code` opcional.

`https://region-code.signin.aws.amazon.com/saml`

En el siguiente ejemplo, la URL de inicio de sesión incluye un identificador único, que requiere que /acs/ se agregue a la ruta de inicio de sesión.

`https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID`

Para obtener una lista de los posibles valores de *region-code*, consulte la columna **Region** (Región) en [Puntos de conexión de inicio de sesión de AWS](https://docs.aws.amazon.com/general/latest/gr/signin-service.html). Para el valor de AWS, también puede usar el punto de conexión de inicio de sesión global `https://signin.aws.amazon.com/saml`.

El valor de los elementos `NameID` puede ser “persistent” o “transient”, o bien el URI de formato completo proporcionado por la solución del proveedor de identidades. El valor “persistent” indica que el valor de `NameID` es el mismo para un usuario entre sesiones. Si el valor es “transient”, el usuario tendrá un valor de `NameID` diferente para cada sesión. Las interacciones mediante inicio de sesión único permiten los siguientes tipos de identificadores:
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName`
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos`
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:entity`

En el fragmento siguiente se muestra un ejemplo. Solo tiene que cambiar sus propios valores por los valores marcados.

```
<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://region-code.signin.aws.amazon.com/saml/SAMLSP4SHN3UIS2D558H46"/>
  </SubjectConfirmation>
</Subject>
```

**importante**  
La clave de contexto `saml:aud` proviene del atributo *recipient* (destinatario) de SAML, ya que es el equivalente de SAML del campo de público de OIDC; por ejemplo, `accounts.google.com:aud`.

## Atributo `PrincipalTag` de SAML
<a name="saml_role-session-tags"></a>

(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](id_session-tags.md).

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](id_roles.md#iam-term-role-chaining). Por ejemplo, para establecer tanto las etiquetas `Principal` como las `CostCenter` 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>
```

## `Role`Atributo de SAML
<a name="saml_role-attribute"></a>

Puede utilizar 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 identidades de IAM se especifican como un par de ARN delimitados con comas en el mismo formato que los parámetros `RoleArn` y `PrincipalArn` que se transfieren a [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html). 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 le 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`Atributo de SAML
<a name="saml_role-session-attribute"></a>

Puede utilizar 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 que se generan cuando se asume el rol. Puede utilizar esto para asociar las credenciales temporales con el usuario que está utilizando la aplicación. 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: **. , \$1 = @ -** (guion). No puede contener espacios. El valor suele ser un ID de usuario (`john`) 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>
```

## `SessionDuration`Atributo de SAML
<a name="saml_role-session-duration"></a>

(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://region-code.signin.aws.amazon.com/saml`. Para obtener una lista de los posibles valores de *region-code*, consulte la columna **Region** (Región) en [Puntos de conexión de inicio de sesión de AWS](https://docs.aws.amazon.com/general/latest/gr/signin-service.html). Opcionalmente, puede utilizar la siguiente URL: `https://signin.aws.amazon.com/static/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. 

Además, tenga en cuenta 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 mitigar este riesgo, puede desactivar inmediatamente las sesiones de consola activas de cualquier rol si elige **Revoke Sessions** en la página **Role Summary** 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](id_roles_use_revoke-sessions.md). 

**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>
```

## `SourceIdentity`Atributo de SAML
<a name="saml_sourceidentity"></a>

(Opcional) Puede utilizar un elemento `Attribute` con el atributo `Name` establecido en `https://aws.amazon.com/SAML/Attributes/SourceIdentity`. Este elemento contiene un `AttributeValue` elemento que proporciona un identificador para la persona o aplicación que utiliza un rol de IAM. El valor de la identidad de origen persiste cuando se utiliza la sesión de SAML para asumir otro rol en AWS conocido como [Encadenamiento de roles](id_roles.md#iam-term-role-chaining). El valor de la identidad de origen está presente en la solicitud para cada acción realizada durante la sesión de rol. El valor que se establece no se puede cambiar durante la sesión de rol. A continuación, los administradores pueden utilizar registros de AWS CloudTrail para monitorear y auditar la información de identidad de origen para determinar quién realizó acciones con roles compartidos.

El valor del elemento `AttributeValue` debe tener entre 2 y 64 caracteres, solo puede contener caracteres alfanuméricos, guiones bajos y los siguientes caracteres: **. , \$1 = @ -** (guion). No puede contener espacios. El valor suele ser un atributo asociado con el usuario, como un ID de usuario (`john`) 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`). Para obtener más información acerca de las identidades de fuente, consulte [Monitorear y controlar las acciones realizadas con roles asumidos](id_credentials_temp_control-access_monitor.md).

**importante**  
Si la aserción SAML está configurada para utilizar el atributo [`SourceIdentity`](#saml_sourceidentity), la política de confianza también debe incluir la acción `sts:SetSourceIdentity`, de otro modo, la operación de rol asumido fallará. Para obtener más información acerca de las identidades de fuente, consulte [Monitorear y controlar las acciones realizadas con roles asumidos](id_credentials_temp_control-access_monitor.md).

Para pasar un atributo de identidad de origen, incluya el elemento `AttributeValue` que especifica el valor de la identidad de origen. Por ejemplo, para pasar la identidad de origen `Diego` utilice el atributo siguiente.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SourceIdentity">
  <AttributeValue>Diego</AttributeValue>
```

## Mapeo de atributos SAML con claves de contexto de una política de confianza de AWS
<a name="saml-attribute-mapping"></a>

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 utilizando las condiciones `StringEquals` o `StringLike`. En cuanto a los valores que contienen una lista de cadenas, puede utilizar los `ForAnyValue`operadores de definición de políticas`ForAllValues` [ y ](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys) 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. 

En la siguiente tabla, se muestran los atributos eduPerson y eduOrg.


| Atributo eduPerson o eduOrg (clave `Name`) | Se asigna a esta clave de contexto de 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  | 

En la siguiente tabla, se muestran los 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  | 

En la siguiente tabla, se muestran los 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  | 