Kerberos autenticación en la nube para Data Virtualization

Última actualización: 17 mar 2025
Kerberos autenticación en la nube para Data Virtualization

Para conectarse a Apache Hive, Apache Impala y Apache Spark SQL con autenticación Kerberos , debe proporcionar el archivo de configuración Kerberos a Data Virtualization antes de crear la conexión.

Antes de empezar

Debe tener un agente remoto configurado con una conexión de conector de IBM Cloud Satellite . Para obtener más información, consulte Configuración del agente remoto de Data Virtualization.

Acerca de esta tarea

Kerberos es un protocolo de autenticación de seguridad de redes informáticas sin contraseña que creó el MIT para resolver problemas de seguridad de redes. Hoy en día, muchas organizaciones lo utilizan ampliamente para el inicio de sesión único (SSO), transmitiendo de forma segura los datos de identidad del usuario a las aplicaciones con dos funciones principales: autenticación y seguridad.

Data Virtualization on-premises admite la autenticación Kerberos para Apache Hive, Apache Impala y Apache Spark SQL y requiere que el usuario cargue un archivo keytab o un archivo cifrado que genera el origen de datos, y se utiliza para la autenticación mediante Kerberos.
Nota : La autenticación de Kerberos no está disponible en el Data Virtualization cliente web debido a una restricción de carga de archivos.

Procedimiento

  1. Para cada una de sus fuentes de datos Apache Hive, Apache Impala y Apache Spark SQL , abra un nuevo archivo de texto y, a continuación, siga los pasos siguientes para crear un archivo de configuración.
    1. Copie y pegue la siguiente información en su nuevo archivo de texto, luego modifique las variables, como se indica mediante los corchetes triangulares (< >).
      # To opt out of the system crypto-policies configuration of krb5, remove the
      # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
      includedir /etc/krb5.conf.d/
      
      [logging]
          default = FILE:/var/log/krb5libs.log
          kdc = FILE:/var/log/krb5kdc.log
          admin_server = FILE:/var/log/kadmind.log
      
      [libdefaults]
          dns_lookup_realm = false
          ticket_lifetime = 24h
          renew_lifetime = 7d
          forwardable = true
          rdns = false
          pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
          spake_preauth_groups = edwards25519
          dns_canonicalize_hostname = fallback
          qualify_shortname = ""
          default_realm = <DEFAULT_DOMAIN_REALM>
          default_ccache_name = KEYRING:persistent:%{uid}
      
      [realms]
       <KERBEROS_REALM> = {
           kdc = <KDC_SERVER>
           admin_server = <ADMIN_SERVER>
       }
      
      [domain_realm]
       <SUBDOMAIN_REALM> = <DOMAIN_REALM>
       <DOMAIN_TO_REALM> = <SUBDOMAIN_TO_REALM>
      Considere el siguiente texto como ejemplo.
      # To opt out of the system crypto-policies configuration of krb5, remove the
      # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
      includedir /etc/krb5.conf.d/
      
      [logging]
          default = FILE:/var/log/krb5libs.log
          kdc = FILE:/var/log/krb5kdc.log
          admin_server = FILE:/var/log/kadmind.log
      
      [libdefaults]
          dns_lookup_realm = false
          ticket_lifetime = 24h
          renew_lifetime = 7d
          forwardable = true
          rdns = false
          pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
          spake_preauth_groups = edwards25519
          dns_canonicalize_hostname = fallback
          qualify_shortname = ""
          default_realm = EXAMPLE.COM
          default_ccache_name = KEYRING:persistent:%{uid}
      
      [realms]
       EXAMPLE.COM = {
           kdc = kerberos.example.com
           admin_server = kerberos.example.com
       }
      
      [domain_realm]
       .example.com = EXAMPLE.COM
       example.com = EXAMPLE.COM
    2. Guarde el archivo de configuración.
      • Para Apache Hive, guarde el archivo como hive_krb5.conf.
      • Para Apache Impala, guarde el archivo como Impala_krb5.conf.
      • Para Apache Spark SQL, guarde el archivo como spark_krb5.conf.
  2. Abra el archivo datavirtualization.env en su agente remoto.
    vi /root/dv_endpoint/datavirtualization.env
  3. Verifique que el contenido del archivo datavirtualization.env contenga la siguiente información.
    • JAVA_HOME: Esta es la ruta donde Java está instalado en su máquina.
    • DATAVIRTUALIZATION_INSTALL: Esta es la ruta de archivo para datavirtualization.env.
    • KRB5_CONFIG: Esta es la ruta de archivo de su archivo de configuración de krb5.conf recién creado.
    El siguiente es un ejemplo del texto que podría contener su archivo.
    • JAVA_HOME="/root/jdk-21.0.3+9"
    • DATAVIRTUALIZATION_INSTALL="/root/dv_endpoint"
    • KRB5_CONFIG=/etc/hive_krb5.conf
  4. Reemplace los parámetros en este procedimiento almacenado y luego ejecútelo en Ejecutar SQL. Además, sustituya <Data_source> por Hive, Impala o SparkSQL.
    call dvsys.setrdbcx('<Data_source>', '<host_name>', <db_port>, '<database_name>', '', '', '', <use_SSL>, <validate_cert>, '', '<SSL_certificate>', '<RemoteAgentName:Port>', 'UserPrincipal=<User_principal>,ServicePrincipal=<Service_principal>,Keytab=<Keytab_info>', ?, ?, ?)

    Para más información sobre los parámetros, consulte el procedimiento almacenado setRdbcX (Variación 2 ).

    El siguiente es un ejemplo del procedimiento almacenado.
    call dvsys.setrdbcx('SparkSQL', 'krbds-hive.fyre.ibm.com', 10000, 'sparkdb01', '', '', '', 0, 0, '', '', 'RA_FOR_KRB:6415', 'UserPrincipal=spark/xxxx.fyre.ibm.com@IBM.COM,ServicePrincipal=hive/xxx.fyre.ibm.com@IBM.COM,Keytab=XXXXXXEQAQcheKq6W+vSDlrJ1GSZAITwAAAAIAAABMAAIAB0lCTS5DT00ABXNwYXJrABdrcmJkcy1oaXZlLmZ5cmUuaWJtLmNvbQAAAAFlHD9NAgAXABBTo30Yd3yTHr8rzj8V9lGKAAAAAgAAAFwAAgAHSUJNLkNPTQAFc3BhcmsAF2tyYmRzLWhpdmUuZnlyZS5pYm0uY29tAAAAAWUcP00CABoAIJNL0pQT6SkPC+JfILB+yq3rcCQo/6uRfLuBSPUmlS6XAAAAAgAAAEwAAgAHSUJNLkNPTQAFc3BhcmsAF2tyYmRzLWhpdmUuZnlyZS5pYm0uY29tAAAAAWUcP00CABkAEAa0R7FrW9AX+Q4GfmCLiG4AAAAC', ?, ?, ?)
    
    
  5. Compruebe si el procedimiento almacenado se ha realizado correctamente seleccionando la pestaña Resultados y, a continuación, comprobando la columna Valor de salida.
    • Una salida correcta tiene un entero de 1.
    • Una salida fallida tiene un entero de 0. Verifique de nuevo los pasos de configuración anteriores.