シングル サインオン (SSO) を有効にすると、Power BI レポートとダッシュボードでオンプレミスのソースからのデータを簡単に更新でき、それらのソースで構成されているユーザー レベルのアクセス許可を尊重できます。 シームレスな SSO 接続を有効にするには、 Security Assertion Markup Language (SAML) を使用します。
注
オンプレミス データ ゲートウェイで単一 Sign-On SAML を使用して、1 つのデータ ソースにのみ接続できます。 Single Sign-On SAML を使用して追加のデータ ソースに接続するには、別のオンプレミス データ ゲートウェイを使用する必要があります。
SAML でサポートされているデータ ソース
Microsoft は現在、SAML を使用した SAP HANA をサポートしています。 SAML を使用した SAP HANA のシングル サインオンの設定と構成の詳細については、「 SAML SSO for BI Platform to HANA」を参照してください。
Kerberos (SAP HANA を含む) で追加のデータ ソースをサポートしています。
SAP HANA の場合は、SAML SSO 接続を確立する前に暗号化を有効にすることをお勧めします。 暗号化を有効にするには、暗号化された接続を受け入れるように HANA サーバーを構成し、暗号化を使用して HANA サーバーと通信するようにゲートウェイを構成します。 HANA ODBC ドライバーは既定で SAML アサーションを暗号化しないため、署名された SAML アサーションはゲートウェイから クリア内 の HANA サーバーに送信され、サード パーティによる傍受と再利用に対して脆弱です。
Important
SAP は OpenSSL をサポートしなくなったため、Microsoft もサポートを中止しました。 既存の接続は引き続き機能しますが、新しい接続を作成することはできなくなります。 代わりに、SAP 暗号化ライブラリ (CommonCryptoLib) または sapcrypto を使用してください。
注
次の手順では、証明書を作成するための OpenSSL コマンドを参照します。 これらのコマンドは説明のために示されていますが、現在、SAP では CommonCryptoLib の使用をお勧めします。 最新のベスト プラクティスについては、SAP ドキュメントを参照してください。
ゲートウェイとデータ ソースを構成する
SAML を使用するには、SSO を有効にする HANA サーバーとゲートウェイの間に信頼関係を確立する必要があります。 このシナリオでは、ゲートウェイは SAML ID プロバイダー (IdP) として機能します。 この関係は、さまざまな方法で確立できます。 セットアップ手順を完了するには、CommonCryptoLib を使用することをお勧めします。 詳細については、公式の SAP ドキュメントを参照してください。
証明書を作成する
HANA サーバーによって信頼されているルート証明機関 (CA) を使用してゲートウェイ IdP の X509 証明書に署名することで、HANA サーバーとゲートウェイ IdP の間に信頼関係を確立できます。
証明書を作成するには、次の操作を行います。
SAP HANA を実行しているデバイスで、証明書を格納する空のフォルダーを作成し、そのフォルダーに移動します。
次のコマンドを実行して、ルート証明書を作成します。
openssl req -new -x509 -newkey rsa:2048 -days 3650 -sha256 -keyout CA_Key.pem -out CA_Cert.pem -extensions v3_ca'''この証明書を使用して他の証明書に署名するには、パスフレーズをコピーして保存してください。 CA_Cert.pem ファイルと CA_Key.pem ファイルが作成されていることがわかります。
次のコマンドを実行して、IdP 証明書を作成します。
openssl req -newkey rsa:2048 -days 365 -sha256 -keyout IdP_Key.pem -out IdP_Req.pem -nodesIdP_Key.pem ファイルと IdP_Req.pem ファイルが作成されていることがわかります。
ルート証明書を使用して IdP 証明書に署名します。
openssl x509 -req -days 365 -in IdP_Req.pem -sha256 -extensions usr_cert -CA CA_Cert.pem -CAkey CA_Key.pem -CAcreateserial -out IdP_Cert.pemCA_Cert.srl ファイルと IdP_Cert.pem ファイルが作成されていることがわかります。 現時点では、 IdP_Cert.pem ファイルのみに関心があります。
SAML ID プロバイダー証明書のマッピングを作成する
SAML ID プロバイダー証明書のマッピングを作成するには、次の操作を行います。
SAP HANA Studio で、SAP HANA サーバー名を右クリックし、 セキュリティ>オープン セキュリティ コンソール>SAML ID プロバイダーを選択します。
[SAP 暗号化ライブラリ] オプションを選択します。 SAP によって非推奨となる OpenSSL 暗号化ライブラリ オプションは使用 しないでください 。
署名された証明書 IdP_Cert.pem をインポートするには、次の図に示すように青い [インポート] ボタンを選択します。
ID プロバイダーの名前を必ず割り当てます。
HANA で署名済み証明書をインポートして作成する
HANA で署名された証明書をインポートして作成するには、次の操作を行います。
SAP HANA Studio で、次のクエリを実行します。
CREATE CERTIFICATE FROM '<idp_cert_pem_certificate_content>'次に例を示します。
CREATE CERTIFICATE FROM '-----BEGIN CERTIFICATE----- MIIDyDCCArCgA...veryLongString...0WkC5deeawTyMje6 -----END CERTIFICATE----- '目的 SAML を使用する個人用セキュリティ環境 (PSE) がない場合は、SAP HANA Studio で次のクエリを実行して作成します。
CREATE PSE SAMLCOLLECTION; set pse SAMLCOLLECTION purpose SAML;次のコマンドを実行して、新しく作成した署名付き証明書を PSE に追加します。
alter pse SAMLCOLLECTION add CERTIFICATE <certificate_id>;例えば次が挙げられます。
alter pse SAMLCOLLECTION add CERTIFICATE 1978320;次のクエリを実行して、作成された証明書の一覧を確認できます。
select * from PUBLIC"."CERTIFICATES"これで証明書が正しくインストールされました。 インストールを確認するには、次のクエリを実行します。
select * from "PUBLIC"."PSE_CERTIFICATES"
ユーザーをマップする
ユーザーをマップするには、次の操作を行います。
SAP HANA Studio で、 セキュリティ フォルダーを選択します。
[ ユーザー] を展開し、Power BI ユーザーをマップするユーザーを選択します。
次の図に示すように、[ SAML ] チェック ボックスをオンにし、[ 構成] を選択します。
[SAML ID プロバイダー証明書のマッピングの作成] セクションで 作成した ID プロバイダーを 選択します。 [外部 ID] に、Power BI ユーザーの UPN (通常は、ユーザーが Power BI へのサインインに使用する電子メール アドレス) を入力し、[追加] を選択します。
ADUserNameReplacementProperty 構成オプションを使用するようにゲートウェイを構成した場合は、Power BI ユーザーの元の UPN を置き換える値を入力します。 たとえば、 ADUserNameReplacementProperty を SAMAccountName に設定した場合は、ユーザーの SAMAccountName を入力します。
ゲートウェイを構成する
ゲートウェイ証明書と ID を構成したので、次の手順に従って証明書を PFX ファイル形式に変換し、証明書を使用するようにゲートウェイを構成します。
次のコマンドを実行して、証明書を PFX 形式に変換します。 このコマンドは、次に示すように、結果のファイル に samlcert.pfx という名前を付け、 root をパスワードとして設定します。
openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout pass:rootゲートウェイ コンピューターに PFX ファイルをコピーします。
a. samltest.pfx をダブルクリックし、[ローカル コンピューター>次へ] を選択します。
b。 パスワードを入力し、[ 次へ] を選択します。
c. [ 次のストアにすべての証明書を配置する] を選択し、[ 参照>Personal>OK] を選択します。
d. [ 次へ] を選択し、[ 完了] を選択します。
ゲートウェイ サービス アカウントに証明書の秘密キーへのアクセスを許可するには、次の操作を行います。
a. ゲートウェイ コンピューターで、Microsoft 管理コンソール (MMC) を実行します。
b。 MMC で、[ ファイル>スナップインの追加と削除を選択します。
c. [ 証明書>追加] を選択し、[ コンピューター アカウント>次へ] を選択します。
d. [ ローカル コンピューター>Finish>OK を選択します。
e. [証明書>個人証明書>証明書 を展開し、証明書を探します。
f. 証明書を右クリックし、[すべてのタスク] >[秘密キーの管理] を選択します。
g. ゲートウェイ サービス アカウントを一覧に追加します。 既定では、アカウントは NT SERVICE\PBIEgwService です。 services.msc を実行し、オンプレミス データ ゲートウェイ サービスを探すことで、ゲートウェイ サービスを実行しているアカウントを確認できます。
最後に、証明書の拇印をゲートウェイ構成に追加します。
コンピューター上の証明書を一覧表示するには、次の PowerShell コマンドを実行します。
Get-ChildItem -path cert:\LocalMachine\My作成した証明書の拇印をコピーします。
ゲートウェイ ディレクトリ (既定では C:\Program Files\オンプレミス データ ゲートウェイ ) に移動します。
PowerBI.DataMovement.Pipeline.GatewayCore.dll.config開き、SapHanaSAMLCertThumbprint セクションを探します。 手順 2 でコピーした拇印を貼り付けます。
ゲートウェイ サービスを再起動します。
Power BI レポートを実行する
Power BI の [ ゲートウェイの管理 ] ページを使用して、SAP HANA データ ソースを構成できるようになりました。 [ 詳細設定] で、SAML 経由で SSO を有効にします。 これにより、そのデータ ソースにバインドされたレポートとデータセットを発行できます。
注
SSO では Windows 認証が使用されるため、Windows アカウントがゲートウェイ コンピューターにアクセスできることを確認します。 不明な場合は、ローカル コンピューターの "Users" グループに NT-AUTHORITY\Authenticated Users (S-1-5-11) を追加してください。
SAP HANA へのシングル サインオンに SAML を使用したトラブルシューティング
このセクションでは、SAP HANA へのシングル サインオンに SAML を使用してトラブルシューティングを行う広範な手順について説明します。 これらの手順を使用すると、発生する可能性がある問題を自己診断して修正するのに役立ちます。
拒否された資格情報
SAML ベースの SSO を構成すると、Power BI ポータルに "指定された資格情報を SapHana ソースに使用できません" というエラーが表示されることがあります。このエラーは、SAML 資格情報が SAP HANA によって拒否されたことを示します。
サーバー側認証トレースは、SAP HANA での資格情報の問題のトラブルシューティングに関する詳細情報を提供します。 SAP HANA サーバーのトレースを構成するには、次の操作を行います。
SAP HANA サーバーで、次のクエリを実行して認証トレースを有効にします。
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') set ('trace', 'authentication') = 'debug' with reconfigure問題を再現します。
SAP HANA Studio で管理コンソールを開き、[ 診断ファイル ] タブを選択します。
最新のインデックス サーバー トレースを開き、 SAMLAuthenticator.cppを検索します。
次の例に示すように、根本原因を示す詳細なエラー メッセージが表示されます。
[3957]{-1}[-1/-1] 2018-09-11 21:40:23.815797 d Authentication SAMLAuthenticator.cpp(00091) : Element '{urn:oasis:names:tc:SAML:2.0:assertion}Assertion', attribute 'ID': '123123123123123' is not a valid value of the atomic type 'xs:ID'. [3957]{-1}[-1/-1] 2018-09-11 21:40:23.815914 i Authentication SAMLAuthenticator.cpp(00403) : No valid SAML Assertion or SAML Protocol detectedトラブルシューティングが完了したら、次のクエリを実行して認証トレースをオフにします。
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') UNSET ('trace', 'authentication');
ゲートウェイ エラーの確認とトラブルシューティング
このセクションの手順に従うには、 ゲートウェイ ログを収集する必要があります。
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."
レポートを作成または更新しようとすると、次の図のようなエラー メッセージが表示されることがあります。
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
Resolution
この SSL エラーを解決するには、データ ソース接続に移動し、次の図に示すように、[ サーバー証明書の検証 ] ドロップダウン リストで [ いいえ] を選択します。
この設定を選択すると、エラー メッセージは表示されなくなります。
ゲートウェイ SignXML エラー
ゲートウェイ SignXML エラーは、 SapHanaSAMLCertThumbprint 設定が正しくないか、HANA サーバーの問題である可能性があります。 ゲートウェイ ログのエントリは、問題が存在する場所とその解決方法を特定するのに役立ちます。
エラーの症状
SignXML: Found the cert...のログ エントリ: GatewayInfo[date].log ファイルにこのエラーが含まれている場合、SignXML 証明書が見つかりました。トラブルシューティングの取り組みは、「HANA サーバー側の確認とトラブルシューティング」セクションにある手順に重点を置く必要があります。
Couldn't find saml certのログ エントリ: GatewayInfo[date].log ファイルにこのエラーが含まれている場合、SapHanaSAMLCertThumbprint が正しく設定されていません。 次の解決策セクションでは、問題を解決する方法について説明します。
Resolution
SapHanaSAMLCertThumbprint を適切に設定するには、「ゲートウェイの構成」セクションの手順に従います。 手順は Finally で始まり 、証明書の拇印をゲートウェイ構成に追加します。
構成ファイルを変更したら、変更を有効にするにはゲートウェイ サービスを再起動する必要があります。
検証
SapHanaSAMLCertThumbprint が正しく設定されている場合、ゲートウェイ ログには、SignXML: Found the cert...を含むエントリが含まれます。 この時点で、「 HANA サーバー側の確認とトラブルシューティング」セクションに 進むことができます。
ゲートウェイで証明書を使用して SAML アサーションに署名できない場合は、次のようなエラーがログに表示されることがあります。
GatewayPipelineErrorCode=DM_GWPipeline_UnknownError GatewayVersion= InnerType=CryptographicException InnerMessage=<pi>Signing key is not loaded.</pi> InnerToString=<pi>System.Security.Cryptography.CryptographicException: Signing key is not loaded.
このエラーを解決するには、「 ゲートウェイの構成」 セクションの手順 3 から始まる手順に従います。
構成を変更したら、ゲートウェイ サービスを再起動して変更を有効にします。
HANA サーバー側の確認とトラブルシューティング
ゲートウェイが証明書を見つけて SAML アサーションに署名できるが、まだエラーが発生している場合は、このセクションの解決策を使用します。 「拒否された資格情報」セクションで前述したように、HANA 認証トレースを収集する必要があります。
SAML ID プロバイダー
HANA 認証トレースに Found SAML provider 文字列が存在することは、SAML ID プロバイダーが正しく構成されていることを示します。 文字列が存在しない場合、構成が正しくありません。
Resolution
まず、組織が sslcryptoprovider として OpenSSL と commoncrypto のどちらを使用しているかを判断します。 使用されているプロバイダーを確認するには、次の手順を実行します。
SAP HANA Studio を開きます。
使用しているテナントの管理コンソールを開きます。
次の図に示すように、[ 構成 ] タブを選択し、 sslcryptoprovider をフィルターとして使用します。
次に、次の手順を実行して、暗号化ライブラリが正しく設定されていることを確認します。
[SAML ID プロバイダー] タブを選択して SAP HANA Studio のセキュリティ コンソールに移動し、次のいずれかの操作を行います。
- sslcryptoprovider が OpenSSL の場合は、 OpenSSL 暗号化ライブラリを選択します。
- sslcryptoprovider が commonCrypto の場合は、 SAP 暗号化ライブラリを選択します。
次の図では、 SAP 暗号化ライブラリ が選択されています。
次の図に示すように、右上にある [デプロイ ] ボタンを選択して、変更をデプロイします。
検証
トレースが適切に構成されると、Found SAML providerが報告され、は報告SAML Provider not found。 次のセクション「SAML アサーション署名のトラブルシューティング」に進むことができます。
暗号化プロバイダーが設定されていても、 SAML Provider not found がまだ報告されている場合は、トレース内で次のテキストで始まる文字列を検索します。
Search SAML provider for certificate with subject =
その文字列で、サブジェクトと発行者が Security Console の [SAML ID プロバイダー] タブに表示されるのとまったく同じであることを確認します。 1 文字でも違うと、問題が発生する可能性があります。 違いがある場合は、エントリが正確に一致するように SAP 暗号化ライブラリの問題を修正できます。
SAP 暗号化ライブラリを変更しても問題が解決しない場合は、手動で [ 発行済み ] フィールドと [ 発行者 ] フィールドをダブルクリックするだけで編集できます。
SAML アサーション署名のトラブルシューティング
次のようなエントリを含む HANA 認証トレースが見つかる場合があります。
[48163]{-1}[-1/-1] 2020-09-11 21:15:18.896165 i Authentication SAMLAuthenticator.cpp(00398) : Unable to verify XML signature
[48163]{-1}[-1/-1] 2020-09-11 21:15:18.896168 i Authentication MethodSAML.cpp(00103) : unsuccessful login attempt with SAML ticket!
このようなエントリが存在するということは、署名が信頼されていないことを意味します。
Resolution
OpenSSL を sslcryptoprovider として使用している場合は、trust.pem ファイルと key.pem ファイルが SSL ディレクトリ内にあるかどうかを確認します。 詳細については、SAP ブログ「SSL を 使用した SAP HANA Studio と SAP HANA Server 間の通信のセキュリティ保護」を参照してください。
sslcryptoprovider として commoncrypto を使用している場合は、テナントに証明書を含むコレクションがあるかどうかを確認します。
検証
トレースが適切に構成されると、 Found valid XML signature報告されます。
UPN マッピングのトラブルシューティング
次のようなエントリを含む HANA トレースが見つかる場合があります。
SAMLAuthenticator.cpp(00886) : Assertion Subject NameID: `johnny@contoso.com` SAMLAuthenticator.cpp(00398) : Database user does not exist
このエラーは、nameId johnny@contoso.com が SAML アサーションで見つかったが、存在しないか、HANA Server で正しくマップされていないことを示します。
Resolution
HANA データベース ユーザーに移動し、選択した SAML チェック ボックスの下にある [構成 ] リンクを選択します。 次のウィンドウが表示されます。
エラー メッセージが示すように、HANA は johnny@contoso.comを検索しようとしていましたが、外部 ID は johnny としてのみ表示されます。 これら 2 つの値は一致する必要があります。 この問題を解決するには、[ 外部 ID] で値を johnny@contoso.com に変更します。 この値では大文字と小文字が区別されることに注意してください。
関連コンテンツ
オンプレミス データ ゲートウェイと DirectQuery の詳細については、次のリソースを参照してください。