皆様、こんにちは
ここでは、OAuth認証を使ってSAP SuccessFactorsのAPIをテスト実行するための設定について紹介しています
記述にあたり、こちらのSAPの技術文書を参考にしていますので、興味がある方はこちらも合わせて御覧ください
2800150 – How to test OAuth authentication via Postman – SuccessFactors Integrations
その他に、SAPのヘルプポータルにもOAuth認証による接続設定の記載があります
実プロジェクトでご利用を検討されている方は、こちらもご覧頂き、詳細をご確認頂ければ幸いです
【概要】
おおまかなステップです
① SAP SuccessFactors上で「OAuth2 クライアントアプリケーション」を登録
(この環境にアクセスするためのAPIキー、秘密鍵、X.509 証明書を定義します)
↓
② POSTMAN上で、SAMLアサーションを取得します
(①で定義したAPIキーと秘密鍵を使い、SAMLアサーションを取得します)
↓
③ POSTMAN上で、アクセストークンを取得します
(②で取得したSAMLアサーションを用いて、アクセストークンを取得します)
↓
④ POSTMANから、ユーザー情報をGETするAPIを実行します
(③で取得したアクセストークンを使い、APIを実行します)
【手順:① SAP SuccessFactors上で「OAuth2 クライアントアプリケーション」を登録】
それでは、順にスクリーンショットを用いて手順を紹介します
メニュー:管理センター>OAuth2クライアントアプリケーションの管理
クライアントアプリケーションの登録ボタンをクリックします
アプリケーション名:Oauth
説明:任意
アプリケーションURL:https://localhost/
を入力し、X.509証明書を作成ボタンをクリックします
X.509証明書の設定画面が表示されます
Common Name:SF
を入力し生成ボタンをクリックします
X.509証明書が生成された画面が表示されます
ダウンロードボタンをクリックし、.pemファイルを取得します
このファイルには秘密鍵と証明書が記述されています(Notepadなどのアプリで確認できするとこのようなテキストが表示されます)
最後に、登録ボタンをクリックします
登録後に再度開くとこのような画面になっており、このクライアントアプリケーションのAPIキーも自動的に作成されています
【手順:② POSTMAN上で、SAMLアサーションを取得します】
POSTMANを開き、POSTリクエストを登録します
メニュー:Workspaces(画面上部) > My Workspace > Collections(画面左側)
+ボタンをクリックすると、New Collectionが作成されます
New Collectionの名前を00_OAuth testとしました
作成したCollectionを右クリックし、Add Requestをクリックします
作成したRequestを下記のように設定します
名前:OAuth test: idp
メソッド:POST
URL:https://データセンターURL/oauth/idp (本ドキュメントではシンガポールのプレビューデータセンター環境を利用しているためhttps://api44preview.sapsf.com/oauth/idpを用います)
尚、データセンターごとのURLをこちらから入手頂けます
2215682 – Successfactors API URLs for different Data Centers
https://apps.support.sap.com/sap/support/knowledge/en/2215682
続いてBodyをクリックし、下記のパラメータを指定します
media type: x-www-form-urlencoded
client_id: ①で作成したOAuth2クライアントアプリケーションのAPIキーを登録します(ここではMTEzNDgxOTJlYWM0NGJlMmVhMDQ5NmVhNzJjOQ)
user_id = sfadmin
token_url = https://api44preview.sapsf.com/oauth/token
private_key = ①でダウンロードしたファイルの「—–BEGIN ENCRYPTED PRIVATE KEY—– と—–END ENCRYPTED PRIVATE KEY—–の間にあるテキスト」をすべてコピー&ペーストします
Sendボタンをクリックすると画面下にレスポンス(SAMLアサーション)が返ってきます
ステータスが200 OKになっていれば成功です
【手順:③ POSTMAN上で、アクセストークンを取得します】
次に、アクセストークンを取得するためのリクエストを追加します
再度Collectionを右クリックしAdd Requestを選択します
作成したRequestを下記のように設定します
名前:OAuth test: token
メソッド:POST
URL:https://データセンターURL/oauth/token (ここではhttps://api44preview.sapsf.com/oauth/tokenを用います)
続いてBodyをクリックし、下記のパラメータを指定します
media type: x-www-form-urlencoded
client_id: ①で作成したOAuth2クライアントアプリケーションのAPIキーを登録します(ここではMTEzNDgxOTJlYWM0NGJlMmVhMDQ5NmVhNzJjOQ)
grant_type = urn:ietf:params:oauth:grant-type:saml2-bearer
company_id = SFSALES007430
token_url = https://api44preview.sapsf.com/oauth/token
assertion = ②で取得したSAMLアサーションをペーストします
Sendボタンをクリックすると画面下にレスポンス(アクセストークン)が返ってきます
ステータスが200 OKになっていれば成功です
【手順:④ POSTMANから、ユーザー情報をGETするAPIを実行します】
これでSAP SuccessFactorsのAPIを実行するための準備が完了しました
③で取得したアクセストークンを使って、ユーザー情報をGETするAPIを実行します
再度Collectionを右クリックしAdd Requestを選択します
作成したRequestを下記のように設定します
名前:OAuth test: GET
メソッド:POST
URL:https://データセンターURL/odata/v2/User(‘sfadmin’)?select=userId, firstName (ここではhttps://api44preview.sapsf.com/odata/v2/User(‘sfadmin’)?select=userId, firstNameを用います)
続いてHeadersをクリックし、下記のパラメータを指定します
Authorization: Bearer <access token> (③で取得したアクセストークンをペーストします)
Accept: application/json
Sendボタンをクリックすると画面下にレスポンス(取得したユーザーデータ)が返ってきます
ステータスが200 OKになっていれば成功です
ユーザーsfadminのユーザーデータが取得できていることが確認できます
以上で、設定とテストは完了となります
本ドキュメントではOAuth認証を用いたAPIの実行をご紹介しました