チュートリアル: Microsoft Entra シングル サインオン (SSO) の SAP NetWeaver との統合
このチュートリアルでは、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 を構成してテストします。
Note
このアプリケーションの識別子は固定文字列値であるため、1 つのテナントで構成できるインスタンスは 1 つだけです。
注意
自分の組織の要件に応じて SAML または OAuth でアプリケーションを構成してください。
ギャラリーからの SAP NetWeaver の追加
Microsoft Entra ID への SAP NetWeaver の統合を構成するには、ギャラリーから管理対象 SaaS アプリの一覧に SAP NetWeaver を追加する必要があります。
- クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
- [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[新しいアプリケーション] に移動します。
- [ギャラリーから追加する] セクションで、検索ボックスに、「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 の 当該ユーザーにリンクさせます。
- SSO のテスト - 構成が機能するかどうかを確認します。
- SAP NetWeaver の OAuth 向け構成 - アプリケーション側で OAuth 設定を構成します。
- Id プロバイダー (IdP) として Azure AD を使用するには Azure AD からアクセス トークンを要求します。
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 を想定しています。
ユーザー インターフェイスに入るためのユーザー名とパスワードを指定し、 [Edit](編集) をクリックします。
プロバイダー名 を T01122 から
http://T01122
に変更し、 [保存] をクリックします。Note
既定ではプロバイダー名は
<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](ローカル プロバイダー) タブに移動します。
[Metadata](メタデータ) をクリックします。
生成されたメタデータ XML ファイルをコンピューターに保存し、それを Azure portal の [基本的な SAML 構成] セクションにアップロードして、 [識別子] と [応答 URL] の値を自動的に設定します。
次の手順に従って Microsoft Entra SSO を有効にします。
クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
[ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[SAP NetWeaver] アプリケーション統合ページに移動し、[管理] セクションを見つけて、[シングル サインオン] を選択します。
[シングル サインオン方式の選択] ページで、 [SAML] を選択します。
[SAML によるシングル サインオンのセットアップ] ページで、 [基本的な SAML 構成] の鉛筆アイコンをクリックして設定を編集します。
[基本的な SAML 構成] セクションで、アプリケーションを IDP 開始モードで構成する場合は、次の手順を実行します。
[メタデータ ファイルをアップロードする] をクリックして、前に取得したサービス プロバイダー メタデータ ファイルをアップロードします。
フォルダー ロゴをクリックしてメタデータ ファイルを選択し、 [アップロード] をクリックします。
メタデータ ファイルが正常にアップロードされると、次に示すように、識別子と応答 URL の値が、 [基本的な SAML 構成] セクションのテキスト ボックスに自動的に設定されます。
[サインオン URL] ボックスに、
https://<your company instance of SAP NetWeaver>
という形式で URL を入力します。
Note
一部のお客様からは、インスタンスに対して構成された応答 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 というテスト ユーザーを作成します。
- Microsoft Entra 管理センターにユーザー管理者以上でサインインしてください。
- [ID]>[ユーザー]>[すべてのユーザー] の順に移動します。
- 画面の上部で [新しいユーザー]>[新しいユーザーの作成] を選択します。
- [ユーザー] プロパティで、以下の手順を実行します。
- "表示名" フィールドに「
B.Simon
」と入力します。 - [ユーザー プリンシパル名] フィールドに「username@companydomain.extension」と入力します。 たとえば、「
B.Simon@contoso.com
」のように入力します。 - [パスワードを表示] チェック ボックスをオンにし、 [パスワード] ボックスに表示された値を書き留めます。
- [Review + create](レビュー + 作成) を選択します。
- "表示名" フィールドに「
- [作成] を選択します。
Microsoft Entra テスト ユーザーを割り当てる
このセクションでは、B.Simon に SAP NetWeaver へのアクセスを許可することで、このユーザーがシングル サインオンを使用できるようにします。
- クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
- [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[SAP NetWeaver] の順に移動します。
- アプリの概要ページで、 [管理] セクションを見つけて、 [ユーザーとグループ] を選択します。
- [ユーザーの追加] を選択し、 [割り当ての追加] ダイアログで [ユーザーとグループ] を選択します。
- [ユーザーとグループ] ダイアログの [ユーザー] の一覧から [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](次へ) をクリックして続行します。
[Single Logout Endpoints](シングル ログアウト エンドポイント) では [HTTPRedirect] を選択し、[Next](次へ) をクリックして続行します。
[Artifact Endpoints](アーティファクト エンドポイント) では、[Next](次へ) をクリックして続行します。
[Authentication Requirements](認証要件) では、[Finish](完了) をクリックします。
[Trusted Providers](信頼できるプロバイダー)>[Identity Federation](ID フェデレーション) タブ (画面下部) に移動します。 [編集] をクリックします。
[Identity Federation](ID フェデレーション) タブ (下のウィンドウ) で [Add](追加) をクリックします。
ポップアップ ウィンドウで [Supported NameID formats](サポートされる名前 ID 形式) から [Unspecified](未指定) を選択し、[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 is not 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 に移動して説明を入力し、 [next](次へ) をクリックします。
あらかじめ追加されている [SAML2 IdP - Microsoft Entra ID] をドロップダウン リストから選択して保存します。
[Scope Assignment](スコープ割り当て) の下の [Add](追加) をクリックして、前に作成されたスコープ (
DAAG_MNGGRP_001
) を追加します。[finish]\(完了\) をクリックします。
Azure AD からアクセス トークンを取得する
ID プロバイダー (IdP) として Azure Active Directory (Azure AD) を使用して SAP システムからアクセス トークンを要求するには、次の手順に従います。
手順 1: Azure AD にアプリケーションを登録する
- Azure portal にログインします: portal.azure.comの Azure portal に移動します。
- 新しいアプリケーションを登録する:
- [Azure Active Directory] に移動します。
- [アプリの登録] > [新しい登録] の順に選びます。
- 名前、リダイレクト URI などのアプリケーションの詳細を入力します。
- [登録] をクリックします。
- API のアクセス許可を構成する
- 登録後、[API アクセス許可] に移動します。
- [+ アクセス許可の追加] をクリックし、[所属する組織で使用している API] を選択します。
- SAP システムまたは関連する API を検索し、必要なアクセス許可を追加します。
- アクセス許可に対して管理者の同意を付与する。
手順 2: クライアント シークレットを作成する
- 登録済みアプリケーションに移動します: [証明書とシークレット] に移動します。
- 新しいクライアント シークレットを生成する:
- [新しいクライアント シークレット] をクリックします。
- 説明を入力し、有効期限を設定します。
- [追加] をクリックし、認証に必要なクライアント シークレットの値をメモします。
手順 3: AZURE AD 統合用に SAP システムを構成する
- SAP クラウド プラットフォームにアクセス: SAP Cloud Platform コックピットにログインします。
- 信頼の構成を設定する:
- [セキュリティ] > [信頼の構成] に移動します。
- Azure AD からフェデレーション メタデータ XML をインポートして、信頼できる IdP として Azure AD を追加します。 これは、Azure AD アプリの登録の [エンドポイント] セクション ([フェデレーション メタデータ ドキュメント] の下) にあります。
- OAuth2 クライアントを構成します:
- SAP システムで、Azure AD から取得したクライアント ID とクライアント シークレットを使用して OAuth2 クライアントを構成します。
- トークン エンドポイントとその他の関連する OAuth2 パラメーターを設定します。
手順 1: アクセス トークンを要求する
ヒント
Azure API Management を使用して、スマート トークン キャッシュ、セキュリティで保護されたトークン処理、要求調整などのガバナンス オプションを含む、Azure、Power Platform、M365 などのすべてのクライアント アプリの SAP プリンシパル伝達プロセスを 1 か所で効率化することを検討してください。 Azure API Management を使用した SAP プリンシパルの伝達の詳細について説明します。 SAP Business Technology Platform が推奨される場合は、この記事を参照してください。
トークン要求を準備する:
- 次の詳細を使用してトークン要求を作成します。
- トークン エンドポイント: 通常、これは
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
です。 - クライアント ID: Azure AD のアプリケーション (クライアント) ID
- クライアント シークレット: Azure AD のクライアント シークレット値。
- スコープ: 必要なスコープ (例:
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 システムへの要求ごとに、
次のステップ
- 組織の機密データを流出と侵入からリアルタイムで保護するセッション制御を適用するように Microsoft Entra SAP NetWeaver を構成します。 セッション制御は、条件付きアクセスを拡張したものです。 Microsoft Defender for Cloud Apps でセッション制御を強制する方法をご覧ください。
- Azure API Management を使用して SAP プリンシパル伝達 (OAuth2) を構成し、Azure、Power Platform、Microsoft 365 などのクライアント アプリから SAP システムへのアクセスを管理およびセキュリティで保護します。 Azure API Management を使用した SAP プリンシパルの伝達の詳細について説明します。