SAP HANA への SSO に Kerberos を使用する

重要

SAP では OpenSSL がサポートされなくなったため、Microsoft もそのサポートを停止しました。 既存の接続は引き続き機能しますが、新しい接続を作成できなくなります。 代わりに、SAP 暗号化ライブラリ (CommonCryptoLib) または sapcrypto を使用してください。

この記事では、Power BI サービスからのシングル サインオン (SSO) を有効にするように SAP HANA データ ソースを構成する方法を説明します。

注意

Kerberos SSO を使用する SAP HANA ベースのレポートを更新する前に、この記事の手順と Kerberos SSO の構成に関するページの手順を両方済ませておいてください。

SAP HANA に対する SSO を有効にする

SAP HANA で SSO を有効にするには、次の手順のようにします。

  1. SAP HANA サーバーが必要な最小バージョンを実行していることを確認します。これは、SAP HANA サーバー プラットフォームのレベルによって異なります。

  2. ゲートウェイ コンピューターに、最新の SAP HANA ODBC ドライバーをインストールします。 最小バージョンは 2017 年 8 月の HANA ODBC バージョン 2.00.020.00 です。

  3. SAP HANA サーバーが Kerberos ベースの SSO 用に構成されていることを確認します。 Kerberos を使用した SAP HANA の SSO の設定について詳しくは、Kerberos を用いたシングル サインオンに関するページをご覧ください。 また、このページからのリンク (特に SAP Note 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 レポートを実行します

トラブルシューティング

このセクションでは、Power BI サービスで SAP HANA へのシングル サインオン (SSO) に Kerberos を使用する場合のトラブルシューティング手順について説明します。 これらのトラブルシューティング手順を使うことで、発生している可能性のある多くの問題を自分で診断して、修正することができます。

このセクションの手順を実行するには、ゲートウェイ ログを収集する必要があります。

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 の問題

Mashup[date]*.log を調べると The import [table] matches no exports. Did you miss a module reference?: というエラーが見つかる場合は、サービス プリンシパル名 (SPN) に関する問題が発生しています。

Wireshark トレースを使ってさらに調べると、エラー KRB4KDC_ERR_S_PRINCIPAL_UNKOWN が発生していることがわかります。これは、SPN が見つからなかったか、存在しないことを意味します。 次に例を示します。

Screenshot showing a service principal name error.

解像度

この問題のような SPN の問題を解決するには、サービス アカウントに SPN を追加する必要があります。 詳細については、「Configure Kerberos for SAP HANA database hosts (SAP HANA データベース ホスト用に Kerberos を構成する)」の SAP ドキュメントを参照してください。

さらに、次のセクションで説明されている解決方法に従います。

資格情報が見つからない問題

この問題に関しては、明らかな症状が現れない可能性があります。 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'.

通常、これらのエラーは、SPN 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 Connect サービスを既に構成してある場合でも、「ゲートウェイ コンピューターでユーザー マッピングの構成パラメーターを設定する」の中で説明されている手順に従います。

検証

検証が済むと、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!

解像度

[HANA ユーザー] で Kerberos 外部 ID をチェックして、ID が適切に一致しているかどうかを確認します。

検証

問題を解決したら、Power BI サービスでレポートを作成または更新できます。

オンプレミス データ ゲートウェイと DirectQuery の詳細については、次のリソースを参照してください。