En la era del rápido avance de la tecnología de la nube, donde la infraestructura como servicio (IaaS) y la plataforma como servicio (PaaS) son parte integral de numerosos proyectos, la demanda de una integración perfecta de diversos servicios en la nube es innegable. Microsoft, un actor importante en este panorama, invirtió un tiempo considerable en crear el servicio Microsoft Entra ID fácil de usar. Sin embargo, a pesar de las instrucciones meticulosamente expuestas de los proveedores, los especialistas suelen encontrar problemas al configurar integraciones con plataformas como Slack, Salesforce o Datadog. La documentación se queda corta a la hora de proporcionar respuestas a preguntas específicas.
El equipo de Social Discovery Group también enfrentó estos desafíos y, en este artículo, ofreceremos información sobre cómo navegarlos y resolverlos.
En su cartera de más de 50 plataformas de citas, Social Discovery Group utiliza diversas tecnologías y servicios en la nube para garantizar su seguridad y confiabilidad. Contamos con amplia experiencia en la integración y configuración de diferentes sistemas, incluidas conexiones peer-to-peer entre varias nubes.
Microsoft Entra ID es una solución en la nube para la gestión de identidades y accesos, que actúa como un servicio de directorio y autenticación que opera en la nube. Microsoft Entra ID ofrece servicios de autenticación y autorización para varios servicios de Microsoft y de terceros. En este artículo, exploraremos la integración de los siguientes sistemas en la nube: Slack, MongoAtlas, ElasticCloud, Salesforce y Datadog.
Ante la falta de una guía precisa, decidimos crear la nuestra propia, detallando todos los quebraderos de cabeza que surgieron en el camino. Entonces, naveguemos a la sección "Aplicación empresarial" en Azure.
Es necesario crear una nueva aplicación corporativa (esto se puede hacer con unos pocos clics). A continuación, acceda a la aplicación que acabamos de crear y configure Single Sign-On – SAML. Realice cambios de arriba a abajo:
Cree un rol de "Miembro" (o elija otro nombre). A continuación, cree un usuario de prueba en Microsoft Entra ID y agréguelo a nuestra aplicación. Luego, vaya al Centro de administración en Slack. Siga los pasos: Slack Admin - Autenticación - Configuración SAML - Configurar
El siguiente paso es configurar SAML. Recomendamos prestar atención a la configuración "Nombre para mostrar". Además, en la configuración, desmarque "Actualizar perfil al iniciar sesión", no permita cambiar la dirección de correo electrónico y el nombre para mostrar.
También existe una opción para personalizar el texto en el botón de inicio de sesión y prohibir a los usuarios iniciar sesión utilizando cualquier otro método excepto SSO. Después de esto, deberías poder iniciar sesión en Slack usando tu cuenta de Microsoft. Si se necesitan campos o configuraciones adicionales, esto se puede hacer a través de Azure AD Provision.
Para agregar un nuevo atributo, vaya a Atributos de usuario y seleccione Agregar nueva asignación. Elija el atributo de origen que desee que se muestre en Slack y asócielo con el atributo de Slack correspondiente.
Después de agregar los atributos necesarios y guardar la configuración, continúe con Provision on Demand para probar la funcionalidad. Si obtiene un resultado positivo, recibirá lo siguiente:
A continuación, debe ir a Slack y especificar qué atributos mostrar en el perfil de usuario completo y dónde recuperarlos. Vaya a Perfiles y elija la información que se mostrará y de dónde se obtendrá. En este caso SCIM corresponde a Azure AD.
A continuación, recomendamos agregar los usuarios necesarios de Active Directory a Slack para experimentar una integración perfecta. También queremos llamar la atención sobre un problema encontrado al eliminar usuarios: si un usuario se elimina manualmente de Slack (a través del centro de administración de Slack), persistirá un error que indica que el usuario no puede transferirse a Slack debido a permisos insuficientes. Esto ocurre porque Entra ID retiene información sobre los usuarios dentro del alcance y les asigna una identificación única. Entra ID percibe que eliminar y volver a agregar un usuario en Slack es un usuario nuevo, lo que genera problemas de permisos durante las actualizaciones.
Consulta la documentación aquí .
Para MongoAtlas, el proceso sigue un camino similar. También necesitarás crear una nueva aplicación corporativa; para mayor facilidad, ingrese "MongoDB Atlas — SSO" en el campo de búsqueda. Puede encontrar instrucciones más detalladas aquí.
A continuación, vaya a la configuración de Inicio de sesión único, donde deberá ingresar lo siguiente:
En el campo de texto "Identificador", ingrese la URL usando la siguiente plantilla: https://www.okta.com/saml2/service-provider/<Customer_Unique>
En el campo de texto "URL de respuesta", ingrese la URL usando la plantilla:
https://auth.mongodb.com/sso/saml2/<Cliente_Único>
En el campo de texto "URL de inicio de sesión", ingrese la URL usando la plantilla: https://cloud.mongodb.com/sso/<Customer_Unique>
Recomendamos prestar atención a la sección Atributos y configurarla como se muestra en la siguiente captura de pantalla (era imprescindible agregar "memberOf").
A continuación, en la página "Configuración del inicio de sesión único con SAML", vaya a la sección "Certificado de firma SAML" y busque los metadatos XML para la federación. Seleccione "Descargar" para descargar el certificado y guardarlo localmente (XML de metadatos de federación). Lo necesitaremos más adelante en MongoDB Atlas.
En la sección "Configuración de MongoDB Atlas - SSO", copie las URL respectivas. A continuación, navegue hasta MongoDB Atlas -> Organización -> Configuración -> Configuración de autenticación federada .
Comience agregando el proveedor de credenciales Microsoft Entra ID en Atlas. Ingrese las URL respectivas mencionadas en el paso anterior desde el portal de Microsoft (URI del emisor, URL de inicio de sesión, URL de inicio de sesión único) , cargue el Certificado de firma del proveedor de identidad y configure las configuraciones restantes como se muestra en la captura de pantalla a continuación .
Haga clic en "Siguiente" y guarde el archivo de metadatos localmente, ya que deberá cargarlo más adelante en Azure en la página de configuración de inicio de sesión único.
A continuación, agregue, asigne y valide el dominio, por ejemplo, utilizando los registros TXT correspondientes generados en MongoDB Atlas. Después de eso, vincula tu dominio con el proveedor de credenciales y pasa a la parte más interesante: la configuración de roles.
Hemos creado los siguientes roles como ejemplo, cada uno con permisos específicos otorgados a proyectos. Luego, debe asignar estos roles a roles de Azure. Vaya a "Roles de aplicación" para su aplicación, cree y agregue roles con valores que coincidan exactamente con los nombres que acaba de asignar a estos roles en MongoAtlas.
Luego, agregue usuarios a la aplicación en la aplicación empresarial Microsoft Entra ID y asígneles las funciones adecuadas. Active "Iniciar sesión con Azure SSO" en la sección Gestión de federaciones en MongoDB Atlas y verifique el correcto funcionamiento de los ajustes configurados.
Consulte la documentación aquí para obtener instrucciones más detalladas.
Pasemos a la integración con Elastic Cloud. Los pasos fundamentales para crear una aplicación en Enterprise Application Entra ID son similares a los anteriores. Allí podrá encontrar información sobre dónde obtener el Identificador o la URL de cierre de sesión. Sin embargo, encontramos un problema con los atributos, por lo que proporcionaremos una captura de pantalla de nuestra configuración de trabajo.
Creamos dos roles: lector y superusuario.
Aquí puedes crear tantos roles como necesites. La configuración de roles en Elasticsearch se configura en Asignaciones de roles y tiene el siguiente aspecto:
Ahora viene la parte interesante. Es necesario hacer dos cosas: agregar la configuración de SSO de Azure para Kibana y Elasticsearch. Para lograr esto, siga estos pasos:
Navegue a la sección de edición de su implementación de Elasticsearch Cloud para actualizar la configuración de elasticsearch.yml. Agregue las siguientes líneas:
“ xpack:
security:
authc:
realms:
saml:
saml-azure-ad:
order: 2
attributes.principal: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
attributes.groups: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role"
attributes.name: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"
attributes.mail: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
idp.metadata.path: "APP Federation metadata URL"
idp.entity_id: "Azure Entra ID Identifier"
sp.entity_id: "Kibana endpoint"
sp.acs: "Kibana endpoint/api/security/v1/saml"
sp.logout: "Kibana endpoint/logout" “
Después de agregar y modificar los valores resaltados en rojo para que coincidan con su configuración, haga clic en "Guardar". Elastic Cloud validará todos los cambios e iniciará la actualización del clúster. Este proceso puede tardar unos minutos.
“ xpack.security.authc.providers:
saml.saml1:
order: 0
realm: saml-azure-ad
description: "Log in with Azure Entra ID"
basic.basic1:
order: 1 ”
Después de completar los dos pasos anteriores, debería estar disponible otra opción de inicio de sesión en su página de inicio de sesión de Kibana. A continuación, continúe agregando usuarios a la aplicación en la aplicación empresarial Microsoft Entra ID y asignándoles los roles necesarios.
Consulte la documentación aquí para obtener más información.
La integración con Salesforce fue un poco más compleja que las anteriores. Los pasos iniciales son similares, pero se debe prestar atención a la sección de Aprovisionamiento. Existen matices con respecto a la especificación de las credenciales de administrador bajo las cuales se producirá la sincronización de la cuenta, y es necesario habilitar la asignación de atributos.
Aquí hay un ejemplo de nuestros ajustes de configuración en la captura de pantalla. No encontramos ningún problema importante con los atributos, pero también proporcionaremos una captura de pantalla de los que utilizamos.
En Salesforce en sí, no hubo matices particulares y procedimos con los siguientes pasos como se describe en esta guía .
Durante la integración con Datadog, también encontramos algunos problemas. La documentación principal que nos guió se puede encontrar aquí . Para conocer los matices de solución de problemas, consultamos esta guía.
Todo empezó sin problemas y al principio parecía que no habría ningún problema. Como de costumbre, creamos una nueva aplicación empresarial en Microsoft Entra ID.
En la sección "Configurar el inicio de sesión único con SAML", preste atención a la ubicación que seleccionó para su cuenta de Datadog. En nuestro caso, fue la región de Europa.
Como se mencionó anteriormente, para MongoAtlasDB, agregamos el atributo adicional "memberOf" para el mapeo de roles.
Guarde todas las configuraciones y descargue el XML de metadatos de federación. Cargue este archivo en la configuración de SAML en Datadog. Aquí hay un enlace conveniente como referencia. Configuración de Datadog SAML (reemplace "UE" con la zona de dominio adecuada si su ubicación es diferente). Debería verse como la captura de pantalla a continuación.
En la configuración de Métodos de inicio de sesión de la organización, conserve solo lo necesario (en mi caso, desactivé el inicio de sesión con contraseña y Google Authenticate). Agregue roles en Azure en el registro de la aplicación para Microsoft Entra ID.
Aquí viene la parte más interesante. Navegue a Asignaciones de grupos SAML -> Asignaciones de roles en Datadog y agregue la clave, el valor y el rol. Parece sencillo. Vea la captura de pantalla a continuación.
Pero no funciona y sigue dando el error "No hay AuthNMappings para este usuario".
Durante bastante tiempo, intentamos comprender qué estábamos haciendo mal, revisando toda la documentación, los registros y las páginas de solución de problemas. Desafortunadamente, no se mencionó esto en ninguna parte. Al final, la solución es sencilla: sigue la configuración que se muestra en la siguiente captura de pantalla.
En el campo CLAVE, ingrese la cadena: http://schemas.microsoft.com/ws/2008/06/identity/claims/role
Después de hacer esto, todo empezó a funcionar correctamente.
"Esta es solo una pequeña parte de los sistemas que integramos con Microsoft Entra ID. Esperamos que los conocimientos compartidos aquí sirvan como un recurso útil, agilicen sus procesos de integración y ahorren tiempo valioso. En conclusión, las siguientes ventajas de usar Microsoft Se puede destacar Entra ID: inicio de sesión único, que no requiere ingresar la contraseña varias veces; no se requieren componentes adicionales; facilidad de configuración y administración; políticas de grupo y grupos; registro de dispositivos; y seguridad de alto nivel.