Использование Kerberos для единого входа в SAP HANA

Важно!

Так как SAP больше не поддерживает OpenSSL, корпорация Майкрософт также прекратила свою поддержку. Существующие подключения продолжают работать, но вы больше не можете создавать новые подключения. Вместо этого используйте библиотеку шифрования SAP (CommonCryptoLib) или sapcrypto.

В этой статье описывается настройка источника данных SAP HANA для включения единого входа из служба Power BI.

Примечание.

Прежде чем пытаться обновить отчет на основе SAP HANA, использующий единый вход Kerberos, выполните действия, описанные в этой статье, и настройка единого входа Kerberos.

Включение единого входа для SAP HANA

Чтобы включить единый вход для SAP HANA, сделайте следующее:

  1. Убедитесь, что сервер SAP HANA выполняет требуемую минимальную версию, которая зависит от уровня платформы сервера SAP HANA:

  2. На компьютере шлюза установите последний драйвер ODBC SAP HANA. Минимальная версия — HANA ODBC версии 2.00.020.00 с августа 2017 года.

  3. Убедитесь, что сервер SAP HANA настроен для единого входа на основе Kerberos. Дополнительные сведения о настройке единого входа для SAP HANA с помощью Kerberos см. в статье "Единый вход с помощью Kerberos". Также см. ссылки на этой странице, особенно заметки SAP 1837331 — HOWTO HANA DBSSO Kerberos/Active Directory.

Мы также рекомендуем выполнить следующие дополнительные действия, которые могут повысить производительность.

  1. В каталоге установки шлюза найдите и откройте этот файл конфигурации: Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.

  2. FullDomainResolutionEnabled Найдите свойство и измените его значение Trueна .

    <setting name=" FullDomainResolutionEnabled " serializeAs="String">
          <value>True</value>
    </setting>
    
  3. Запустите отчет Power BI.

Устранение неполадок

В этом разделе приведены инструкции по устранению неполадок с помощью Kerberos для единого входа в SAP HANA в служба Power BI. С помощью этих действий по устранению неполадок вы можете самостоятельно диагностировать и исправить многие проблемы, с которыми вы столкнулись.

Чтобы выполнить действия, описанные в этом разделе, необходимо собрать журналы шлюза.

Ошибка TLS/SSL (сертификат)

Эта проблема имеет несколько симптомов.

  • При попытке добавить новый источник данных может появиться сообщение об ошибке, как показано ниже:

    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."
    
  • При попытке создать или обновить отчет может появиться следующее сообщение об ошибке:

    Screenshot of a 'Cannot load model' troubleshooting TLS/SSL error window.

  • При изучении Mashup[date]*.log отображается следующее сообщение об ошибке:

    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.
    

Разрешение

Чтобы устранить эту ошибку TLS/SSL, перейдите к подключению к источнику данных, а затем в разделе "Проверка сертификата сервера" отключите параметр, как показано на следующем рисунке:

 Screenshot of resolving TLS/SSL error window by disabling the certificate.

После отключения этого параметра сообщение об ошибке больше не появится.

Олицетворение

Записи журнала для олицетворения содержат записи, аналогичные следующим:

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

Важным элементом этой записи журнала является информация, отображаемая после ImpersonationLevel: записи. Любое значение отличается от Impersonation того, что олицетворение происходит неправильно.

Разрешение

Вы можете правильно настроить ImpersonationLevel , выполнив инструкции, описанные в разделе "Предоставление прав локальной политики учетной записи службы шлюза" на шлюзе.

После изменения файла конфигурации перезапустите службу шлюза, чтобы изменения вступили в силу.

Проверка

Обновите или создайте отчет, а затем соберите журналы шлюза. Откройте последний файл GatewayInfo и проверка следующую строку: About to impersonate user DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation) Убедитесь, что ImpersonationLevel параметр возвращается Impersonation.

Делегирование

Проблемы делегирования обычно отображаются в служба Power BI как универсальные ошибки. Чтобы убедиться, что проблема не является проблемой делегирования, соберите трассировки Wireshark и используйте Kerberos в качестве фильтра. Дополнительные сведения об ошибках Wireshark и сведения об ошибках Kerberos см. в статье об ошибках Kerberos в сетевых захватах.

Следующие симптомы и действия по устранению неполадок помогут устранить некоторые распространенные проблемы.

Проблемы с spN

Если вы видите следующую ошибку: The import [table] matches no exports. Did you miss a module reference?: при изучении Mashup[date]*.log возникают проблемы с именем субъекта-службы.

При дальнейшем изучении с помощью трассировок Wireshark вы узнаете об ошибке KRB4KDC_ERR_S_PRINCIPAL_UNKOWN, что означает, что имя субъекта-службы не найдено или не существует. Пример приведен на следующем рисунке:

Screenshot showing a service principal name error.

Разрешение

Чтобы устранить такие проблемы, как эта проблема, необходимо добавить имя участника-службы в учетную запись службы. Дополнительные сведения см. в документации по SAP в статье "Настройка Kerberos для узлов баз данных SAP HANA".

Кроме того, следуйте инструкциям по разрешению, описанным в следующем разделе.

Нет проблем с учетными данными

С этой проблемой могут быть не ясные симптомы. При изучении Mashup[date]*.log вы увидите следующую ошибку:

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:

При дальнейшем изучении того же файла появляется следующая (неисполная) ошибка:

No credentials are available in the security package

Запись трассировок Wireshark показывает следующую ошибку: KRB5KDC_ERR_BADOPTION

Screenshot showing a 'No credentials error'.

Как правило, эти ошибки означают, что файл HDB/hana2-s4-sso2.westus2.cloudapp.azure.com субъекта-службы можно найти, но не находится в службах, в которых эта учетная запись может представлять делегированные учетные данные в области делегирования в учетной записи службы шлюза.

Разрешение

Чтобы устранить проблему без учетных данных, выполните действия, описанные в разделе "Настройка ограниченного делегирования Kerberos". После правильного завершения вкладка делегирования в учетной записи службы шлюза отражает файл Базы данных HansaWorld (HDB) и полное доменное имя (FQDN) в списке служб, для которых эта учетная запись может представлять делегированные учетные данные.

Проверка

Следуя приведенным выше шагам, необходимо устранить проблему. Если у вас по-прежнему возникают проблемы с Kerberos, возможно, в шлюзе Power BI или на самом сервере HANA может возникнуть ошибка.

Ошибки учетных данных

При возникновении ошибок учетных данных ошибки в журналах или трассировках предоставляют ошибки, описывающие Credentials are invalid или аналогичные ошибки. Эти ошибки могут проявляться по-разному на стороне источника данных подключения, например SAP HANA. На следующем рисунке показан пример ошибки:

Screenshot showing an invalid credentials error.

Симптом 1

В трассировках проверки подлинности HANA могут отображаться записи, аналогичные следующему сообщению:

[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

Разрешение

Следуйте инструкциям, описанным в разделе Настройка параметров конфигурации сопоставления пользователей на компьютере шлюза, даже если вы уже настроили службу Microsoft Entra Подключение.

Проверка

После завершения проверки можно успешно загрузить отчет в служба Power BI.

Симптом 2

В трассировках проверки подлинности HANA могут отображаться записи, аналогичные следующей записи:

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!

Разрешение

Проверьте внешний идентификатор Kerberos в разделе "Пользователь HANA" , чтобы определить, соответствуют ли идентификаторы правильно.

Проверка

После устранения проблемы можно создать или обновить отчеты в служба Power BI.

Дополнительные сведения о локальном шлюзе данных и DirectQuery см. в следующих ресурсах: