Configure aserciones SAML para la respuesta de autenticación
En su organización, después de verificar la identidad de un usuario, el proveedor de identidades (IdP) externo envía una respuesta de autenticación al punto de conexión SAML de AWS en https://
. Para obtener una lista de los posibles reemplazos de region-code
.signin.aws.amazon.com/samlregion-code
, consulte la columna Region (Región) en Puntos de conexión de inicio de sesión 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
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.
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 conexión de AWS https://
. Para obtener una lista de los posibles valores de region-code
.signin.aws.amazon.com/samlregion-code
, consulte la columna Region (Región) en Puntos de conexión de inicio de sesión de AWS. Para el valor AWS, también puede utilizar https://signin.aws.amazon.com/saml
, como se muestra en el ejemplo siguiente.
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
<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>
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
(Opcional) Puede utilizar un elemento Attribute
con el atributo Name
establecido en https://aws.amazon.com/SAML/Attributes/PrincipalTag:
. 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.{TagKey}
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>
Atributo Role
de SAML
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. 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 AWS Management Console.
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>
Atributo RoleSessionName
de SAML
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 AWS Management Console. El valor del elemento AttributeValue
debe tener entre 2 y 64 caracteres, solo puede contener caracteres alfanuméricos, guiones bajos y los siguientes caracteres: . , + = @ - (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>
Atributo 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 AWS Management Console 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 AWS Management Console a través del punto de enlace web de inicio de sesión de la consola en https://
. Para obtener una lista de los posibles valores de region-code
.signin.aws.amazon.com/samlregion-code
, consulte la columna Region (Región) en Puntos de conexión de inicio de sesión de AWS. 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 AWS Management Console. 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.
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>
Atributo SourceIdentity
de SAML
(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. 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: . , + = @ - (guion). No puede contener espacios. El valor suele ser un atributo asociado con el usuario, como 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
). Para obtener más información acerca de las identidades de fuente, consulte Monitorear y controlar las acciones realizadas con roles asumidos.
importante
Si la aserción SAML está configurada para utilizar el atributo 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.
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 DiegoRamirez
utilice el atributo siguiente.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SourceIdentity"> <AttributeValue>DiegoRamirez</AttributeValue>
Mapeo 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 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íticasForAllValues
y 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 |
---|---|---|
|
|
Lista de cadenas |
|
|
Lista de cadenas |
|
|
Cadena |
|
|
Lista de cadenas |
|
|
Cadena |
|
|
Cadena |
|
|
Lista de cadenas |
|
|
Cadena |
|
|
Lista de cadenas |
|
|
Lista de cadenas |
|
|
Lista de cadenas |
|
|
Lista de cadenas |
|
|
Lista de cadenas |
|
|
Lista de cadenas |
|
|
Lista de cadenas |
|
|
Lista de cadenas |
|
|
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 |
---|---|---|
|
|
Cadena |
|
|
Cadena |
|
|
Cadena |
|
|
Cadena |
|
|
Cadena |
|
|
Cadena |
En la siguiente tabla, se muestran los atributos X.500.
Atributo X.500 | Se asigna con esta clave de contexto AWS | Tipo |
---|---|---|
|
|
Cadena |
|
|
Cadena |
|
|
Cadena |
|
|
Cadena |
|
|
Cadena |
|
|
Cadena |
|
|
Cadena |