この記事では、SAP NetWeaver と Microsoft Entra ID を統合する方法について説明します。 SAP NetWeaver を Microsoft Entra ID と統合すると、次のことができます。
- SAP NetWeaver にアクセスできるユーザーを Microsoft Entra ID で制御する。
- ユーザーが自分の Microsoft Entra アカウントを使用して SAP NetWeaver に自動的にサインインできるようにする。
- 1 つの場所でアカウントを管理します。
前提条件
この記事で説明するシナリオでは、次の前提条件が既にあることを前提としています。
- アクティブなサブスクリプションを持つ Microsoft Entra ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- 次のいずれかのロール:
- SAP NetWeaver でのシングル サインオン (SSO) が有効なサブスクリプション。
- SAP NetWeaver V7.20 以降
シナリオの説明
- SAP NetWeaver では、SAML (SP Initiated SSO) と OAuth の両方がサポートされます。 この記事では、テスト環境で Microsoft Entra SSO を構成してテストします。
注
このアプリケーションの識別子は固定文字列値であるため、1 つのテナントで構成できるインスタンスは 1 つだけです。
注
自分の組織の要件に応じて SAML または OAuth でアプリケーションを構成してください。
ギャラリーからの SAP NetWeaver の追加
Microsoft Entra ID への SAP NetWeaver の統合を構成するには、ギャラリーから管理対象 SaaS アプリの一覧に SAP NetWeaver を追加する必要があります。
- クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
- Entra ID>のEnterprise apps>に移動し、新しいアプリケーションを選択します。
- [ギャラリーから追加する] セクションで、検索ボックスに、「SAP NetWeaver」と入力します。
- 結果パネルから [SAP NetWeaver] を選択し、アプリを追加します。 お使いのテナントにアプリが追加されるのを数秒待機します。
または、Enterprise App Configuration ウィザードを使用することもできます。 このウィザードでは、テナントにアプリケーションを追加したり、ユーザー/グループをアプリに追加したり、ロールを割り当てたり、SSO 構成を確認したりできます。 Microsoft 365 ウィザードの詳細をご覧ください。
SAP NetWeaver 用に Microsoft Entra SSO を構成してテストする
B.Simon というテスト ユーザーを使用して、SAP NetWeaver に対する Microsoft Entra SSO を構成してテストします。 SSO が機能するためには、Microsoft Entra ユーザーと SAP NetWeaver の関連ユーザーとの間にリンク関係を確立する必要があります。
SAP NetWeaver に対する Microsoft Entra SSO を構成してテストするには、次の手順を行います。
- Microsoft Entra SSO を構成して、ユーザーがこの機能を使用できるようにします。
- Microsoft Entra テスト ユーザーを作成し、B.Simon を使用して Microsoft Entra シングル サインオンをテストします。
- Microsoft Entra テスト ユーザーを割り当て、B.Simon が Microsoft Entra シングル サインオンを使用できるようにします。
- SAML を使用した SAP NetWeaver の構成 - アプリケーション側で SSO 設定を構成します。
- SAP NetWeaver のテスト ユーザーの作成 - SAP NetWeaver で B.Simon に対応するユーザーを作成し、Microsoft Entra の B.Simon にリンクさせます。
- SSO のテスト - 構成が機能するかどうかを確認します。
- SAP NetWeaver の OAuth 向け構成 - アプリケーション側で OAuth 設定を構成します。
- Id プロバイダー (IdP) として Microsoft Entra ID を使用するように Microsoft Entra ID からアクセス トークンを要求します。
Microsoft Entra SSO の構成
このセクションでは、Microsoft Entra のシングル サインオンを有効にします。
SAP NetWeaver で Microsoft Entra シングル サインオンを構成するには、次の手順を実行します。
新しい Web ブラウザー ウィンドウを開き、SAP NetWeaver 企業サイトに管理者としてサインインします。
http および https サービスがアクティブであり、SMICM T-Code で適切なポートが割り当てられていることを確認します。
SAP システム (T01) のビジネス クライアントにサインオンします。SSO が必要であり、HTTP セキュリティ セッション管理をアクティブ化します。
トランザクション コードの SICF_SESSIONS に移動します。 すべての関連プロファイル パラメーターと現在の値が表示されます。 次のように表示されます。
login/create_sso2_ticket = 2 login/accept_sso2_ticket = 1 login/ticketcache_entries_max = 1000 login/ticketcache_off = 0 login/ticket_only_by_https = 0 icf/set_HTTPonly_flag_on_cookies = 3 icf/user_recheck = 0 http/security_session_timeout = 1800 http/security_context_cache_size = 2500 rdisp/plugin_auto_logout = 1800 rdisp/autothtime = 60
注
組織の要件に合わせて上記のパラメーターを調整します。上記のパラメーターは参考用にのみ示してあります。
必要に応じて SAP システムのインスタンスまたは既定プロファイルでパラメーターを調整し、SAP システムを再起動します。
関連するクライアントをダブル選択して、HTTP セキュリティ セッションを有効にします。
以下の SICF サービスをアクティブ化します。
/sap/public/bc/sec/saml2 /sap/public/bc/sec/cdc_ext_service /sap/bc/webdynpro/sap/saml2 /sap/bc/webdynpro/sap/sec_diag_tool (This is only to enable / disable trace)
SAP システム [T01/122] のビジネス クライアントでトランザクション コード SAML2 に移動します。 ブラウザーでユーザー インターフェイスが開きます。 この例では、SAP ビジネス クライアントとして 122 を想定しています。
ユーザー インターフェイスに入力するユーザー名とパスワードを入力し、[ 編集] を選択します。
プロバイダー名を T01122 から
http://T01122
に置き換え、[保存] を選択します。注
既定ではプロバイダー名は
<sid><client>
という形式ですが、Microsoft Entra ID では<protocol>://<name>
という形式の名前が想定されています。プロバイダー名はhttps://<sid><client>
のままにして、Microsoft Entra ID で複数の SAP NetWeaver ABAP エンジンを構成できるようにすることをお勧めします。サービス プロバイダー メタデータの生成:- SAML 2.0 ユーザー インターフェイスで ローカル プロバイダー と 信頼されたプロバイダー の設定を構成したら、次の手順は、サービス プロバイダーのメタデータ ファイル (SAP のすべての設定、認証コンテキスト、およびその他の構成を含む) を生成することです。 このファイルが生成されたら、このファイルを Microsoft Entra ID にアップロードします。
[Local Provider](ローカル プロバイダー) タブに移動します。
[メタデータ] を選択します。
生成されたメタデータ XML ファイルをコンピューターに保存し、それを Azure portal の [基本的な SAML 構成] セクションにアップロードして、 [識別子] と [応答 URL] の値を自動的に設定します。
次の手順に従って Microsoft Entra SSO を有効にします。
クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
Entra ID>Enterprise apps>SAP NetWeaver アプリケーション統合ページを参照し、[管理] セクションを見つけて、[シングル サインオン] を選択します。
[シングル サインオン方式の選択] ページで、 [SAML] を選択します。
[SAML によるシングル サインオンのセットアップ] ページで、 [基本的な SAML 構成] の鉛筆アイコンを選択して設定を編集します。
[基本的な SAML 構成] セクションで、アプリケーションを IDP 開始モードで構成する場合は、次の手順を実行します。
[ メタデータ ファイルのアップロード ] を選択して、前に取得した サービス プロバイダーメタデータファイルをアップロードします。
フォルダー ロゴを選択してメタデータ ファイルを選択し、[アップロード] を選択します。
メタデータ ファイルが正常にアップロードされると、次に示すように、識別子と応答 URL の値が、 [基本的な SAML 構成] セクションのテキスト ボックスに自動的に設定されます。
[サインオン URL] ボックスに、
https://<your company instance of SAP NetWeaver>
という形式で URL を入力します。
注
一部のお客様からは、インスタンスに対して構成された応答 URL に誤りがあるというエラーの報告を受けています。 このようなエラーが発生した場合は、これらの PowerShell コマンドを使用します。 まず、アプリケーション オブジェクト内の応答 URL をこの応答 URL で更新してから、サービス プリンシパルを更新します。 Get-MgServicePrincipal を使用して、サービス プリンシパル ID の値を取得します。
$params = @{ web = @{ redirectUris = "<Your Correct Reply URL>" } } Update-MgApplication -ApplicationId "<Application ID>" -BodyParameter $params Update-MgServicePrincipal -ServicePrincipalId "<Service Principal ID>" -ReplyUrls "<Your Correct Reply URL>"
SAP NetWeaver アプリケーションでは、特定の形式の SAML アサーションを使用するため、カスタム属性マッピングを SAML トークン属性の構成に追加する必要があります。 次のスクリーンショットには、既定の属性一覧が示されています。 [編集] アイコンを選択して、[ユーザー属性] ダイアログを開きます。
[ユーザー属性] ダイアログの [ユーザーの要求] セクションで、上の図のように SAML トークン属性を構成し、次の手順を実行します。
[ 編集] アイコン を選択して、[ ユーザー要求の管理 ] ダイアログを開きます。
[変換] の一覧で、ExtractMailPrefix() を選択します。
[パラメーター 1] の一覧で、user.userprincipalname を選択します。
保存 を選択します。
[SAML でシングル サインオンをセットアップします] ページの [SAML 署名証明書] セクションで、 [フェデレーション メタデータ XML] を探して [ダウンロード] を選択し、証明書をダウンロードしてコンピューターに保存します。
[SAP NetWeaver の設定] セクションで、要件に基づいて適切な URL をコピーします。
Microsoft Entra テスト ユーザーの作成と割り当て
B.Simon というテスト ユーザー アカウントを作成するには、のガイドラインに従った後で のクイックスタートを使用して、ユーザー アカウントを作成して割り当ててください。
SAML を使用した SAP NetWeaver の構成
SAP システムにサインインし、トランザクション コード SAML2 に移動します。 新しいブラウザー ウィンドウで SAML 構成画面が開きます。
信頼できる ID プロバイダー (Microsoft Entra ID) のエンド ポイントを構成するには、[Trusted Providers](信頼できるプロバイダー) タブに移動します。
[Add](追加) をクリックして、コンテキスト メニューから [Upload Metadata File](メタデータ ファイルのアップロード) を選択します。
先ほどダウンロードしたメタデータ ファイルをアップロードします。
次の画面で、エイリアス名を入力します。 たとえば
aadsts
と入力して、[次へ] を押して次に進みます。[Digest Algorithm](ダイジェスト アルゴリズム) が [SHA-256] であることを確認します。何も変更する必要はありません。[Next](次へ) をクリックします。
[Single Sign-On Endpoints](シングル サインオン エンドポイント) で、[HTTP POST] を使用し、[Next](次へ) を選んで続行します。
シングル ログアウト エンドポイントで HTTPRedirect を選択し、[次へ] を選択して続行します。
[Artifact Endpoints](アーティファクト エンドポイント) では、[Next](次へ) をクリックして続行します。
[認証要件] で、[完了] を選択します。
[Trusted Providers](信頼できるプロバイダー)>[Identity Federation](ID フェデレーション) タブ (画面下部) に移動します。 [編集] を選択します。
[ID フェデレーション] タブ (下部ウィンドウ) で [追加] を選択します。
ポップアップ ウィンドウで、[サポートされている NameID 形式] から [未指定] を選択し、[OK] を選択します。
[User ID Source](ユーザー ID ソース) の値として「Assertion Attribute」を、 [User ID mapping mode](ユーザー ID マッピング モード) の値として「Email」を、 [Assertion Attribute Name](アサーション属性名) の値として「
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
」を指定します。[User ID Source](ユーザー ID ソース) と [User ID mapping mode](ユーザー ID マッピング モード) の値によって、SAP ユーザーと Microsoft Entra 要求の間のリンクが決まることに注意してください。
シナリオ: SAP ユーザーから Microsoft Entra ユーザーへのマッピング。
SAP の NameID 詳細スクリーンショット。
Microsoft Entra ID からの必須要求に関するスクリーンショット。
シナリオ:SU01 で構成済みのメール アドレスに基づいて SAP ユーザー ID を選択する。 このケースでは、SSO を必要とする各ユーザーの su01 でメール ID を構成する必要があります。
SAP の NameID 詳細スクリーンショット。
Microsoft Entra ID からの必須要求に関するスクリーンショット。
[Save](保存) を 選んでから [Enable](有効) を選び、ID プロバイダーを有効にします。
メッセージが表示されたら 、[OK] を選択します 。
SAP NetWeaver のテスト ユーザーの作成
このセクションでは、SAP NetWeaver で B.simon というユーザーを作成します。 社内の SAP 専門家チームまたは組織の SAP パートナーと協力して、SAP NetWeaver プラットフォームにユーザーを追加してください。
SSO のテスト
ID プロバイダーの Microsoft Entra ID がアクティブ化されたら、以下の URL にアクセスして SSO を確認し、ユーザー名とパスワードの入力を求めないことを確認してください。
https://<sapurl>/sap/bc/bsp/sap/it00/default.htm
(または) 下記の URL を使用します
https://<sapurl>/sap/bc/bsp/sap/it00/default.htm
注
sapurl は実際の SAP のホスト名に置き換えます。
上記の URL により、下の画面に移動するはずです。 以下のページまでアクセスできる場合は、Microsoft Entra SSO のセットアップが正常に完了します。
ユーザー名とパスワードのプロンプトが表示された場合は、以下のように URL を使用してトレースを有効にすることで、問題を診断できます。
https://<sapurl>/sap/bc/webdynpro/sap/sec_diag_tool?sap-client=122&sap-language=EN#
SAP NetWeaver の OAuth 向け構成
SAP によって文書化されたプロセスが「NetWeaver Gateway サービスの有効化と OAuth 2.0 スコープの作成」に記載されています
SPRO に移動し、[Activate and Maintain services](サービスのアクティブ化と管理) を探します。
この例では、OAuth を使用した OData サービス
DAAG_MNGGRP
を Microsoft Entra SSO に接続します。 テクニカル サービス名の検索を使用して、DAAG_MNGGRP
というサービスを探し、まだアクティブ ([ICF nodes](ICF ノード) タブでgreen
状態を確認) になっていない場合はアクティブ化します。 システム エイリアス (サービスが実際に実行される接続先バックエンド システム) が正しいことを確認してください。- 次に、上部のボタン バーでプッシュ ボタン OAuth を選択し、
scope
を割り当てます (既定の名前をそのまま使用します)。
- 次に、上部のボタン バーでプッシュ ボタン OAuth を選択し、
この例では、スコープは
DAAG_MNGGRP_001
です。 番号を自動的に追加することで、サービス名から生成されます。 レポート/IWFND/R_OAUTH_SCOPES
は、スコープの名前の変更または作成を手動で行うために使用できます。注
soft state status isn't supported
というメッセージは問題ないので無視してかまいません。
OAuth 2.0 クライアントのサービス ユーザーを作成する
OAuth2 では、
service ID
を使用してエンドユーザーのアクセス トークンを代わりに取得します。 OAuth の設計上の重要な制限として、OAuth 2.0 Client ID
は、OAuth 2.0 クライアントがアクセス トークンを要求する際のログインに使用されるusername
と一致している必要があります。 したがって、この例では、名前CLIENT1を使用して OAuth 2.0 クライアントを登録します。 前提条件として、同じ名前 (CLIENT1) を持つユーザーが SAP システム内に存在する必要があり、参照されるアプリケーションによってそのユーザーが使用されるように構成します。OAuth クライアントを登録する際は、
SAML Bearer Grant type
を使用します。注
詳細については、こちらの「SAML ベアラー付与タイプでの OAuth 2.0 クライアントの登録」を参照してください。
T-Code
SU01
を実行してユーザー CLIENT1 をSystem type
として作成し、パスワードを割り当てます。 API プログラマに資格情報を提供する必要があるため、パスワードを保存します。このパスワードは、呼び出し元のコードにユーザー名を付けて保存する必要があります。 プロファイルやロールを割り当てる必要はありません。
新しい OAuth 2.0 クライアント ID を作成ウィザードで登録する
新しい OAuth 2.0 クライアントを登録するために、トランザクション SOAUTH2 を開始します。 このトランザクションは、既に登録されている OAuth 2.0 クライアントについての概要を表示します。 この例では CLIENT1 という名前の新しい OAuth クライアントのために、[作成] を選択してウィザードを起動します。
T-Code: SOAUTH2 に移動し、説明を入力して 次を選択します。
あらかじめ追加されている [SAML2 IdP - Microsoft Entra ID] をドロップダウン リストから選択して保存します。
[スコープの割り当て] で [ 追加] を選択して、以前に作成したスコープを追加します。
DAAG_MNGGRP_001
[完了] を選択します。
Microsoft Entra ID からアクセス トークンを要求する
Microsoft Entra ID (旧称 Azure AD) を ID プロバイダー (IdP) として使用して SAP システムからアクセス トークンを要求するには、次の手順に従います。
手順 1: Microsoft Entra ID でアプリケーションを登録する
- Azure portal にログインします: portal.azure.comの Azure portal に移動します。
- 新しいアプリケーションを登録する:
- [Microsoft Entra ID] に移動します。
- [アプリの登録] > [新しい登録] の順に選びます。
- 名前、リダイレクト URI などのアプリケーションの詳細を入力します。
- [登録] を選択します。
- API のアクセス許可を構成する
- 登録後、[API アクセス許可] に移動します。
- [アクセス許可の追加] を選択し、[組織が使用する API] を選択します。
- SAP システムまたは関連する API を検索し、必要なアクセス許可を追加します。
- アクセス許可に対して管理者の同意を付与する。
手順 2: クライアント シークレットを作成する
- 登録済みアプリケーションに移動します: [証明書とシークレット] に移動します。
- 新しいクライアント シークレットを生成する:
- [新しいクライアント シークレット] を選択します。
- 説明を入力し、有効期限を設定します。
- [追加] を選択し、認証に必要なクライアント シークレットの値をメモします。
手順 3: SAP System for Microsoft Entra ID 統合を構成する
- SAP クラウド プラットフォームにアクセス: SAP Cloud Platform コックピットにログインします。
- 信頼の構成を設定する:
- [セキュリティ] > [信頼の構成] に移動します。
- Microsoft Entra ID からフェデレーション メタデータ XML をインポートして、信頼できる IdP として Microsoft Entra ID を追加します。 これは、Microsoft Entra ID アプリ登録の [エンドポイント] セクション ([フェデレーション メタデータ ドキュメント] の下) にあります。
- OAuth2 クライアントを構成します:
- SAP システムで、Microsoft Entra ID から取得したクライアント ID とクライアント シークレットを使用して OAuth2 クライアントを構成します。
- トークン エンドポイントとその他の関連する OAuth2 パラメーターを設定します。
手順 1: アクセス トークンを要求する
ヒント
Azure API Management を使用して、スマート トークン キャッシュ、セキュリティで保護されたトークン処理、要求調整などのガバナンス オプションを含む、Azure、Power Platform、Microsoft 365 などのすべてのクライアント アプリの SAP プリンシパル伝達プロセスを 1 か所で効率化することを検討してください。 Azure API Management を使用した SAP プリンシパル伝達の詳細情報。 SAP Business Technology Platform が推奨される場合は、こちらの記事を参照してください。
トークン要求を準備する:
- 次の詳細を使用してトークン要求を作成します。
- トークン エンドポイント: 通常、これは
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
です。 - クライアント ID: Microsoft Entra ID からのアプリケーション (クライアント) ID。
- クライアント シークレット: Microsoft Entra ID からのクライアント シークレット値。
- スコープ: 必要なスコープ (例:
https://your-sap-system.com/.default
)。 - 付与タイプ: サーバー間認証に
client_credentials
を使用します。
- トークン エンドポイント: 通常、これは
- 次の詳細を使用してトークン要求を作成します。
トークン要求を行う:
- Postman やスクリプトのようなツールを使用して、POST 要求をトークン エンドポイントに送信します。
- 要求の例 (cURL 内):
curl -X POST \ https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'client_id={client_id}&scope=https://your-sap-system.com/.default&client_secret={client_secret}&grant_type=client_credentials'
アクセス トークンを抽出します:
- 要求が成功した場合、応答にはアクセス トークンが含まれます。 このアクセス トークンを使用して、SAP システムに対する API 要求を認証します。
手順 5: API 要求にアクセス トークンを使用する
- API 要求にアクセス トークンを含めます:
- SAP システムへの要求ごとに、
Authorization
ヘッダーにアクセス トークンを含めます。 - ヘッダーの例:
Authorization: Bearer {access_token}
- SAP システムへの要求ごとに、
SAML2 と OAuth2 用の SAP NetWeaver 用のエンタープライズ アプリを同時に構成する
SSO 用の SAML2 と API アクセス用の OAuth2 の並列使用では、両方のプロトコルに対して Microsoft Entra ID で同じエンタープライズ アプリを構成できます。
一般的なセットアップでは、SSO の場合は SAML2、API アクセスの場合は OAuth2 が既定で使用されます。
関連コンテンツ
- 組織の機密データを流出と侵入からリアルタイムで保護するセッション制御を適用するように Microsoft Entra SAP NetWeaver を構成します。 セッション制御は、条件付きアクセスを拡張したものです。 Microsoft Defender for Cloud Apps でセッション制御を強制する方法をご覧ください。
- Azure API Management を使用して SAP プリンシパル伝達 (OAuth2) を構成し、Azure、Power Platform、Microsoft 365 などのクライアント アプリから SAP システムへのアクセスを管理し、セキュリティで保護します。 Azure API Management を使用した SAP プリンシパル伝達の詳細情報。