注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

OAuth 2.0 によるユーザーに帰属する SAP ライトバック

このページでは、SAP で OAuth 2.0 サーバーを設定する手順と、Foundry で OAuth 2.0 クライアントを設定する手順を説明します。

SAP で OAuth 2.0 サーバーを設定する

前提条件

  • Palantir Foundry Connector 2.0 for SAP Applications(「コネクター」)の SP21 以上
  • SAP の Foundry テクニカルユーザーは SYSTEM ユーザーである必要があります
  • /PALANTIR/OAUTH_CLIENT を、Foundry テクニカルユーザーと、Foundry から SAP にライトバックするエンドユーザーに割り当てる必要があります
  • /PALANTIR/CONTENT_FUNCTION_ALL をエンドユーザーに割り当てる必要があります
  • /sap/public/bc ノード配下のすべてのサービスを有効化する必要があります(OAuth 2.0 設定用)
    • /sap/bc/sec/oauth2*
    • /default_host/sap/bc/webdynpro/sap/oauth2_authority
  • SAP Gateway がアクティブであること
  • SAP_BASIS(SAP NetWeaver と SAP S/4HANA の両システムに適用される技術コンポーネントのバージョン)が 7.4 SP09 以上であること(OAuth 2.0 と OData のサポート)

参考資料

OAuth 2.0 設定

  1. SOAUTH2 トランザクションを実行します。
  2. 作成... を選択します。
  3. OAuth 2.0 クライアントIDに Foundry テクニカルユーザーのユーザー名を入力します。
  4. 次へ > を選択します。
  5. ユーザーIDに Foundry テクニカルユーザーのユーザー名を入力します。
  6. クライアントユーザーIDとパスワードおよび SSL クライアント証明書の両方にチェックが入っていることを確認します。
  7. 次へ > を選択します。
  8. リダイレクト URIを https://<FOUNDRY_DOMAIN>/workspace/oauth2-clients/callback に設定します。
  9. 次へ > を選択します。
  10. OAuth 2.0 スコープIDを /PALANTIR/SRV_0001、説明を Palantir Foundry writeback using SAP functions などに設定したスコープ割り当てを追加します。
  11. 次へ > を選択し、次に完了を選択します。

OData 設定

  1. SAP のサービスの保守ページで、サービスの階層をたどり、opu > odata > palantir を見つけます。
  2. palantir を右クリックして、サービスの有効化を選択します。
  3. プロンプトが表示されたら、はいを選択します。
  4. サービスの作成/変更タブで、対話型オプションのGUI 設定を選択します。
  5. 名前が ~CHECK_CSRF_TOKEN、値が 0(ゼロ)のパラメーターを追加します。
  6. 次のページに記載されている手順に従って、CSRF_TOKEN 検証を無効にします:https://help.sap.com/doc/saphelp\_hba/1.0/de-DE/e6/cae27d5e8d4996add4067280c8714e/content.htm
  7. /IWFND/MAINT_SERVICE トランザクションを実行します。
  8. システムエイリアスのシステムエイリアスの追加を選択します。
  9. 次の値を使用してシステムエイリアスを追加します。
    • サービス文書識別子: /PALANTIR/SRV_0001
    • ユーザーロール: 空欄
    • ホスト名: 空欄
    • SAP システムエイリアス: LOCAL
    • メタデータのデフォルト: チェックなし
    • デフォルトシステム: チェックあり
    • 技術サービス名: /PALANTIR/SRV
    • 外部サービス名: ODATA_SRV
    • バージョン: 1
    • ユーザー名: 空欄

Foundry で OAuth 2.0 クライアントを設定する

ここでは、アウトバウンドアプリケーションを設定するで説明されている一般的な方法を、SAP システム向けに調整しています。

SAP 接続に合ったセットアップを選択します。

アウトバウンドアプリケーションのセットアップ

  1. Control Panel に移動し、組織の設定のアウトバウンドのアプリケーションを選択します。
  2. 新しいアプリケーションを追加を選択します。
  3. アプリケーション名に、たとえば SAP システムの名前を入力します。
  4. 承認プロンプトに、認可操作を説明する文言(たとえば Allow Foundry to act on your behalf in SAP?)を設定します。
  5. OAuth 2.0 サーバー接続で、Foundry ワーカーの選択肢を選択します。
  6. 認可ページの URLを、SAP HTTPS ポートを含む SAP OAuth 2.0 認可エンドポイントに設定します。<SAP_DOMAIN> を SAP のホスト名に、<SAP_PORT> をその HTTPS ポートに置き換えます。
https://<SAP_DOMAIN>:<SAP_PORT>/sap/bc/sec/oauth2/authorize
  1. トークンエンドポイント URLを、SAP HTTPS ポートを含む SAP OAuth 2.0 トークンエンドポイントに設定します。
https://<SAP_DOMAIN>:<SAP_PORT>/sap/bc/sec/oauth2/token
  1. 出力ポリシーで、SAP システムにアクセスできるネットワーク内にインストールされた Data Connection Agent を介してトラフィックをルーティングする Agent プロキシエグレスポリシーを選択します。

Foundry ワーカーの選択肢、SAP の認可およびトークンエンドポイント URL、Agent プロキシエグレスポリシーを設定したアウトバウンドアプリケーション。

  1. OAuth 2.0 設定で、クライアントIDを SAP OAuth 2.0 サーバー設定のクライアントIDに設定します。スコープで、/PALANTIR/SRV_0001 を追加します。
  2. アウトバウンドアプリケーションを保存します。
  3. このアウトバウンドアプリケーションを、SAP Webhook の作成時に使用できるようになりました。

アウトバウンドアプリケーションの設定オプションの詳細については、アウトバウンドアプリケーションを設定するを参照してください。

SAP Data Accelerator を使用したアウトバウンドアプリケーションのセットアップ

ベータ版

SAP Data Accelerator を介したユーザーに帰属するライトバックは、開発のベータ版フェーズにあり、お使いのエンロールメントでは利用できない場合があります。これには、以下で説明するトークン取得 Webhook と更新トークン Webhook、アウトバウンドアプリケーションのセットアップ、および BAPI ライトバックが含まれます。開発が進行している間は、機能が変更される場合があります。

SAP Data Accelerator を介したユーザーに帰属するライトバックを有効にするには、SAP ERP ソースに2個の Webhook、つまりトークン取得 Webhook と更新トークン Webhook を作成します。次に、アウトバウンドアプリケーションで両方の Webhook を選択します。これらの Webhook は、ソースの認証と SAP Data Accelerator の接続設定を使用して、トークンの交換と更新を行います。

開始する前に、SAP OAuth 2.0 サーバーのセットアップを完了し、SAP Data Accelerator を使用するように SAP ERP ソースを設定してください。また、アウトバウンドアプリケーションを管理する権限も必要です。

トークン取得 Webhook と更新トークン Webhook を作成する

両方の Webhook で関数の設定をオフにしてください

トークン取得 Webhook と更新トークン Webhook を作成する際は、関数の設定をオフにしてください。この設定が有効になっていると、Webhook は関数として公開され、アウトバウンドアプリケーションでは使用できません。

各 Webhook のタスクタイプを選択した後、例を挿入を使用します。これにより、タスク本文のテンプレートが自動的に入力され、入力パラメーターと出力パラメーターが、データ型およびレスポンスフィールドへのマッピングとともに作成されます。以下のパラメーターテーブルを使用して、生成された設定を確認します。

SAP ERP トークン取得 Webhook のタスクタイプを選択した状態で、タスク本文 Template の横に表示されている「例を挿入」ボタン。

トークン取得 Webhook と更新トークン Webhook の権限付与

両方の Webhook で、リクエスト設定 > 権限付与のアウトバウンドアプリケーションを選択されていませんのままにします。これらの Webhook は、SAP ソースの認証を使用して、アウトバウンドアプリケーションのトークンを取得および更新します。ここでそのアプリケーションを選択すると、循環依存関係が生じます。

両方の Webhook で、Webhook の安全性をデフォルトのAPI を書き込むのままにします。

以下の手順に従って、同じ SAP ERP ソースに2個の Webhook を作成します。

  1. まず、トークン取得 Webhook を作成します。Data Connection でソースを開き、Webhook を作成を選択します。
  2. Get OAuth Token などの Webhook 名を入力し、関数の設定をオフにします。
  3. リクエスト設定で、タスクタイプを sap-erp-oauth2-token-webhook-task に設定します。
  4. 空のタスク本文 Template の横にある例を挿入を選択して、トークン取得 Webhook の設定を生成します。生成されたパラメーターを以下の参照情報と照らし合わせて確認し、Webhook を保存します。
  5. 次に、同じソースに更新トークン Webhook を作成します。Refresh OAuth Token などの名前を入力します。
  6. 関数の設定をオフにし、タスクタイプを sap-erp-oauth2-refresh-webhook-task に設定します。
  7. 例を挿入を選択して、更新トークン Webhook の設定を生成します。生成されたパラメーターを以下の参照情報と照らし合わせて確認し、Webhook を保存します。

トークン取得 Webhook は、以下の入力パラメーターを必要とします。

入力パラメーターデータ型必須
client_id文字列はい
redirect_uri文字列はい
authorization_code文字列はい
code_verifier任意の文字列アウトバウンドアプリケーションで PKCE を有効にするがオンになっている場合は必須です。

生成されたタスク本文は、これらの入力を以下のようにマッピングします。

Copied!
1 2 3 4 5 6 { "client_id": {{json client_id}}, "redirect_uri": {{json redirect_uri}}, "authorization_code": {{json authorization_code}}, "code_verifier": {{json code_verifier}} }

更新トークン Webhook は、以下の入力パラメーターを必要とします。

入力パラメーターデータ型必須
client_id文字列はい
refresh_token文字列はい

生成されたタスク本文は、これらの入力を以下のようにマッピングします。

Copied!
1 2 3 4 { "client_id": {{json client_id}}, "refresh_token": {{json refresh_token}} }

Foundry は、認可とトークン更新の際にこれらの入力値を指定します。各リクエストが適切な値を受け取れるように、タスク本文内のパラメーター参照を保持してください。

例を挿入は、両方の Webhook に以下の出力パラメーターも作成します。レスポンスで、各変数に指定された名前、データ型、レスポンスキーを持つ出力パラメーターがそれぞれ設定されていることを確認します。Webhook を手動で設定する場合は、以下のテーブルに示すように、行ごとに1個の出力パラメーターを作成し、対応するレスポンスキーにマッピングします。

出力パラメーターデータ型レスポンスキー
access_token文字列access_token
scope文字列scope
token_type任意の文字列token_type
expires_in任意の文字列expires_in
refresh_token任意の文字列refresh_token

以下の例は、トークン取得 Webhook に設定された入力と出力のマッピングを示しています。

任意のコードベリファイアーを含む4個の入力パラメーターと、JSON レスポンスキーによって抽出される出力パラメーターを持つトークン取得 Webhook。

更新トークン Webhook は、2個の入力パラメーターと同じ出力マッピングを使用します。

クライアントIDと更新トークンの入力、および対応する JSON レスポンスフィールドから抽出される出力パラメーターを持つ更新トークン Webhook。

アウトバウンドアプリケーションを設定する

以下の手順に従って、保存した2個の Webhook を使用して OAuth 2.0 接続を設定します。

  1. Control Panel で、組織の設定 > アウトバウンドのアプリケーションを開き、新しいアプリケーションを追加を選択します。
  2. アプリケーション名と、Allow Foundry to act on your behalf in SAP? などの承認プロンプトを入力します。
  3. OAuth 2.0 サーバー接続で、レガシーと指定されているオンプレミス Webhook を選択します。この選択肢により、アウトバウンドアプリケーションで SAP ソースの Data Accelerator 接続を使用できます。ソース自体は引き続き Foundry ワーカー上で実行されます。
  4. ソース接続で、Webhook を作成した SAP ERP ソースを選択します。
  5. トークン Webhook を sap-erp-oauth2-token-webhook-task を使用する Webhook に設定し、更新トークン Webhook を sap-erp-oauth2-refresh-webhook-task を使用する Webhook に設定します。
  6. 認可ページの URL を https://<SAP_DOMAIN>/sap/bc/sec/oauth2/authorize に設定します。ユーザーがブラウザーからアクセスできる SAP URL を使用します。トークンの交換と更新には SAP Data Accelerator を使用しますが、この対話型の認可ステップでは、ユーザーのコンピューターからのアクセスが必要です。
  7. OAuth 2.0 設定で、クライアントIDを SAP OAuth 2.0 の設定で作成した OAuth 2.0 クライアントIDに設定します。その手順に従った場合、これは Foundry のテクニカルユーザーの SAP ユーザー名になります。
  8. スコープに /PALANTIR/SRV_0001 を追加します。
  9. アウトバウンドアプリケーションを保存します。

オンプレミス Webhook(レガシー)を使用するアウトバウンドアプリケーション。SAP ERP ソース、トークン取得 Webhook と更新トークン Webhook、SAP 認可 URL、クライアントIDの例である PALANTIR、および /PALANTIR/SRV_0001 スコープが設定されています。

アウトバウンドアプリケーションをライトバックに使用する

同じ SAP ERP ソースで、BAPI を呼び出す Webhook を作成または編集します。この BAPI Webhook のリクエスト設定 > 権限付与 > アウトバウンドアプリケーションで、保存したアプリケーションを選択します。ユーザーがライトバックワークフローを実行すると、有効なトークンをまだ持っていない場合、Foundry は SAP へのアクセスを認可するためのプロンプトを表示します。その後、ライトバックはそのユーザーの SAP 認可を使用し、必要に応じて更新トークン Webhook が新しいアクセストークンを取得します。

(レガシー)Webhook ベースの OAuth 2.0 設定

レガシー

以下で説明する REST API Webhook の設定は、開発ライフサイクルのレガシー段階にあり、追加の開発は予定されていません。新しい設定では、Foundry で OAuth 2.0 クライアントをセットアップするの該当する接続設定を選択します。レガシーの方法の詳細については、(レガシー)カスタム Webhook ベースの OAuth 2.0 ハンドシェイクを参照してください。

以前は、SAP 用の OAuth 2.0 を設定するには、トークンフローと更新フローを手動で処理するための Webhook を備えた専用の REST API ソースを作成する必要がありました。既存の SAP 統合でこの方法を使用している場合は、引き続き動作します。

ソース接続のセットアップ

SAP ソースの URL が HTTPS を使用していることを確認してください。そうでない場合、OAuth フローを使用すると Webhook が失敗します。

  1. 新しい REST API ソースを作成します。

REST API ソースを作成する

  1. SAP ソースで使用するベースドメインの URL とポートを使用して、ソースを設定します。
  2. 基本認証を選択し、SAP への接続に使用するユーザー名とパスワードを追加します。

REST API ソースを設定する

  1. ソースを保存します。

OAuth 2.0 認可フローの Webhook のセットアップ

関数として公開された Webhook は非対応

関数として公開された Webhook は、レガシーのカスタム Webhook ベースの OAuth 2.0 アウトバウンドアプリケーションでは使用できません。トークン Webhook と更新 Webhook を作成するときは、関数の公開が無効になっていることを確認してください。

  1. 新しい REST API ソースの概要ページで、Webhook を作成を選択します。

  2. Webhook に名前(たとえば SAP OAuth2 authorization code flow webhook)を付けます。関数の設定がオフになっていることを確認してください。

  3. リクエスト設定ステップに進みます。

  4. 呼び出しで、リクエストの種類として POST を選択し、パスとして sap/bc/sec/oauth2/token を入力します。

  5. 使用するクライアントがデフォルトのクライアントでない場合は、クエリパラメーターで sap-client を設定する必要がある場合があります。

Webhook の呼び出し

  1. 入力パラメーターまで下にスクロールし、次の3個のパラメーター(すべて文字列型)を追加します。
  • redirect_uri
  • client_id
  • authorization_code

Webhook の入力パラメーター

  1. 呼び出しまで上にスクロールして戻り、本体タブを選択します。
  2. フォーム URL エンコードを選択し、次の4件のエントリーを追加します。
  • grant_type → authorization_code
  • redirect_uri → redirect_uri 入力パラメーターにマッピング(方法については以下を参照)
  • client_id → client_id 入力パラメーターにマッピング
  • code → authorization_code 入力パラメーターにマッピング
  1. 入力パラメーターをマッピングするには、項目に @ を入力し、入力パラメーターを選択します。該当するパラメーターを見つけて選択し、その下の追加を選択します。

入力パラメーターのマッピング

  1. 完成した本体の設定は、次のようになります。

Webhook の本文

  1. レスポンスステップに進みます。
  2. 次の5個の出力パラメーターを作成します。すべて文字列型にし、レスポンスからキーで抽出するようにします。
  • access_token
  • token_type
  • expires_in
  • refresh_token
  • scope

以下は access_token を作成する例です。すべての出力パラメーターで、このパターンに従います。

Webhook の出力パラメーター

  1. Webhook を作成して続行を選択して、Webhook を保存します。

OAuth 2.0 更新フローの Webhook のセットアップ

  1. REST API ソースから新しい Webhook を作成します。
  2. Webhook に区別できる名前(たとえば SAP OAuth2 refresh flow webhook)を付けます。関数の設定がオフになっていることを確認してください。
  3. リクエストメソッドは、同様に POST に設定し、同じパス(sap/bc/sec/oauth2/token)を使用します。
  4. 前の Webhook と同様に、必要に応じて sap-client をクエリパラメーターとして設定します。
  5. ヘッダータブで、次のヘッダーを追加します。
  • Content-Type → application/x-www-form-urlencoded

更新 Webhook のヘッダー

  1. 次の2個の入力パラメーター(どちらも文字列型)を設定します。
  • client_id
  • refresh_token
  1. 次に、本体タブで次の3件のエントリーを追加します。
  • grant_type → refresh_token
  • client_id → client_id 入力パラメーターにマッピング
  • refresh_token → refresh_token 入力パラメーターにマッピング 更新 Webhook の本文
  1. 認可コードフローの Webhook とまったく同じ5個の出力パラメーターを作成します。すべて文字列型にし、レスポンスからキーで抽出するようにします。
  • access_token
  • token_type
  • expires_in
  • refresh_token
  • scope
  1. Webhook を作成して続行を選択して、Webhook を保存します。

レガシーのアウトバウンドアプリケーションのセットアップ

  1. Foundry Control Panel に移動し、アウトバウンドのアプリケーションを選択します。
  2. アプリケーションに名前を付け、(レガシー)カスタム Webhook ベースの OAuth 2.0 ハンドシェイクに記載されている手順に従います。
  3. 先ほど作成した認可フローの Webhook をトークン Webhookとして、更新フローの Webhook を更新トークン Webhookとして使用します。
  4. 認可ページの URLは、次の形式にします。
https://<SAP_DOMAIN>/sap/bc/sec/oauth2/authorize
  1. OAuth 2.0 設定で、クライアントIDを SAP OAuth 2.0 サーバー設定のクライアントIDに設定します。スコープで、/PALANTIR/SRV_0001 を追加します。
  2. アウトバウンドアプリケーションを保存します。
  3. これで、SAP Webhook の作成時に、このアウトバウンドアプリケーションを使用できます。