【ノーコード】SAP SuccessFactors をSalesforce の外部オブジェクトとしてノーコード連携:API Server
CData API Server はSAP SuccessFactors (および 250+ のデータソース)をOData API 化し、Salesforce やSalesforce モバイルアプリケーション(旧:Salesforce1)での利用を実現します。 この記事では、API Server を使ってSAP SuccessFactors のデータを外部オブジェクトとしてSalesforce Connect に設定し、Salesforce の標準オブジェクトと同感覚で使用する方法を説明します。
API Server の設定
以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなSAP SuccessFactors OData サービスを作成していきましょう。
SAP SuccessFactors への接続
Salesforce Connect からSAP SuccessFactors のデータを操作するには、まずSAP SuccessFactors への接続を作成・設定します。
- API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。
- 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「SAP SuccessFactors」を選択します。
- 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
CData コネクタの追加方法はこちら >> - それでは、SAP SuccessFactors への接続設定を行っていきましょう!
-
SAP SuccessFactorsへの接続
それでは、SAP SuccessFactors に接続していきましょう。CData 製品は、デフォルトで有効になっているOData API を介してSAP SuccessFactors と通信します。追加の権限が必要な場合は、SAP サポートサイトをご確認ください。
認証方法として、Azure AD 認証、SAP IAS 認証、OAuth 認証(推奨)、Basic 認証(非推奨)のいずれかを使用してSAP SuccessFactors に認証できます。
必要な接続プロパティ
選択したAuthScheme に関わらず、SAP SuccessFactors 環境を識別するために以下の接続プロパティを設定しましょう。
- URL:SuccessFactors をホストするサーバーのURL
- CompanyId:SAP SuccessFactors テナントに割り当てられた一意の識別子。この値はAPI 認証に必要で、組織固有のものです
OAuth 認証
SAP SuccessFactors では、OAuth 認証を2種類のグラント種別でサポートしています。
- SAP SuccessFactors LMS インスタンスのクライアントグラント種別
- SAML-2 Bearer グラント種別
OAuth 認証を有効にするには、すべてのOAuth フローでカスタムOAuth アプリケーションを作成し、適切なプロパティを設定する必要があります。
デスクトップアプリケーションでカスタムOAuth アプリケーションの資格情報を使用して認証するには、OAuth アクセストークンを取得し、更新する必要があります。これらを設定すると、接続の準備が整います。
OAuth アクセストークンの取得およびリフレッシュ
以下のプロパティを設定してください。
- InitiateOAuth:GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId
- CallbackURL:カスタムOAuth アプリケーションの登録時に定義されたリダイレクトURI
- OAuthClientSecret (クライアントグラント種別のみ):アプリケーションの登録時に割り当てられたクライアントシークレット
- PrivateKey (SAML-2 Bearer グラント種別のみ):カスタムOAuth アプリケーションの作成時にダウンロードした秘密鍵証明書のパス、またはその証明書のbase64 でエンコードされた内容
接続すると、CData 製品がデフォルトブラウザでSAP SuccessFactors のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えてください。
アプリケーションにアクセス許可を与えると、CData 製品がOAuth プロセスを完了します。
- CData 製品がSAP SuccessFactors からアクセストークンを取得し、それを使ってデータをリクエストします
- OAuth 値はOAuthSettingsLocation で指定されたパスに保存されます。これらの値は接続間で永続化されます
アクセストークンの期限が切れた際は、CData 製品が自動でアクセストークンをリフレッシュします。
カスタムOAuth アプリケーションの作成やその他の認証方法については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「はじめに」をご確認ください。
- 接続情報の入力が完了したら、「保存およびテスト」をクリックします。
SAP SuccessFactorsへの接続
それでは、SAP SuccessFactors に接続していきましょう。CData 製品は、デフォルトで有効になっているOData API を介してSAP SuccessFactors と通信します。追加の権限が必要な場合は、SAP サポートサイトをご確認ください。
認証方法として、Azure AD 認証、SAP IAS 認証、OAuth 認証(推奨)、Basic 認証(非推奨)のいずれかを使用してSAP SuccessFactors に認証できます。
必要な接続プロパティ
選択したAuthScheme に関わらず、SAP SuccessFactors 環境を識別するために以下の接続プロパティを設定しましょう。
- URL:SuccessFactors をホストするサーバーのURL
- CompanyId:SAP SuccessFactors テナントに割り当てられた一意の識別子。この値はAPI 認証に必要で、組織固有のものです
OAuth 認証
SAP SuccessFactors では、OAuth 認証を2種類のグラント種別でサポートしています。
- SAP SuccessFactors LMS インスタンスのクライアントグラント種別
- SAML-2 Bearer グラント種別
OAuth 認証を有効にするには、すべてのOAuth フローでカスタムOAuth アプリケーションを作成し、適切なプロパティを設定する必要があります。
デスクトップアプリケーションでカスタムOAuth アプリケーションの資格情報を使用して認証するには、OAuth アクセストークンを取得し、更新する必要があります。これらを設定すると、接続の準備が整います。
OAuth アクセストークンの取得およびリフレッシュ
以下のプロパティを設定してください。
- InitiateOAuth:GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId
- CallbackURL:カスタムOAuth アプリケーションの登録時に定義されたリダイレクトURI
- OAuthClientSecret (クライアントグラント種別のみ):アプリケーションの登録時に割り当てられたクライアントシークレット
- PrivateKey (SAML-2 Bearer グラント種別のみ):カスタムOAuth アプリケーションの作成時にダウンロードした秘密鍵証明書のパス、またはその証明書のbase64 でエンコードされた内容
接続すると、CData 製品がデフォルトブラウザでSAP SuccessFactors のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えてください。
アプリケーションにアクセス許可を与えると、CData 製品がOAuth プロセスを完了します。
- CData 製品がSAP SuccessFactors からアクセストークンを取得し、それを使ってデータをリクエストします
- OAuth 値はOAuthSettingsLocation で指定されたパスに保存されます。これらの値は接続間で永続化されます
アクセストークンの期限が切れた際は、CData 製品が自動でアクセストークンをリフレッシュします。
カスタムOAuth アプリケーションの作成やその他の認証方法については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「はじめに」をご確認ください。
API Server のユーザー設定
次に、API Server 経由でSAP SuccessFactors にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。
- 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
-
次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
-
その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。
SAP SuccessFactors 用のAPI エンドポイントの作成
ユーザーを作成したら、SAP SuccessFactors のデータ用のAPI エンドポイントを作成していきます。
-
まず、「API」ページに移動し、
「 テーブルを追加」をクリックします。
-
アクセスしたい接続を選択し、次へをクリックします。
-
接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。
OData のエンドポイントを取得
以上でSAP SuccessFactors への接続を設定してユーザーを作成し、API Server でSAP SuccessFactors データのAPI を追加しました。これで、OData 形式のSAP SuccessFactors データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。
SAP SuccessFactors のデータに外部データソースとしてアクセス
ここからは、API Server で生成したOData フィードにSalesforce から実際に接続してみます。
- Salsforce にログインし、[設定]→[統合]→[外部データソース]をクリックします。
- 「新規外部データソース」をクリックします。
- 次の値を入力してください。
- 外部データソース:Salesforce ユーザインターフェースに表示するラベル
- 名前:一意の識別子
- 種別:"Salesforce Connect: OData 4.0" を選択。
URL:先ほど確認した、API Server のOData エンドポイントのURL を設定します。フォーマットは、https://your-server:your-port.rsc.
です。プレーンテキストはテストのみに使用し、本番ではTSL の仕様を推奨します。
- 「書き込み可能外部オブジェクト」オプションにクリックを入れます。
形式メニューでは、JSON を選択します。
- 認証セクションで、次のプロパティを設定してください。
- ID 種別: 組織のすべてのメンバーが同じ認証情報でAPI Server にアクセスする場合には[指定ユーザー]を指定します。組織のメンバーがそれぞれの認証情報を使う場合には「ユーザ」を指定します。
- 認証プロトコル: ベーシック認証には、「パスワード認証」を選択します。
- 証明書: Salesforce からサーバーへの通信を暗号化し認証するには証明書を指定します。
- ユーザ名: API Server に登録されたユーザー名。
- パスワード: ユーザーのAuth トークン。
SAP SuccessFactors オブジェクトの同期
外部オブジェクトを作成したら、次のステップでSAP SuccessFactors 外部オブジェクトのデータソース側の変更を反映させます。 SAP SuccessFactors テーブルの定義とSAP SuccessFactors 外部オブジェクトの定義を同期する必要があります。
- 作成した外部オブジェクトをクリックします。
- [検証して同期]をクリックします。
- 外部オブジェクトとして作業するSAP SuccessFactors テーブルを選択し、[同期]します。
Salesforce オブジェクトとしてSAP SuccessFactors のデータにアクセス
以上でSAP SuccessFactors を外部オブジェクトとして設定できたので、Salesforce の標準オブジェクトと同じようにアクセスできます。実際にアクセスしてみましょう。
-
フィルタリストビューで新しいタブを作成。
-
SAP SuccessFactors 外部オブジェクトの関連テーブルを標準セールスフォースオブジェクトのように表示。
-
Salesforce ダッシュボードからSAP SuccessFactors データを取得・更新。
トラブルシューティング
よくある接続時の問題を解決するためには、以下のチェックリストを確認してみてください。
- サーバーがパブリックにアクセス可能なIP アドレスを持っていることを確認してください。関連して、オペレーティングシステム層でAPI Server が実行されているポートのファイアウォールが開いていることを確認する必要があります。アプリケーション層では、管理コンソールの設定 -> セキュリティタブで信頼できるIP アドレスを追加したことを確認してください。
- 商業的な信頼されたCA からのSSL 証明書で保護された接続を使用していることを確認してください。Salesforce は現在、自己署名証明書や内部CA を受け付けていません。
API Server をホストしているサーバーがTLS 1.1 以上を使用していることを確認してください。.NET 版のAPI Server を使用している場合は、API Server の組み込みサーバーを使用してこれを実現できます。
IIS を使用している場合、TLS 1.1 と 1.2 はサポートされていますが、デフォルトでは有効になっていません。これらのプロトコルを有効にするには、MSDN のハウツーとMicrosoft のページを参照してください。
Java 版を使用している場合、TLS 1.2 は Java 8 ではデフォルトで有効になっていますが、Java 6 または 7 ではそうではありません。これらの以前のバージョンを使用している場合は、Oracle のハウツーを参照してください。
おわりに
以上で、Salesforce の外部データソースとしてSAP SuccessFactors のデータに直接接続できるようになりました。
API Server のご利用について質問などありましたら、問い合わせフォームよりお気軽にご相談ください。