Kerberos authentification sur le Cloud pour Data Virtualization

Dernière mise à jour : 17 mars 2025
Kerberos authentification sur le Cloud pour Data Virtualization

Pour vous connecter à Apache Hive, Apache Impala, et Apache Spark SQL avec l'authentification Kerberos , vous devez fournir le fichier de configuration Kerberos à Data Virtualization avant de créer la connexion.

Avant de commencer

Vous devez avoir configuré un agent distant avec une connexion par connecteur d' IBM Cloud Satellite . Pour plus d'informations, voir Configuration de l'agent distant d' Data Virtualization.

A propos de cette tâche

Kerberos est un protocole d'authentification de sécurité des réseaux informatiques sans mot de passe que le MIT a créé pour résoudre les problèmes de sécurité des réseaux. Il est aujourd'hui largement utilisé pour l'authentification unique (SSO) par de nombreuses organisations, transmettant en toute sécurité les données d'identité des utilisateurs aux applications avec deux fonctions principales : l'authentification et la sécurité.

Data Virtualization on-premises prend en charge l'authentification par Kerberos pour Apache Hive, Apache Impala et Apache Spark SQL . Elle nécessite que l'utilisateur télécharge un fichier keytab ou un fichier chiffré généré par la source de données, et est utilisée pour l'authentification par Kerberos.
Remarque : l'authentification par Kerberos n'est pas disponible dans le Data Virtualization client web en raison d'une restriction de téléchargement de fichiers.

Procédure

  1. Pour chacune de vos sources de données Apache Hive, Apache Impala et Apache Spark SQL , ouvrez un nouveau fichier texte puis suivez les étapes suivantes pour créer un fichier de configuration.
    1. Copiez et collez les informations suivantes dans votre nouveau fichier texte, puis modifiez les variables, comme indiqué par les crochets (< >).
      # 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>
      Considérons le texte suivant à titre d'exemple.
      # 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. Sauvegardez le fichier de configuration.
      • Pour l' Apache Hive, enregistrez le fichier sous hive_krb5.conf.
      • Pour l' Apache Impala, enregistrez le fichier sous Impala_krb5.conf.
      • Pour l' Apache Spark SQL, enregistrez le fichier sous spark_krb5.conf.
  2. Ouvrez le fichier datavirtualization.env dans votre agent distant.
    vi /root/dv_endpoint/datavirtualization.env
  3. Vérifiez que le contenu du fichier d' datavirtualization.env s contient les informations suivantes.
    • JAVA_HOME: Il s'agit du chemin où Java est installé sur votre machine.
    • DATAVIRTUALIZATION_INSTALL: Il s'agit du chemin d'accès au fichier datavirtualization.env.
    • KRB5_CONFIG: Il s'agit du chemin d'accès au fichier de configuration d' krb5.conf .
    Voici un exemple du texte que votre fichier pourrait contenir.
    • JAVA_HOME="/root/jdk-21.0.3+9"
    • DATAVIRTUALIZATION_INSTALL="/root/dv_endpoint"
    • KRB5_CONFIG=/etc/hive_krb5.conf
  4. Remplacez les paramètres dans cette procédure stockée, puis exécutez-la dans Exécuter SQL. De plus, remplacez <Data_source> par Hive, Impala ou 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>', ?, ?, ?)

    Pour plus d'informations sur les paramètres, voir la procédure stockée setRdbcX (Variation 2 ).

    Voici un exemple de procédure stockée.
    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. Vérifiez si la procédure stockée a réussi en sélectionnant l'onglet Résultats, puis en vérifiant la colonne Valeur de sortie.
    • Une sortie réussie a un entier de 1.
    • Une sortie infructueuse a un entier de 0. Vérifiez à nouveau les étapes de configuration précédentes.