Uso de Kerberos para el SSO en SAP HANA

En este artículo se describe cómo configurar el origen de datos SAP HANA para habilitar el inicio de sesión único (SSO) del servicio Power BI.

Importante

Como SAP ya no admite OpenSSL, Microsoft también ha interrumpido su soporte técnico. Las conexiones existentes siguen funcionando pero ya no puede crear conexiones. En su lugar, use la biblioteca criptográfica de SAP (CommonCryptoLib) o sapcrypto.

Nota:

Antes de intentar actualizar un informe basado en SAP HANA que usa el inicio de sesión único de Kerberos, complete los pasos de este artículo y los de Configuración del inicio de sesión único de Kerberos.

Habilitación del SSO para SAP HANA

Para habilitar el SSO para SAP HANA, siga estos pasos:

  1. Asegúrese de que el servidor de SAP HANA ejecuta la versión mínima requerida, que depende del nivel de plataforma de su servidor de SAP HANA:

  2. En el equipo de puerta de enlace, instale el controlador ODBC de SAP HANA más reciente. La versión mínima es HANA ODBC versión 2.00.020.00, de agosto de 2017.

  3. Asegúrese de que el servidor de SAP HANA se haya configurado para el SSO basado en Kerberos. Para obtener más información sobre cómo configurar SSO para SAP HANA mediante Kerberos, consulte Inicio de sesión único con Kerberos. Consulte también los vínculos de esa página, en particular SAP Note 1837331 – HOWTO HANA DBSSO Kerberos/Active Directory.

También se recomienda seguir estos pasos adicionales, que pueden significar una pequeña mejora de rendimiento:

  1. En el directorio de instalación de la puerta de enlace, busque y abra este archivo de configuración: Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.

  2. Busque la propiedad FullDomainResolutionEnabled y cambie su valor a True.

    <setting name=" FullDomainResolutionEnabled " serializeAs="String">
          <value>True</value>
    </setting>
    
  3. Ejecute un informe de Power BI.

Solución de problemas

En esta sección se proporcionan instrucciones para solucionar problemas de uso de Kerberos para el inicio de sesión único (SSO) en SAP HANA en el servicio Power BI. Mediante estos pasos de solución de problemas, puede diagnosticar automáticamente y corregir muchos problemas que podría estar teniendo.

Para seguir los pasos de esta sección, deberá recopilar registros de la puerta de enlace.

Error de TLS/SSL (certificado)

Este problema tiene varios síntomas.

  • Al intentar agregar un origen de datos nuevo, podría ver un error similar al mensaje siguiente:

    Unable to connect: We encountered an error while trying to connect to.
    Details: "We could not register this data source for any gateway
    instances within this cluster.
    Please find more details below about specific errors for each gateway instance."
    
  • Al intentar crear o actualizar un informe, es posible que vea el siguiente mensaje de error:

    Captura de pantalla de la ventana de error de TLS/SSL de solución de problemas

  • Al investigar el archivo Mashup[fecha]*.log, verá el mensaje de error siguiente:

    A connection was successfully established with the server, 
    but then an error occurred during the login process and 
    the certificate chain was issued by an authority that is not trusted.
    

Resolución

Para resolver este error de TLS/SSL, vaya a la conexión de origen de datos y, después, en la sección Validar certificado de servidor, deshabilite la configuración, como se muestra en la imagen siguiente:

 Captura de pantalla de la resolución de la ventana de error de TLS/SSL mediante la deshabilitación del certificado.

Una vez deshabilitada esta configuración, el mensaje de error ya no aparece.

Suplantación

Las entradas del registro para la suplantación contienen entradas similares a:

About to impersonate user DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation).

El elemento importante en esta entrada de registro es la información que se muestra después de la entrada ImpersonationLevel: . Cualquier valor distinto de la Impersonation revela que la suplantación no ocurre correctamente.

Resolución

Para configurar ImpersonationLevel correctamente, siga las instrucciones que se encuentran en el artículo Concesión de derechos de directiva local a la cuenta de servicio de la puerta de enlace en la puerta de enlace.

Una vez modificado el archivo de configuración, reinicie el servicio de puerta de enlace para que el cambio surta efecto.

Validación

Actualice o cree el informe y, después, recopile los registros de puerta de enlace. Abra el archivo GatewayInfo más reciente y compruebe la cadena siguiente: About to impersonate user DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation). Asegúrese de que la configuración ImpersonationLevel devuelve Impersonation.

Delegación

Los problemas de delegación suelen aparecer en el servicio Power BI como errores genéricos. Para asegurarse de que el problema no es un problema de delegación, recopile los seguimientos de Wireshark y use Kerberos como filtro. Para más información sobre Wireshark y sobre los errores de Kerberos, consulte los errores de Kerberos en capturas de red.

Los siguientes síntomas y pasos de solución de problemas pueden ayudar a solucionar algunos problemas comunes.

Problemas de SPN

Si aparece el error siguiente: The import [table] matches no exports. Did you miss a module reference?: mientras investiga el archivo Mashup[fecha]*.log, tiene problemas con el nombre de entidad de seguridad de servicio (SPN).

Al investigar más mediante los seguimientos de Wireshark, se muestra el error KRB4KDC_ERR_S_PRINCIPAL_UNKOWN, que significa que el SPN no se encontró o no existe. La imagen siguiente muestra un ejemplo:

Captura de pantalla en la que se muestra un error del nombre de entidad de seguridad de servicio.

Resolución

Para resolver problemas con SPN como este, debe agregar un SPN a una cuenta de servicio. Para obtener más información, vea la documentación de SAP en Configuración de Kerberos para hosts de base de datos de SAP HANA.

Además, siga las instrucciones de resolución que se describen en la sección siguiente.

Problema de ausencia de credenciales

Es posible que no haya síntomas claros asociados con este problema. Al investigar el archivo Mashup[fecha]*.log, verá el error siguiente:

29T20:21:34.6679184Z","Action":"RemoteDocumentEvaluator/RemoteEvaluation/HandleException","HostProcessId":"1396","identity":"DirectQueryPool","Exception":"Exception:\r\nExceptionType: Microsoft.Mashup.Engine1.Runtime.ValueException, Microsoft.MashupEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\r\nMessage:

Al investigar más el mismo archivo, aparece el siguiente error (poco útil):

No credentials are available in the security package

La captura de los seguimientos de Wireshark revela el error siguiente: KRB5KDC_ERR_BADOPTION.

Captura de pantalla en la que se muestra un error

Por lo general, estos errores significan que se pudo encontrar el archivo de SPN hdb/hana2-s4-sso2.westus2.cloudapp.azure.com, pero que no está en la lista Servicios en los que esta cuenta puede presentar credenciales delegadas en el panel Delegación de la cuenta de servicio de la puerta de enlace.

Resolución

Para solucionar el problema de ausencia de credenciales, siga los pasos que se describen en el artículo Configuración de la delegación restringida de Kerberos. Cuando este proceso se completa correctamente, la pestaña de delegación en la cuenta de servicio de la puerta de enlace refleja el archivo de base de datos HansaWorld (HDB) y el nombre de dominio completo (FQDN) en la lista de los Servicios en los que esta cuenta puede presentar credenciales delegadas.

Validación

Seguir los pasos anteriores debe resolver el problema. Si sigue experimentando problemas con Kerberos, es posible que tenga un problema de configuración en la puerta de enlace de Power BI o en el propio servidor de HANA.

Errores de credenciales

Si se producen errores de credenciales, los errores de los registros o seguimientos exponen errores que describen que Credentials are invalid o errores similares. Estos errores pueden manifestarse de manera distinta en el origen de datos de la conexión, como SAP HANA. En la imagen siguiente se muestra un ejemplo:

Captura de pantalla en la que se muestra un error de credenciales no válidas.

Síntoma 1

En los seguimientos de autenticación de HANA, puede ver entradas similares al mensaje siguiente:

[Authentication|manager.cpp:166] Kerberos: Using Service Principal 
Name johnny@contoso.com@CONTOSO.COM with name type: GSS_KRB5_NT_PRINCIPAL_NAME 
[Authentication|methodgssinitiator.cpp:367] Got principal name: 
johnny@contoso.com@CONTOSO.COM

Solución

Siga las instrucciones que se describen en Establecimiento de los parámetros de configuración de la asignación de usuario en la máquina de la puerta de enlace, incluso si ya tiene configurado el servicio Microsoft Entra Connect.

Validation

Una vez completada la validación, puede cargar correctamente el informe en el servicio Power BI.

Síntoma 2

En los seguimientos de autenticación de HANA, puede ver entradas similares a la siguiente:

Authentication ManagerAcceptor.cpp(00233) : Extending list of expected
external names by johnny@CONTOSO.COM (method: GSS) Authentication 
AuthenticationInfo.cpp(00168) : ENTER getAuthenticationInfo 
(externalName=johnny@CONTOSO.COM) Authentication AuthenticationInfo.cpp(00237) : 
Found no user with expected external name!

Resolución

Compruebe el identificador externo de Kerberos en Usuario de HANA para determinar si los identificadores coinciden correctamente.

Validación

Una vez resuelto el problema, puede crear o actualizar informes en el servicio Power BI.

Para más información sobre la puerta de enlace de datos local y DirectQuery, consulte los recursos siguientes: