Uso de identidades administradas para acceder a Azure SQL Database o Azure Synapse Analytics desde un trabajo de Azure Stream Analytics

Azure Stream Analytics admite la autenticación de identidades administradas para los receptores de salida de Azure SQL Database y Azure Synapse Analytics. Las identidades administradas eliminan las limitaciones de los métodos de autenticación basada en el usuario, como la necesidad de volver a realizar la autenticación debido a los cambios de contraseña o la expiración de tokens de usuario que se produce cada 90 días. Cuando se elimina la necesidad de autenticarse manualmente, las implementaciones de Stream Analytics se pueden automatizar completamente.

Una identidad administrada es una aplicación administrada registrada en Microsoft Entra ID que representa un trabajo de Stream Analytics determinado. La aplicación administrada se usa para la autenticación en un recurso de destino. En este artículo se muestra cómo habilitar la identidad administrada para las salidas de Azure SQL Database o Azure Synapse Analytics de un trabajo de Stream Analytics a través de Azure Portal.

Información general

En este artículo se muestran los pasos necesarios para conectar el trabajo de Stream Analytics al grupo de SQL de Azure SQL Database o Azure Synapse Analytics mediante el modo de autenticación de identidad administrada.

  • En primer lugar, debe crear una identidad administrada asignada por el sistema para el trabajo de Stream Analytics. Esta es la identidad de su trabajo en Microsoft Entra ID.

  • Agregue un administrador de Active Directory al área de trabajo de SQL Server o Synapse, lo que habilita la autenticación de Microsoft Entra ID (identidad administrada) para ese recurso.

  • A continuación, cree un usuario independiente que represente la identidad del trabajo de Stream Analytics en la base de datos. Siempre que el trabajo de Stream Analytics interactúe con el recurso de base de datos SQL o Synapse SQL, esta será la identidad a la que hará referencia para comprobar los permisos que tiene el trabajo de Stream Analytics.

  • Conceda permisos al trabajo de Stream Analytics para acceder a los grupos de SQL de Synapse o SQL Database.

  • Por último, agregue la instancia de Azure SQL Database o Azure Synapse Analytics como salida en el trabajo de Stream Analytics.

Requisitos previos

Para usar esta característica se requiere lo siguiente:

  • Un trabajo de Azure Stream Analytics.

  • Un recurso de Azure SQL Database.

Creación de una entidad administrada

En primer lugar, debe crear una identidad administrada para el trabajo de Azure Stream Analytics.

  1. En Azure Portal, abra el trabajo de Azure Stream Analytics.

  2. En el menú de navegación izquierdo, seleccione Identidad administrada en Configurar. A continuación, active la casilla situada junto a Usar la identidad administrada asignada por el sistema y seleccione Guardar.

    Select system-assigned managed identity

    Se crea una entidad de servicio para la identidad del trabajo de Stream Analytics en Microsoft Entra ID. El ciclo de vida de la identidad recién creada lo administrará Azure. Cuando se elimina el trabajo de Stream Analytics, Azure elimina automáticamente la identidad asociada (es decir, la entidad de servicio).

  3. También puede cambiar a identidades administradas asignadas por el usuario.

  4. Cuando se guarda la configuración, el id. de objeto (OID) de la entidad de servicio aparece como id. de entidad de seguridad, tal como se muestra a continuación:

    Object ID shown as Principal ID

    La entidad de servicio se llama igual que el trabajo de Stream Analytics. Por ejemplo, si es el nombre del trabajo es MyASAJob, el nombre de la entidad de servicio también será MyASAJob.

Selección de un administrador de Active Directory

Después de crear una identidad administrada, seleccione un administrador de Active Directory.

  1. Vaya al recurso del grupo de SQL de Azure SQL Database o Azure Synapse Analytics y seleccione la instancia de SQL Server o el área de trabajo de Synapse en la que se encuentra el recurso, respectivamente. Puede encontrar el vínculo a estos en la página de información general del recurso, junto a Nombre del servidor o Nombre del área de trabajo.

  2. Seleccione Administrador de Active Directory o Administrador de Active Directory de SQL en Configuración, para SQL Server y el área de trabajo de Synapse, respectivamente. A continuación, seleccione Establecer administrador.

    Active Directory admin page

  3. En la página Administrador de Active Directory, busque un usuario o un grupo para que sea administrador de SQL Server y haga clic en Seleccionar. Este será el usuario que podrá crear el usuario de base de datos independiente en la sección siguiente.

    Add Active Directory admin

    En la hoja Administrador de Active Directory se muestran todos los miembros y grupos de Active Directory. Los usuarios o grupos que aparecen atenuados no se pueden seleccionar porque no se admiten como administradores de Microsoft Entra. Consulte la lista de administradores admitidos en la sección Características y limitaciones de Microsoft Entra del artículo Uso de la autenticación de Microsoft Entra con SQL Database o Azure Synapse.

  4. Seleccione Guardar en la página Administrador de Active Directory. El proceso para cambiar el administrador tarda unos minutos.

Creación de un usuario de base de datos independiente

A continuación, cree un usuario de base de datos independiente en su base de datos de Azure SQL o Azure Synapse que esté asignado a la identidad de Microsoft Entra. El usuario de base de datos independiente no tiene un inicio de sesión para la base de datos principal, sino que se asigna a una identidad del directorio que está asociada a la base de datos. La identidad de Microsoft Entra puede ser una cuenta de usuario individual o un grupo. En este caso, puede crear un usuario de base de datos independiente para el trabajo de Stream Analytics.

Para obtener más información, consulte el siguiente artículo sobre la integración de Microsoft Entra: Uso de la autenticación multifactor de Azure Active Directory.

  1. Conéctese a la base de datos de Azure SQL o Azure Synapse mediante SQL Server Management Studio. El nombre de usuario es un usuario de Microsoft Entra con el permiso ALTER ANY USER. El administrador que estableció en SQL Server es un ejemplo. Use Microsoft Entra ID – Universal con autenticación MFA.

    Connect to SQL Server

    El nombre del servidor <SQL Server name>.database.windows.net puede ser diferente en distintas regiones. Por ejemplo, la región de China debe utilizar <SQL Server name>.database.chinacloudapi.cn.

    Para especificar una base de datos de Azure SQL o Azure Synapse específica, vaya a Opciones > Propiedades de conexión > Conectar con base de datos.

    SQL Server connection properties

  2. Cuando se conecta por primera vez, puede que se muestre la siguiente ventana:

    New firewall rule window

    1. En ese caso, vaya al recurso de SQL Server o del área de trabajo de Synapse en Azure Portal. En la sección Seguridad, abra la página Firewalls y red virtual/Firewalls.
    2. Agregue una nueva regla con cualquier nombre.
    3. Use la dirección IP De de la ventana Nueva regla de firewall para IP de inicio.
    4. Use la dirección IP de A de la ventana Nueva regla de firewall para IP final.
    5. Seleccione Guardar e intente conectarse de nuevo desde SQL Server Management Studio.
  3. Una vez que esté conectado, cree el usuario de base de datos independiente. El siguiente comando de SQL crea un usuario de base de datos independiente que tiene el mismo nombre que el trabajo de Stream Analytics. Asegúrese de incluir los corchetes alrededor de ASA_JOB_NAME. Use la siguiente sintaxis de T-SQL y ejecute la consulta.

    CREATE USER [ASA_JOB_NAME] FROM EXTERNAL PROVIDER;
    

    Para comprobar si ha agregado el usuario de base de datos independiente correctamente, ejecute el siguiente comando en SSMS en la base de datos correspondiente y compruebe si el valor de ASA_JOB_NAME está en la columna "Name" (Nombre).

    SELECT * FROM <SQL_DB_NAME>.sys.database_principals
    WHERE type_desc = 'EXTERNAL_USER'
    
  4. Para que Microsoft Entra ID de Microsoft compruebe si el trabajo de Stream Analytics tiene acceso a la instancia de SQL Database, es necesario concederle permiso para comunicarse con la base de datos. Para ello, vaya de nuevo a la página "Firewalls y red virtual"/"Firewalls" de Azure Portal y habilite "Permitir que los servicios y recursos de Azure accedan a este servidor" o "Permitir que los servicios y recursos de Azure accedan a esta área de trabajo".

    Firewall and virtual network

Concesión de permisos del trabajo de Stream Analytics

Una vez que se haya creado un usuario de base de datos independiente y se le haya proporcionado acceso a los servicios de Azure en el portal como se ha descrito en la sección anterior, el trabajo de Stream Analytics tiene permiso de identidad administrada para CONECTARSE al recurso de base de datos de Azure SQL a través de la identidad administrada. Se recomienda conceder los permisos SELECT e INSERT al trabajo de Stream Analytics, ya que se necesitarán más adelante en el flujo de trabajo de Stream Analytics. El permiso SELECT permite que el trabajo pruebe su conexión con la tabla de la instancia de base de datos de Azure SQL. El permiso INSERT permite probar las consultas de Stream Analytics de un extremo a otro una vez que haya configurado una entrada y la salida de la base de datos de Azure SQL.

Puede conceder estos permisos al trabajo de Stream Analytics mediante SQL Server Management Studio. Para obtener más información, consulte la referencia de GRANT (Transact-SQL).

Para conceder solo permiso a una tabla o un objeto determinado de la base de datos, use la siguiente sintaxis de T-SQL y ejecute la consulta.

GRANT CONNECT TO ASA_JOB_NAME;
GRANT SELECT, INSERT ON OBJECT::TABLE_NAME TO ASA_JOB_NAME;

Como alternativa, puede hacer clic con el botón derecho en su base de datos de Azure SQL o Azure Synapse en SQL Server Management Studio y seleccionar Propiedades > Permisos. En el menú de permisos, puede ver el trabajo de Stream Analytics que agregó anteriormente y conceder o denegar los permisos manualmente según considere oportuno.

Para ver todos los permisos que ha agregado al usuario ASA_JOB_NAME, ejecute el siguiente comando en SSMS en la base de datos correspondiente:

SELECT dbprin.name, dbprin.type_desc, dbperm.permission_name, dbperm.state_desc, dbperm.class_desc, object_name(dbperm.major_id)
FROM sys.database_principals dbprin
LEFT JOIN sys.database_permissions dbperm
ON dbperm.grantee_principal_id = dbprin.principal_id
WHERE dbprin.name = '<ASA_JOB_NAME>'

Creación de una salida de Azure SQL Database o Azure Synapse

Nota:

Al usar SQL Managed Instance (MI) como entrada de referencia, debe configurar un punto de conexión público en la instancia administrada de SQL. Debe especificar el nombre de dominio completo con el puerto al configurar la propiedad database. Por ejemplo, sampleserver.public.database.windows.net,3342.

Ahora que la identidad administrada está configurada, está listo para agregar una salida de Azure SQL Database o Azure Synapse a su trabajo de Stream Analytics.

Asegúrese de haber creado una tabla en la instancia de SQL Database con el esquema de salida adecuado. El nombre de esta tabla es una de las propiedades necesarias que se debe rellenar cuando se agrega la salida de SQL Database al trabajo de Stream Analytics. Además, asegúrese de que el trabajo tiene permisos SELECT e INSERT para probar la conexión y ejecutar consultas de Stream Analytics. Consulte la sección Concesión de permisos de trabajos de Stream Analytics si todavía no lo ha hecho.

  1. Vuelva al trabajo de Stream Analytics y vaya a la página Salidas en Topología de trabajo.

  2. Seleccione Agregar > SQL Database. En la ventana de propiedades de salida del receptor de salida de SQL Database, seleccione Identidad administrada en la lista desplegable Modo de autenticación.

  3. Rellene el resto de las propiedades. Para más información acerca de cómo crear una salida de SQL Database, consulte Creación de una salida de SQL Database con Stream Analytics. Cuando haya terminado, seleccione Guardar.

  4. Después de hacer clic en Guardar, se debe desencadenar automáticamente una prueba de conexión para el recurso. Una vez que se complete correctamente, habrá configurado correctamente el trabajo de Stream Analytics para conectarse a la base de datos de Azure SQL o Synapse SQL mediante el modo de autenticación de identidad administrada.

Pasos adicionales para los datos de referencia de SQL

Azure Stream Analytics requiere que configure la cuenta de almacenamiento del trabajo al usar datos de referencia de SQL. Esta cuenta de almacenamiento se utiliza para almacenar contenido relacionado con su trabajo de Stream Analytics, como instantáneas de datos de referencia de SQL.

Siga estos pasos para configurar una cuenta de almacenamiento asociada:

  1. En la página de trabajo de Stream Analytics, seleccione Configuración de cuenta de almacenamiento en Configuración en el menú izquierdo.

  2. En la página Configuración de la cuenta de almacenamiento, seleccione Agregar cuenta de almacenamiento.

  3. Siga las instrucciones para configurar la configuración de la cuenta de almacenamiento.

    Screenshot of the Storage account settings page of a Stream Analytics job.

Importante

  • Para autenticarse con la cadena de conexión, debe deshabilitar la configuración del firewall de la cuenta de almacenamiento.
  • Para autenticarse con Identidad administrada, debe agregar el trabajo de Stream Analytics a la lista de control de acceso de la cuenta de almacenamiento para los roles de Colaborador de datos de blobs de almacenamiento y de Colaborador de datos de la tabla de almacenamiento. Si no proporciona acceso al trabajo, este no podrá realizar ninguna operación. Para obtener más información sobre cómo conceder acceso, consulte Uso de Azure RBAC para asignar el acceso de una identidad administrada a otro recurso.

Pasos adicionales con la identidad administrada asignada por el usuario

Repita los pasos si seleccionó la identidad administrada asignada por el usuario para conectar ASA a Synapse:

  1. Cree un usuario de base de datos independiente. Reemplace ASA_Job_Name por identidad administrada asignada por el usuario. Observe el ejemplo siguiente.
    CREATE USER [User-Assigned Managed Identit] FROM EXTERNAL PROVIDER;
    
  2. Conceda permisos a la identidad administrada asignada por el usuario. Reemplace ASA_Job_Name por la identidad administrada asignada por el usuario.

Para más información, consulte las secciones anteriores.

Eliminación de una identidad administrada

La identidad administrada creada para un trabajo de Stream Analytics se elimina solo cuando se elimina el trabajo. No hay ninguna manera de eliminar la identidad administrada sin eliminar el trabajo. Si ya no va a usar la identidad administrada, puede cambiar el método de autenticación de la salida. La identidad administrada seguirá existiendo hasta que se elimine el trabajo y se utilizará si decide usar de nuevo la autenticación de identidad administrada.

Pasos siguientes