本ブログでは、SAP SuccessFactorsとSAP Datasphere とのデータ連携の設定について解説します。
はじめに
SAP SuccessFactorsとSAP Datasphere連携手順概要をご紹介します。
*接続作成に当たり、必要な権限がユーザに付与されている必要があります。
*本ブログでは以下を前提としています。バージョンの相違にご留意ください。
- SAP Datasphere: 2023.19.53
- SAP SuccessFactors: b2305.20230914132337
接続作成に当たり大まかな全体の流れは以下の通りです。
- OAuthクライアントアプリケーションの登録
- SAMLアサーションの取得
- 証明書の登録
- 接続の作成
1.OAuth クライアントアプリケーションの登録
まずはじめに、SAP DatasphereをSAP SuccessFactorsクライアントアプリケーションとして登録します。 SAP SuccessFactorsにログインし、「OAuth2 クライアントアプリケーションの管理」へ移動後「クライアントアプリケーションの登録」を行います。 (管理センター>OAuth クライアントアプリケーションの管理)


アプリケーション名およびアプリケーションURLを記入します。以下の必須項目を記入し、「X.509証明書を生成」を行います。
- アプリケーション名:SAP Datasphere
- アプリケーションURL

X.509証明書の設定画面が表示されるので、Common Nameを任意の名称で指定します。必要に応じて他の項目も埋め、証明書の「生成」を選択します。

OAuth2 クライアントアプリケーションの「登録」を済ませます。

X.509証明書が生成されるので、「ダウンロード」を行い.pemファイルを取得します。この.pemファイルをノートパッドなどで開けると秘密鍵と証明書が含まれているのが確認できます。
「-----BEGIN ENCRYPTED PRIVATE KEY-----」と「 -----END ENCRYPTED PRIVATE KEY-----」の間に表示されている部分が秘密鍵で、後続のSAMLアサーション取得の際に使用します。
*注記:秘密鍵は安全にに管理する必要があり、失った場合は証明書を再発行する必要があります。

登録後に再度SAP SuccessFactorsで先程登録したクライアントアリケーションを開くと以下のようにAPIキーが自動的に作成されているのが確認できます。こちらも後続の「2. SAMLアサーション取得」の際に必要となります。

2. SAMLアサーションの取得
この手順ではApache Mavenを使用してSAMLアサーション取得を行います。はじめに、以下のリンクからApache Mavenの.zipファイルのダウンロードを行い、Cドライブ直下に解凍します。


次に、環境変数の更新を行います。(Windowsタスクバー右クリック>システム>システムの詳細設定>環境変数)
システム変数に含まれているJAVA_HOMEの値を確認し、JDKインストールのパスを指していることをチェックします。 次に、ユーザ環境変数で「新規」を選択し以下のように設定します。
- 変数名:PATH
- 変数値:先程ダウンロードしたJDKインストールフォルダ内の「bin」

コマンドプロンプトに移動し、以下のコマンドを実行することでJDKインストールのチェックを行います。
echo %JAVA_HOME%

先程ダウンロードしたApache Mavenフォルダ内の“bin”ディレクトリへ移動します。
(例:cd C:\apache-maven-3.9.4\bin)

以下のコマンドを実行しApache Mavenのインストールが成功していることを確認し、SAMアサーションの生成の準備が完了していることチェックします。
mvn -v

こちらにアクセスし、添付文書に含まれている.zipファイルをダウンロード後ローカルドライブに解凍します。フォルダに移動し、「SAMLAssertion.properties」のファイルをノートパッドなどで開きます。

こちらの添付ファイルには例として既に項目が入力されていますが、以下の項目を入力し保存してファイルを閉じます。
- トークンURL
- クライアントID:OAuth クライアントアプリケーションの登録時に受信したAPIキー
- ユーザID:ユーザIDが空欄の場合のみユーザ名を記入する
- 秘密鍵: OAuth2 クライアントアプリケーションの登録時にダウンロードした.pemファイルの509証明書に含まれる
- SAMLアサーションの有効期限:分あるいは日単位
*注記:SAMLアサーションの有効期限はデフォルトでは5分~10分で設定されています。expireInDaysあるいはexpireInMinutesを使用し、ビジネス要件に沿って有効期限を設定する必要があります。
記入例:
再度コマンドプロンプトを開き、「SAMLAssertion.properties」のファイルが格納されているフォルダへ移動します。(例:cd C:\SAMLAssertionGen-master)

以下のコマンドを実行すると、SAMLアサーションが生成されます。こちらは後続の「3. 接続の作成」で必要となるので、ローカルドライブに安全に保管します。
mvn compile exec:java -Dexec.args="SAMLAssertion.properties"

3.証明書のアプロード
SAP SuccessFactorsとの接続はデータプロビジョニングエージェントを使用しない接続タイプになります。そのため、サーバ証明書をSAP DatasphereにアップロードをすることでSSL/TLSベースのセキュアな接続を確立することができ、リモートテーブルを有効化することが出来るようになっています。詳細は
こちらからご確認頂けます。
サーバ証明書の取得は以下にサインインして行います。



証明書の追加は次のパスから出来ます。ローカルディレクトリから証明書を選択し、証明書に関する説明を入力します。(システム>セキュリティ>+証明書を追加)


4.接続の作成
SAP Datasphereにログインして接続を作成します。接続タイプの一覧からSAP SuccessFactorsを選択します。(接続>作成>SAP SuccessFactors)


認証タイプでは「OAuth 2.0」を選択し以下の項目を入力します。
*注記:2023年9月現在「ユーザ名およびパスワード」の認証は非推奨となっており、まもなく廃止予定となっています。詳細に関しては
こちらをご確認下さい。
- 認証タイプ: OAuth 2.0
- OAuthトークンエンドポイント
- OAuth会社ID
- クライアントID
- SAMLアサーション


以下のように、作成した接続のチェックボックスを選択し、右上にあるチェックを行います。問題なく作成が出来ていれば、このように“接続が有効です”と表示されます。接続が無効になっている場合はSAMLアサーションの有効期限が切れていることが1つの原因として考えられます。
さいごに
最後までお読みいただきありがとうございました!
以下に関連するリンクを掲載しておりますので、併せてご確認ください。
SAP Help Portal
SAP for Me
Special Thanks to Horikoshi-san!