次の方法で共有


gx64krb5 を用いた SAP BW へのシングル サインオン (SSO) に Kerberos を使用する

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

重要

Microsoft では、Secure Network Communications (SNC) ライブラリ (gx64krb5 など) を使用して接続を作成できますが、これらの構成はサポートされません。 さらに、SAP では、Power BI のオンプレミス データ ゲートウェイの gx64krb5 がサポートされなくなったため、これをゲートウェイ用に構成するために必要な手順が、CommonCryptoLib と比べてかなり複雑になっています。 そのため、Microsoft は、代替として CommonCryptoLib の使用をお勧めしています。 詳細については、SAP Note 352295 をご覧ください。 gx64krb5 では、データ ゲートウェイから SAP BW メッセージ サーバーへの SSO 接続が許可されていないことに注意してください。SAP BW アプリケーション サーバーへの接続のみが可能です。 CommonCryptoLib を SNC ライブラリとして使用する場合、この制限はありません。 CommonCryptoLib を使用して SSO を構成する方法については、CommonCryptoLib を使用した SSO 用の SAP BW の構成に関するページを参照してください。 CommonCryptoLib "または" gx64krb5 を SNC ライブラリを使用してください。ただし、両方は使用しないでください。 両方のライブラリの構成手順を行わないでください。

注意

同じゲートウェイ サーバーで両方のライブラリ (sapcrypto と gx64krb5) を構成するシナリオは、サポートされていません。 両方のライブラリを同じゲートウェイ サーバーで構成すると、ライブラリが混在するため、お勧めしません。 両方のライブラリを使用する場合は、ゲートウェイ サーバーを完全に分離してください。 たとえば、サーバー A に対して gx64krb5 を構成し、サーバー B に対して sapcrypto を構成します。gx64krb5 は SAP と Microsoft でサポートされなくなったため、gx64krb5 を使用するサーバー A での障害はサポートされないことに注意してください。

このガイドは広範囲に及んでいるため、説明されている手順の一部を既に完了している場合は、それらはスキップしてかまいません。 たとえば、gx64krb5 を使用して SSO 用に SAP BW サーバーを既に構成している場合があります。

ゲートウェイ コンピューターと SAP BW サーバーで gx64krb5/gsskrb5 を設定する

ゲートウェイを介して SSO 接続を完了するには、クライアントとサーバーの両方で gx64krb5 を使用する必要があります。 つまり、クライアントとサーバーの両方で同じ SNC ライブラリを使用する必要があります。

  1. SAP Note 2115486 から gx64krb5.dll をダウンロードします (SAP S-User が必要)。 バージョンが 1.0.11.x 以上になっていることを確認します。 また、ゲートウェイ経由で SSO 接続を試みる前に SAP GUI で SSO 接続をテストする場合は、gsskrb5.dll (32 ビット版のライブラリ) もダウンロードします (推奨)。 SAP GUI は 32 ビットのみであるため、SAP GUI を使用してテストするには、32 ビット版が必要です。

  2. ゲートウェイ サービス ユーザーがアクセスできる、ゲートウェイ マシン上の場所に gx64krb5.dll を配置します。 SAP GUI を使用して SSO 接続をテストする場合は、ご使用のマシンにも gsskrb5.dll のコピーを配置し、それを指すように SNC_LIB 環境変数を設定します。 ゲートウェイ サービス ユーザーとそのサービス ユーザーが偽装する Active Directory (AD) ユーザーの両方に、gx64krb5.dll のコピーに対する読み取りおよび実行アクセス許可が必要です。 Authenticated Users グループに .dll ファイルに対するアクセス許可を付与することをお勧めします。 テスト目的で、これらのアクセス許可をゲートウェイ サービス ユーザーとテストに使用する AD ユーザーの両方に明示的に付与することもできます。

  3. gx64krb5.dll を使用して SSO 用に BW サーバーをまだ構成していない場合は、SAP BW サーバー マシン上の .dll の別のコピーを、SAP BW サーバーからアクセスできる場所に配置します。

    SAP BW サーバーで使用できるように gx64krb5.dll を構成する方法の詳細については、SAP のドキュメントを参照してください (SAP S-User が必要)。

  4. クライアントおよびサーバー マシンで、SNC_LIB および SNC_LIB_64 環境変数を設定します。

    • gsskrb5.dll を使用する場合は、SNC_LIB 変数にその絶対パスを設定します。
    • gx64krb5.dll を使用する場合は、SNC_LIB_64 変数にその絶対パスを設定します。

BW サーバー上で SAP BW サービス ユーザーを構成し、SNC 通信を有効にする

gx64krb5 を用いて SNC 通信 (SSO など) 用に SAP BW サーバーをまだ構成していない場合は、このセクションを完了します。

注意

このセクションでは、BW 用のサービス ユーザーを既に作成し、これに適切な SPN (つまり、SAP/ で始まる名前) をバインドしていることを想定しています。

  1. サービス ユーザーに、SAP BW アプリケーション サーバーへのアクセス権を付与します。

    1. SAP BW サーバー マシンで、ローカル管理者グループにサービス ユーザーを追加します。 [コンピューターの管理] プログラムを開き、サーバーのローカル管理者グループを見つけます。

      [コンピューターの管理] プログラム

    2. ローカル管理者グループをダブルクリックし、 [追加] を選択して、サービス ユーザーをグループに追加します。

    3. [名前の確認] を選択し、名前を正しく入力したことを確認してから、 [OK] を選択します。

  2. SAP BW サーバーのサービス ユーザーを、SAP BW サーバー マシンで SAP BW サーバー サービスを開始するユーザーとして設定します。

    1. [ファイル名を指定して実行] を開き、「Services.msc」と入力します。

    2. SAP BW アプリケーション サーバー インスタンスに対応するサービスを見つけ、それを右クリックして、 [プロパティ] を選択します。

      [プロパティ] が強調表示されている [サービス] のスクリーン ショット

    3. Log on タブに切り替え、ユーザーを SAP BW サービス ユーザーに変更します。

    4. ユーザーのパスワードを入力し、 OKを選択します。

  3. SAP ログオンでサーバーにサインインし、RZ10 トランザクションを使用して次のプロファイル パラメーターを設定します。

    1. snc/identity/as プロファイル パラメーターを "p:<作成した SAP BW サービス ユーザー> " に設定します。 p:BWServiceUser@MYDOMAIN.COM は一例です。 p: は、サービス ユーザーのユーザー プリンシパル名 (UPN) の前に置かれることに注意してください。これは、CommonCryptoLib を SNC ライブラリとして使用する場合に UPN の前に付く p:CN= とは対照的です。

    2. snc/gssapi_lib プロファイル パラメーターを <path to gx64krb5.dll on the BW server> に設定します。 SAP BW アプリケーション サーバーがアクセスできる場所にライブラリを配置します。

    3. 次の追加のプロファイル パラメーターを設定し、必要に応じて値を変更します。 最後の 5 つのオプションを使用すると、SNC を構成せずに、SAP ログオンを使用してクライアントを SAP BW サーバーに接続することができます。

      設定 Value
      snc/data_protection/max 3
      snc/data_protection/min 1
      snc/data_protection/use 9
      snc/accept_insecure_cpic 1
      snc/accept_insecure_gui 1
      snc/accept_insecure_r3int_rfc 1
      snc/accept_insecure_rfc 1
      snc/permit_insecure_start 1
    4. snc/enable プロパティを 1 に設定します。

  4. これらのプロファイル パラメーターを設定した後、サーバー マシンで SAP 管理コンソールを開き、SAP BW インスタンスを再起動します。

    サーバーが起動しない場合は、プロファイル パラメーターを正しく設定したことを確認します。 プロファイル パラメーターの設定の詳細については、SAP のドキュメントを参照してください。 また、この記事の「トラブルシューティング」セクションも参照できます。

SAP BW ユーザーを Active Directory ユーザーにマップする

まだ行っていない場合は、AD ユーザーを SAP BW アプリケーション サーバー ユーザーにマップし、SAP Logon で SSO 接続をテストします。

  1. SAP ログオンを使用して SAP BW サーバーにサインインします。 トランザクション SU01 を実行します。

  2. [User](ユーザー) には、SSO 接続を有効にする SAP BW ユーザーを入力します。 SAP ログオン ウィンドウの左上付近にある編集アイコン (ペンのアイコン) を選択します。

    SAP BW [User maintenance]\(ユーザーの管理\) 画面

  3. [SNC] タブを選択します。SNC 名の入力ボックスに、「p:<your Active Directory user>@<your domain>」と入力します。 SNC 名の場合、AD ユーザーの UPN の前に p: が必要です。 UPN では大文字と小文字が区別されることに注意してください。

    指定する AD ユーザーは、SAP BW アプリケーション サーバーへの SSO アクセスを有効にするユーザーまたは組織に属している必要があります。 たとえば、ユーザー testuser@TESTDOMAIN.COM の SSO アクセスを有効にする場合は、「p:testuser@TESTDOMAIN.COM」と入力します。

    SAP BW [Maintain Users]\(ユーザー管理\) 画面

  4. 画面の左上付近にある保存アイコン (フロッピー ディスクの画像) を選択します。

SSO 経由のサインインをテストする

SSO アクセスを有効にした AD ユーザーとして、SSO を使用して SAP Logon を使用してサーバーにサインインできることを確認します。

  1. SSO アクセスを有効にした AD ユーザーとして、SAP ログオンがインストールされているドメイン内のマシンにサインインします。 SAP ログオンを起動し、新しい接続を作成します。

  2. 先ほどダウンロードしたgsskrb5.dll ファイルを、サインイン先のコンピューター上の場所にコピーします。 SNC_LIB 環境変数をこの場所の絶対パスに設定します。

  3. SAP ログオンを起動し、新しい接続を作成します。

  4. [Create New System Entry](新しいシステム エントリの作成) 画面で [User Specified System](ユーザー指定のシステム) を選択し、 [Next](次へ) を選択します。

    [Create New System Entry]\(新しいシステム エントリの作成\) 画面

  5. 次の画面で、アプリケーション サーバー、インスタンス番号、システムの ID などの該当する詳細情報を入力します。 次に、 [Finish](完了) を選択します。

  6. 新しい接続を右クリックして [Properties](プロパティ) を選択し、 [Network](ネットワーク) タブを選択します。

  7. [SNC Name](SNC 名) ボックスに、「p:<SAP BW サービス ユーザーの UPN> 」と入力します。 p:BWServiceUser@MYDOMAIN.COM は一例です。 [OK] を選択します。

    [System Entry Properties]\(システム エントリ プロパティ\) 画面

  8. 先ほど作成した接続をダブルクリックして、SAP BW サーバーへの SSO 接続を試みます。

    この接続に成功した場合は、次のセクションを続行します。 そうでない場合は、このドキュメントの前の手順を見直して正しく完了していることを確認するか、「トラブルシューティング」のセクションを参照してください。 このコンテキストで SSO を介して SAP BW サーバーに接続できない場合は、ゲートウェイのコンテキストで SSO を使用して SAP BW サーバーに接続することはできません。

ゲートウェイ コンピューターにレジストリ エントリを追加する

必要なレジストリ エントリを、ゲートウェイがインストールされているマシンのレジストリと、Power BI Desktop から接続するマシンに追加します。 これらのレジストリ エントリを追加するには、次のコマンドを実行します。

  • REG ADD HKLM\SOFTWARE\Wow6432Node\SAP\gsskrb5 /v ForceIniCredOK /t REG_DWORD /d 1 /f

  • REG ADD HKLM\SOFTWARE\SAP\gsskrb5 /v ForceIniCredOK /t REG_DWORD /d 1 /f

Power BI サービスに新しい SAP BW アプリケーション サーバー データ ソースを追加するか、既存のものを編集する

  1. データ ソース構成ウィンドウで、Power BI Desktop から SAP BW サーバーにサインインするときと同様に、SAP BW アプリケーション サーバーの [ホスト名][システム番号][クライアント ID] を入力します。

  2. [SNC パートナー名] フィールドに、「p:<SAP BW サービス ユーザーにマップした SPN> 」と入力します。 たとえば、SPN が SAP/BWServiceUser@MYDOMAIN.COM の場合は、SNC パートナー名フィールドに、「p:SAP/BWServiceUser@MYDOMAIN.COM」と入力します。

  3. SNC ライブラリの場合は、 [カスタム] オプションを選択し、ゲートウェイ マシン上で GX64KRB5.DLL または GSSKRB5.DLL の絶対パスを指定します。

  4. [DirectQuery クエリには Kerberos 経由で SSO を使用します] を選択し、 [適用] を選択します。 テスト接続が成功しなかった場合は、前のセットアップおよび構成手順が正常に完了したことを確認します。

  5. Power BI レポートを実行します

トラブルシューティング

gx64krb5 の構成のトラブルシューティング

次の問題のいずれかが発生した場合は、以下の手順に従って、gx64krb5 インストールと SSO 接続のトラブルシューティングを行います。

  • gx64krb5 の設定手順を実行すると、エラーが発生する。 たとえば、プロファイル パラメーターの変更した後に SAP BW サーバーが起動しないとします。 このようなエラーのトラブルシューティングを行うには、サーバー ログ (…work\dev_w0 on the server machine) を確認してください。

  • サインオンの失敗が原因で SAP BW サービスを開始できない。 SAP BW "開始" ユーザーの設定時に間違ったパスワードを指定した可能性があります。 AD 環境内のコンピューターで SAP BW サービス ユーザーとしてサインインして、パスワードを確認します。

  • 基になるデータ ソース資格情報 (SQL Server など) に関するエラーが発生し、サーバーの起動が妨げられます。 SAP BW データベースへのアクセス権がサービス ユーザーに付与されていることを確認します。

  • 次のメッセージが表示される: " (GSS-API) 指定された対象は不明か、または到達できません"。 このエラーは通常、間違った SNC 名が指定されていることを意味します。 クライアント アプリケーションのサービス ユーザーの UPN の前には、p:CN= ではなく、必ず P: だけを使用するようにしてください。

  • 次のメッセージが表示される: " (GSS-API) An invalid name was supplied ((GSS-API) 無効な名前が指定されました) "。 サーバーの SNC ID プロファイル パラメーターの値が p: であることを確認してください。

  • 次のメッセージが表示される: " (SNC error) the specified module could not be found ((SNC エラー) 指定されたモジュールが見つかりませんでした) "。 このエラーは、多くの場合、アクセスするには昇格された特権 (../管理者権限) が必要な場所に gx64krb5 を配置したことによって発生します。

ゲートウェイ接続の問題のトラブルシューティングを行う

  1. ゲートウェイのログを確認します。 ゲートウェイ構成アプリケーションを開き、 Diagnostics を選択し、ログを します。 直近のエラーは、確認するログ ファイルの末尾に記載されています。

    [診断] が強調表示されているオンプレミス データ ゲートウェイ アプリケーション

  2. SAP BW トレースを有効にして、生成されたログ ファイルを確認します。 使用できる SAP BW トレースにはいくつかの種類があります (CPIC トレースなど)。

    a. CPIC トレースを有効にするには、CPIC_TRACE および CPIC_TRACE_DIR という 2 つの環境変数を設定します。

    最初の変数はトレース レベルを設定し、2 番目の変数はトレース ファイルのディレクトリを設定します。 ディレクトリは、Authenticated Users グループのメンバーが書き込み可能な場所にする必要があります。

    b. CPIC_TRACE3 に設定し、CPIC_TRACE_DIR をトレース ファイルの書き込み先となる任意のディレクトリに設定します。 例:

    CPIC トレース

    c. 問題を再現し、CPIC_TRACE_DIR にトレース ファイルが含まれていることを確認します。

    d. トレース ファイルの内容を調べて、ブロッキングの問題を特定します。 たとえば、gx64krb5.dllが正しく読み込まれていない場合や、SSO 接続の試行を開始したと想定していたユーザーとは異なる AD ユーザーが見つかる場合があります。

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