SAP OData コネクタにより Microsoft Entra ID、Azure API Management、SSO の SSP を設定する
SAP へのシングル サインオン (SSO) に Microsoft Entra ID 資格情報を使用するように、Power Platform SAP OData コネクタを設定できます。 ユーザーは、SAP での権限と割り当てられた役割を尊重すると同時に、複数のサービスに何度もサインインすることなく、Power Platform ソリューションで SAP データにアクセスできます。
この記事では、SAP と Microsoft Entra ID 間の信頼関係を設定するプロセスや、Microsoft Entra ID OAuth トークンを SAP への OData 呼び出しに使用される SAML トークンに変換するように Azure API Management を構成するプロセスについて説明します。
このブログ投稿から、設定プロセスに関するさらなる分析情報とコンテキストを得ることができます。
前提条件
- SAP インスタンス
- Azure API Management リソース
ローカル プロバイダーの SAML メタデータを SAP からダウンロードする
SAML 2.0 を使用して SAP と Microsoft Entra ID の間に信頼関係を設定するには、まず SAP からメタデータ xml ファイルをダウンロードします。
SAP GUI で SAP Basis 管理者としてこれらの手順を実行します。
SAP GUI で、トランザクション SAML2 を実行して、関連する SAP クライアント依存ウィザードを開き、 ローカルプロバイダ タブを選択します。
メタデータ を選択して メタデータのダウンロード を選択します。 後の手順で、SAP SAML メタデータを Microsoft Entra ID にアップロードします。
URI 準拠 プロバイダー名をメモします。
ヒント
Microsoft Entra ID ではこの値が URI に準拠している必要があります。 すでに設定されいる プロバイダー名 が URI に準拠していない場合、SAP Basis チームに相談せずに変更しないでください。 プロバイダー名 を変更すると、既存の SAML 構成が壊れる可能性があります。 変更手順についてはこの記事では説明しません。 SAP Basis チームにガイダンスを確認してください。
詳細については SAP の公式ドキュメント を参照してください。
SAP メタデータを Microsoft Entra ID エンタープライズ アプリケーションにインポートする
Microsoft Entra ID 管理者として Azure ポータル で次の手順を実行します。
Microsoft Entra ID>エンタープライズ アプリケーション を選択します。
新規アプリケーション を選択します。
SAP Netweaver を検索します。
エンタープライズ アプリケーションに名前を付けて 作成 を選択します。
シングル サインオン に移動し、SAMLを選択します。
メタデータ ファイルのアップロード を選択し、SAP からダウンロードしたメタデータ ファイルを選択します。
追加を選択します。
返信 URL (Assertion Consumer Service URL) を SAP OAuth トークン エンドポイントに変更します。 URL の形式:
https://<SAP server>:<port>/sap/bc/sec/oauth2/token
。サインオン URL を URI 準拠の値に変更します。 このパラメータは使用されないため、URI に準拠した任意の値を設定できます。
保存 を選びます。
属性とクレームの下で、編集を選択します。
クレーム名の一意のユーザー識別子 (名前 ID) が user.userprincipalname [nameid=format:emailAddress] に設定されていることを確認します。
SAML 証明書 で、証明書 (Base64) と フェデレーション メタデータ XML の ダウンロード を選択します。
SAP で Microsoft Entra ID を OAuth 2.0 の信頼できる ID プロバイダーとして構成する
SAP NetWeaver および OAuth2 の Microsoft Entra ID ドキュメント セクションに記載されている手順に従います。
SAP で OAuth2 クライアントが作成されたら、この記事に戻ってください。
詳細については SAP の公式ドキュメント を参照してください。
Azure API Management リソースを表す Microsoft Entra ID アプリケーションを作成します
SAP OData コネクタへのアクセスを許可する Microsoft Entra Microsoft Power Platform ID アプリケーションを設定します。 このアプリケーションを使用すると、Azure API Management リソースで OAuth トークンを SAML トークンに変換できます。
Microsoft Entra ID 管理者として Azure ポータル で次の手順を実行します。
Microsoft Entra ID > アプリの登録 > 新規登録 を選択します。
名前 を入力し、登録 を選択します。
証明書とシークレット>新しいクライアント シークレット を選択します。
説明 を入力して 追加 を選択します。
このシークレットをコピーして、安全な場所に保存してください。
API アクセス許可>アクセス許可の追加を選択します。
Microsoft Graph > 委任されたアクセス許可 を選択します。
OpenID を検索して選択します。
アクセス許可の追加 を選択します。
認証 > プラットフォームの追加 > Web を選択します。
リダイレクト URI を
https://localhost:44326/signin-oidc
に設定します。アクセス トークン と ID トークンを選択し、構成を選択します。
API を公開する を選択します。
アプリケーション ID URI の横にある 追加 を選択します。
デフォルト値を受け入れ、保存 を選択します。
スコープの追加 を選択します。
スコープ名 を user_impersonation に設定します。
誰が同意できますか? を 管理者とユーザー に設定します。
スコープの追加 を選択します。
アプリケーション (クライアント) ID をコピーします。
Azure API Management リソースが Microsoft Entra ID エンタープライズ アプリケーションを使用して SAP Netweaver にアクセスすることを承認します
Microsoft Entra IDエンタープライズ アプリケーションは、作成時に一致するアプリ登録を作成します。 SAP NetWeaver 用に作成した ID エンタープライズ アプリケーションと一致する アプリの登録 Microsoft Entra を見つけます。
API を公開する > クライアント アプリケーションの追加 を選択します。
使用している Azure API Management インスタンスの ID アプリ登録のアプリケーション (クライアント) ID を Microsoft Entra クライアント ID 貼り付けます。
user_impersonation スコープを選択し、アプリケーションの追加を選択します。
Microsoft Power Platform SAP OData コネクタを承認して、Azure API Management によって公開されている API にアクセスする
Azure API Management の Microsoft Entra ID アプリ登録で、承認されたクライアント アプリケーション API の公開> SAP OData コネクタ Power Platform のクライアント ID を追加
6bee4d13-fd19-43de-b82c-4b6401d174c3
を選択します。user_impersonation スコープを選択し、保存を選択します。
SAP の構成OAuth
SAP で OAuth 2.0 クライアントを作成し、Azure API Management がユーザーの代わりにトークンを取得できるようにします。
詳細については SAP の公式ドキュメント を参照してください。
SAP GUI で SAP Basis 管理者としてこれらの手順を実行します。
トランザクション SOAUTH2 を実行します。
作成を選択します。
クライアント ID のページで次を行います:
- OAuth 2.0 クライアント ID の場合は、SAP システム ユーザーを選択します。
- 説明 を入力して 次へ を選択します。
クライアント認証 ページで、次へ を選択します。
付与タイプの設定 ページで以下の手順を実行します。
- 信頼できる OAuth 2.0 IdP の場合は、Microsoft Entra ID エントリを選択します。
- 更新を許可 を選択て 次へ を選択します。
スコープの割り当て ページで、追加 を選択し、Azure API Management が使用する OData サービス (ZAPI_BUSINESS_PARTNER_0001 など) を選択して、次へ を選択します。
完了を選択します。
Azure API Management を構成する
SAP OData XML メタデータを Azure API Management インスタンスにインポートします。 次に、Azure API Management ポリシーを適用してトークンを変換します。
Azure API Management インスタンスを開き、 ステップ に従って SAP OData API を作成します。
API で、名前付き値 を選択します。
次のキー/値のペアを追加します:
Key | 価値 |
---|---|
AADSAPResource | SAP ローカル プロバイダー URI |
AADTenantId | テナント GUID |
APIMAADRegisteredAppClientId | Microsoft Entra ID アプリケーション GUID |
APIMAADRegisteredAppClientSecret | 前のステップのクライアント シークレット |
SAPOAuthClientID | SAP システム ユーザー |
SAPOAuthClientSecret | SAP システム ユーザー パスワード |
SAPOAuthRefreshExpiry | トークン更新の有効期限 |
SAPOAuthScope | SAP OAuth 構成中に選択された OData スコープ |
SAPOAuthServerAddressForTokenEndpoint | Azure API Management がトークン取得を実行するために呼び出す SAP エンドポイント |
ヒント
設定は SAP SuccessFactors では若干異なることに注意してください。 詳細については、 Azure SAP SuccessFactors の API Management ポリシーを参照してください。
Azure API Management トークン ポリシーの適用
Azure API Management ポリシーを使用して、 Microsoft Entra ID 発行のトークンを SAP NetWeaver が受け入れるトークンに変換します。 これは、OAuth2SAMLBearer フローを使用して行われます。 詳細については、SAP の公式ドキュメント をご参照ください。
Microsoft の公式 GitHub ページから Azure API Management ポリシー をコピーします。
Azure Portal を開きます。
Azure API Management リソースに移動します。
API を選択し、作成した OData API を選択します。
すべての操作を選択します。
受信処理 で ポリシー </> を選択します。
既存のポリシーを削除し、コピーしたポリシーを貼り付けます。
保存 を選びます。
関連するコンテンツ
- SAP OData コネクタ
- SAP OData コネクタが OAuth2 と SAP Principal Propagation をサポートするようになりました | Power Automate コミュニティ ブログ
- SAP SuccessFactors の Azure API Management ポリシー | GitHub
- SAP SuccessFactors 用 SAP OData コネクタ |SAP コミュニティブログ
- SAP SuccessFactors の SAP Integration Suite ポリシー |SAP Business Accelerator Hub
- SAP NetWeaver 用 SAP Integration Suite ポリシー | SAP Business Accelerator Hub