Autenticación SAML para Amazon OpenSearch sin servidor - OpenSearch Servicio Amazon

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autenticación SAML para Amazon OpenSearch sin servidor

Con la autenticación SAML para Amazon OpenSearch sin servidor, puede utilizar su proveedor de identidades existente con el fin de brindar inicio de sesión único (SSO) para OpenSearch Dashboards de colecciones sin servidor.

La autenticación SAML le permite utilizar proveedores de identidad de terceros para iniciar sesión en OpenSearch Dashboards a fin de indexar y buscar datos. OpenSearch sin servidor admite proveedores que utilizan el estándar SAML 2.0, como IAM Identity Center, Okta, Keycloak, Active Directory Federation Services (AD FS) y Auth0. Puede configurar IAM Identity Center para sincronizar usuarios y grupos de otros orígenes de identidades, como Okta, OneLogin y Microsoft Entra ID. Para obtener una lista de los orígenes de identidades que admite IAM Identity Center y los pasos para configurarlos, consulte Getting started tutorials en la Guía del usuario de IAM Identity Center.

nota

La autenticación SAML es solo para acceder a OpenSearch Dashboards a través de un navegador web. Los usuarios autenticados solo pueden realizar solicitudes a las operaciones de la API de OpenSearch a través de las herramientas de desarrollo de OpenSearch Dashboards. Las credenciales de SAML no permiten realizar solicitudes HTTP directas a las operaciones de la API de OpenSearch.

Para configurar la autenticación SAML, primero debe configurar un proveedor de identidades (IdP) SAML. A continuación, se incluyen uno o más usuarios de ese IdP en una política de acceso a datos. Esta política le otorga ciertos permisos para las colecciones o los índices. A continuación, el usuario puede iniciar sesión en OpenSearch Dashboards y realizar las acciones permitidas en la política de acceso a los datos.

SAML authentication flow with data access policy, OpenSearch interface, and JSON configuration.

Consideraciones

A la hora de configurar la autenticación SAML, tenga en cuenta lo siguiente:

  • No se admiten las solicitudes firmadas y cifradas.

  • No se admiten las aserciones cifradas.

  • No se admite la autenticación ni el cierre de sesión iniciada por el IDP.

  • Las políticas de control de servicios (SCP) no se aplicarán ni evaluarán en el caso de identidades que no sean de IAM (como SAML en Amazon OpenSearch sin servidor y SAML y la autorización de usuario interna básica para Amazon OpenSearch Service).

Permisos necesarios

La autenticación SAML para OpenSearch sin servidor utiliza los siguientes permisos AWS Identity and Access Management (IAM):

  • aoss:CreateSecurityConfig: cree un proveedor SAML.

  • aoss:ListSecurityConfig: enumere todos los proveedores de SAML en la cuenta actual.

  • aoss:GetSecurityConfig: vea la información del proveedor de SAML.

  • aoss:UpdateSecurityConfig: modifique la configuración de proveedor de SAML determinada, incluidos los metadatos XML.

  • aoss:DeleteSecurityConfig: elimine un proveedor SAML.

La siguiente política de acceso basada en la identidad permite al usuario administrar todas las configuraciones de IdP:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aoss:CreateSecurityConfig", "aoss:DeleteSecurityConfig", "aoss:GetSecurityConfig", "aoss:UpdateSecurityConfig", "aoss:ListSecurityConfigs" ], "Effect": "Allow", "Resource": "*" } ] }

Tenga en cuenta que el elemento Resource debe ser un comodín.

Crear proveedores SAML de (consola)

En estos pasos se explica cómo crear proveedores de SAML. Esto permite la autenticación SAML con autenticación iniciada por el proveedor de servicios (SP) para OpenSearch Dashboards. No se admite la autenticación IdP.

Para habilitar la autenticación SAML para OpenSearch Dashboards
  1. Inicie sesión en la consola de Amazon OpenSearch Service en https://console.aws.amazon.com/aos/home.

  2. En el panel de navegación de la izquierda, expanda Sin servidor y seleccione Autenticación SAML.

  3. Seleccione Agregar proveedor SAML.

  4. Escriba un nombre y una descripción para el proveedor.

    nota

    El nombre que especifique es de acceso público y aparecerá en un menú desplegable cuando los usuarios inicien sesión en OpenSearch Dashboards. Asegúrese de que el nombre sea fácilmente reconocible y no revele información confidencial sobre su proveedor de identidad.

  5. En Configurar IdP, copie la URL del servicio al consumidor de aserciones (ACS).

  6. Utilice la URL de ACS que acaba de copiar para configurar su proveedor de identidades. La terminología y los pasos varían según el proveedor. Consulte la documentación de su proveedor.

    En Okta, por ejemplo, se crea una “aplicación web SAML 2.0” y se especifica la URL de ACS como URL de inicio de sesión única, URL de destinatario y URL de destino. Para Auth0, debe especificarlo en las URL de devolución de llamadas permitidas.

  7. Indique la restricción de audiencia si su IdP tiene un campo para ello. La restricción de audiencia es un valor dentro de la aserción SAML que especifica a quién va dirigida esta. Para OpenSearch sin servidor, especifique aws:opensearch:<aws account id>. Por ejemplo, aws:opensearch:123456789012.

    El nombre del campo de restricción de audiencia varía según el proveedor. Para Okta, es Audiencia URI (ID de entidad del SP). En el caso de IAM Identity Center, es la audiencia de Application SAML.

  8. Si utiliza IAM Identity Center, también debe especificar el siguiente asignación de atributos: Subject=${user:name}, con un formato de unspecified.

  9. Después de configurar el proveedor de identidades, genera un archivo de metadatos de IdP. Este archivo XML contiene información sobre el proveedor, como un certificado TLS, puntos de conexión de inicio de sesión único y el ID de entidad del proveedor de identidad.

    Copie el texto del archivo de metadatos del IdP y péguelo en Proporcionar metadatos desde el campo de IdP. Alternativamente, seleccione Importar desde archivo XML y cargue el archivo. El archivo de metadatos debe tener un aspecto similar al siguiente:

    <?xml version="1.0" encoding="UTF-8"?> <md:EntityDescriptor entityID="entity-id" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:KeyDescriptor use="signing"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate>tls-certificate</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo>s </md:KeyDescriptor> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="idp-sso-url"/> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="idp-sso-url"/> </md:IDPSSODescriptor> </md:EntityDescriptor>
  10. Mantenga vacío el campo Atributo ID de usuario personalizado para utilizar el elemento NameID de la aserción SAML para el nombre de usuario. Si su aserción no utiliza este elemento estándar y, en su lugar, incluye el nombre de usuario como un atributo personalizado, especifique ese atributo aquí. Los atributos distinguen entre mayúsculas y minúsculas. Solo se admite un único atributo de usuario.

    El siguiente ejemplo muestra un atributo de anulación para NameID en la aserción SAML:

    <saml2:Attribute Name="UserId" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">annie</saml2:AttributeValue> </saml2:Attribute>
  11. (Opcional) Especifique un atributo personalizado en el campo Atributos del grupo, como role o group. Solo se admite un único atributo de grupo. No hay ningún atributo de grupo predeterminado. Si no especifica ninguna, sus políticas de acceso a datos solo pueden contener entidades principales de usuario.

    El siguiente ejemplo muestra un atributo de grupo en la aserción SAML:

    <saml2:Attribute Name="department" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">finance</saml2:AttributeValue> </saml2:Attribute>
  12. De manera predeterminada, la sesión de los usuarios de OpenSearch Dashboards se cierra al cabo de 24 horas. Puede establecer este valor en cualquier número comprendido entre 1 y 12 horas (15 y 720 minutos) especificando el Tiempo de espera de OpenSearch Dashboards. Si intenta establecer el tiempo de espera igual o inferior a 15 minutos, la sesión se restablecerá a una hora.

  13. Seleccione Crear proveedor.

Acceso a OpenSearch Dashboards

Después de configurar un proveedor de SAML, todos los usuarios y grupos asociados a ese proveedor pueden navegar hasta el punto de conexión de OpenSearch Dashboards. La URL de Dashboards tiene el formato collection-endpoint/_dashboards/ para todas las colecciones.

Si tiene SAML activado, al seleccionar el enlace que aparece en la AWS Management Console, será dirigido a la página de selección de IdP, donde puede iniciar sesión con sus credenciales de SAML. Primero, use el menú desplegable para seleccionar un proveedor de identidades:

OpenSearch login page with dropdown menu for selecting SAML Identity Provider options.

Inicie sesión con sus credenciales de usuario de IdP.

Si no tiene SAML activado, al seleccionar el enlace que aparece en la AWS Management Console, se le indica que inicie sesión como rol o usuario de IAM, sin opción de usar SAML.

Concesión de acceso a las identidades de SAML a los datos de la colección

Después de crear un proveedor de SAML, aún tendrá que concederles acceso a los datos de sus colecciones a los usuarios y grupos subyacentes. Para concederles el acceso deberá hacerlo a través de políticas de acceso a datos. Hasta que no les proporcione acceso a los usuarios, estos no podrán leer, escribir ni eliminar ningún dato de sus colecciones.

Para conceder el acceso, cree una política de acceso a los datos y especifique sus ID de usuario o grupo de SAML en la declaración de Principal:

[ { "Rules":[ ... ], "Principal":[ "saml/987654321098/myprovider/user/Shaheen", "saml/987654321098/myprovider/group/finance" ] } ]

Puede concederles acceso a colecciones, índices o ambos. Si desea que diferentes usuarios tengan permisos diferentes, cree varias reglas. Para obtener una lista de los permisos disponibles, consulte Permisos de políticas compatibles. Para obtener información sobre cómo dar formato a una política de acceso, consulte Sintaxis de políticas.

Creación de proveedores SAML (AWS CLI)

Para crear un proveedor de SAML mediante la API de OpenSearch sin servidor, envíe una solicitud CreateSecurityConfig:

aws opensearchserverless create-security-config \ --name myprovider \ --type saml \ --saml-options file://saml-auth0.json

Especifique saml-options, incluido el XML de los metadatos, como un mapa clave-valor dentro de un archivo .json. El XML de los metadatos debe estar codificado como una cadena de escape JSON.

{ "sessionTimeout": 70, "groupAttribute": "department", "userAttribute": "userid", "metadata": "<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ... ... ... IDPSSODescriptor>\r\n<\/EntityDescriptor>" }

Ver proveedores SAML

La siguiente solicitud ListSecurityConfigs muestra todos los proveedores de SAML de su cuenta:

aws opensearchserverless list-security-configs --type saml

La solicitud devuelve información sobre todos los proveedores de SAML existentes, incluidos los metadatos completos del IdP que genera su proveedor de identidades:

{ "securityConfigDetails": [ { "configVersion": "MTY2NDA1MjY4NDQ5M18x", "createdDate": 1664054180858, "description": "Example SAML provider", "id": "saml/123456789012/myprovider", "lastModifiedDate": 1664054180858, "samlOptions": { "groupAttribute": "department", "metadata": "<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ... ... ... IDPSSODescriptor>\r\n<\/EntityDescriptor>", "sessionTimeout": 120, "userAttribute": "userid" } } ] }

Para ver los detalles de un proveedor específico, incluida la configVersion para actualizaciones futuras, envíe una solicitud GetSecurityConfig.

Actualización de proveedores SAML

Para actualizar un proveedor de SAML mediante la consola de OpenSearch sin servidor, seleccione Autenticación SAML, seleccione su proveedor de identidad y elija Editar. Puede modificar todos los campos, incluidos los metadatos y los atributos personalizados.

Para actualizar un proveedor a través de la API de OpenSearch sin servidor, envíe una solicitud UpdateSecurityConfig e incluya el identificador de la política que se va a actualizar. También debe incluir una versión de configuración, que puede recuperar mediante los comandos ListSecurityConfigs o GetSecurityConfig. Incluir la versión más reciente garantiza que no se anule inadvertidamente un cambio realizado por otra persona.

La siguiente solicitud actualiza las opciones de SAML de un proveedor:

aws opensearchserverless update-security-config \ --id saml/123456789012/myprovider \ --type saml \ --saml-options file://saml-auth0.json \ --config-version MTY2NDA1MjY4NDQ5M18x

Especifique las opciones de configuración de SAML como un mapa clave-valor dentro de un archivo .json.

importante

Las actualizaciones de las opciones de SAML no son graduales. Si al realizar una actualización no especifica el valor para un parámetro en el objeto SAMLOptions, los valores existentes se sustituirán por valores vacíos. Por ejemplo, si la configuración actual contiene un valor para userAttribute y luego hace una actualización y no incluye este valor, el valor se elimina de la configuración. Asegúrese de saber cuáles son los valores existentes antes de realizar una actualización llamando a la operación GetSecurityConfig.

Eliminar proveedores SAML

Al eliminar un proveedor de SAML, las referencias de los usuarios y grupos asociados en las políticas de acceso a datos dejan de funcionar. Para evitar confusiones, le recomendamos que elimine todas las referencias al punto de conexión en sus políticas de acceso antes de eliminar el punto de conexión.

Para eliminar un proveedor de SAML mediante la consola de OpenSearch sin servidor, seleccione Autenticación, seleccione el proveedor y elija Eliminar.

Para eliminar un proveedor a través de la API de OpenSearch sin servidor, envíe una solicitud DeleteSecurityConfig:

aws opensearchserverless delete-security-config --id saml/123456789012/myprovider