Amazon Web Services ブログ
SAP S/4HANAでのSAP FioriとAWS Single Sign-Onの統合
この記事は、AWS SAP Global Specialty Practiceでシニアコンサルタントを務めるPatrick Leungによるものです。
SAP Global Specialty PracticeにおけるAmazon Web Services (AWS)のプロフェッショナルサービスの一環で、AWS上でのSAPの設計と展開に関してお客様を支援することがよくあります。SAPのお客様は、Amazon Elastic File System (Amazon EFS)やAWS Backupなどのフルマネージド型のAWSサービスを利用して、インフラストラクチャの運用やその他の付加価値を生まない無駄な作業からチームの負担を軽減することができます。
本ブログ記事では、AWS Single Sign-On (AWS SSO)を使用して、SAPユーザーが毎回ログインとログアウトすることなくSAP Fiori launchpadにアクセスできるようにする方法を紹介します。このアプローチにより、SAPユーザーにとって望ましいユーザー体験を提供し、エンタープライズセキュリティの完全性が確保されます。数回クリックするだけで、初期投資や独自のSSOインフラストラクチャを運用するための継続的なメンテナンスコストをかけずに、可用性の高いAWS SSOサービスを有効にできます。そのうえ、AWS SSOを有効にするために追加費用はかかりません。
ソリューション概要
AWS SSOとSAP Fiori アプリケーション間の統合は、業界標準であるSAML (Security Assertion Markup Language) 2.0に基づいています。デジタル署名されたXMLドキュメントの交換を通じて、ユーザーIDをある場所 (AWS SSO)からサービスプロバイダー (SAP Fiori)に転送することによって機能します。
SAPと連携したAWS SSOを構成し、テストするために、以下のステップを完了する必要があります。
- SAPシステムで必要なSAPパラメータとWebサービスを有効化
- SAPトランザクションコードSAML2でSAML 2.0 ローカルプロバイダーを作成
- SAPローカルプロバイダーのSAML 2.0 メタデータファイルをダウンロード
- AWS SSOを設定し、SAML 2.0 メタデータファイルを交換
- 属性マッピングを構成
- アプリケーションにユーザーを割り当て
- SAPトランザクションコードSAML2で信頼できるプロバイダーを設定
- IDプロバイダーを有効化
- IDフェデレーションを設定
- SSOをテスト
ステップ 1. SAPシステムで必要なSAPパラメータとWebサービスを有効化
- SAPシステムのビジネスクライアントにログインします。SAPトランザクションコードRZ10を使用して、SAP S/4HANAシステムのシングルサインオンパラメータを確認します。私が使用したプロファイルパラメータは以下です。
login/create_sso2_ticket = 2 login/accept_sso2_ticket = 1 login/ticketcache_entries_max = 1000 login/ticketcache_off = 0 login/ticket_only_by_https = 1 icf/set_HTTPonly_flag_on_cookies = 0 icf/user_recheck = 1 http/security_session_timeout = 1800 http/security_context_cache_size = 2500 rdisp/plugin_auto_logout = 1800 rdisp/autothtime = 60
- SAPトランザクションコードSMICMを使用して、HTTPSサービスがアクティブになっていることを確認してください。この例では、HTTPSポートは44300、キープアライブ時間は300秒、処理タイムアウトは7200秒です。
- SAPトランザクションコードSICFを使用して、以下の2つのインターネット通信フレームワーク (ICF)サービスを有効化します。
/default_host/sap/public/bc/sec/saml2
/default_host/sap/public/bc/sec/cdc_ext_service
ステップ 2. SAPトランザクションコードSAML2でSAML 2.0 ローカルプロバイダーを作成
- SAPシステムのビジネスクライアントで、トランザクションコードSAML2を実行します。ブラウザのユーザーインターフェイスが開きます。この例では、SAPビジネスクライアントは100です。[ SAML 2.0サポートの有効化 ]から、[ SAML 2.0ローカルプロバイダーの作成 ]を選択します。
任意のプロバイダー名を選択肢し、クロックスキューの許容値をデフォルトの120秒にすることができます。 - [ 終了 ]を選択します。ウィザードが終了すると、次の画面が表示されます。
ステップ 3. SAPローカルプロバイダーのSAML 2.0 メタデータファイルをダウンロード
[ メタデータ ]タブを選択して、メタデータをダウンロードします。
ステップ 4. AWS SSOの設定
- AWS SSOコンソールの左側のナビゲーションペインから、[ アプリケーション ]を選択します。次に、[ 新規アプリケーションの追加 ]を選択します。
- [ AWS SSO アプリケーションカタログ ]のリストから、[ カスタム SAML 2.0 アプリケーションの追加 ]を選択します。
- [ カスタム SAML 2.0 アプリケーションの設定 ]ページの[ 詳細 ]から、アプリケーションの[ 表示名 ]を入力します。この例では、私は自分のアプリケーションをS/4HANA Sales Analyticsとしました。
- [ AWS SSO メタデータ ]の下部にある、[ ダウンロード ]ボタンを選択してAWS SSO SAML メタデータファイルをダウンロードします。
- [ アプリケーションのプロパティ ]の下部にある、[ アプリケーションの開始 URL ]ボックスにSAP Fiori アプリケーションのURLを入力します。標準のSAP Fiori launchpadのURLは、
https://<hostname>:<https port>/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=<client number>
です。リレーステートとセッション期間はデフォルト値を使用しています。
- [ アプリケーションメタデータ ]から、ステップ 3でダウンロードしたローカルプロバイダーのメタデータをアップロードします。
- [ 変更の保存 ]を選択します。
ステップ 5. 属性マッピングを構成
この例では、ユーザーマッピングは電子メールに基づいています。
ステップ 6. アプリケーションにユーザーを割り当て
[ 割り当て済みユーザー ]タブから、このアプリケーションへのアクセスを必要とするすべてのユーザーを割り当てます。この例では、AWS SSOの既存のユーザーを使用しています。AWS SSOは、AWS Directory Serviceを介してMicrosoft Active Directory (AD)と統合でき、ユーザーは自分のAD認証情報を使用してAWS SSOのユーザーポータルにサインインできます。
ステップ 7. SAPトランザクションコードSAML2で信頼できるプロバイダーを設定
- SAPトランザクションコードSAML2を実行して、[ 信頼できるプロバイダー ]タブを選択します。
- ステップ 4でダウンロードしたAWS SSO SAML メタデータファイルをアップロードします。
- [ メタデータの検証 ]と[ プロバイダーの選択 ]では、[ 次へ ]を選択します。
- [ プロバイダー名]では、信頼されたIDプロバイダーとして任意のエイリアスを入力します。
- [ 署名と暗号化 ]では、[ ダイジェストアルゴリズム ]を[ SHA-256 ]に変更し、他の設定はデフォルトのままにします。
SHA-256は、SHA-1の後継ハッシュ関数の1つで、利用可能な最も強力なハッシュ関数の1つです。 - [ シングルサインオンエンドポイント ]では、[ HTTP POST ]を選択します。
- [ シングルログアウトエンドポイント ]では、[ HTTPリダイレクト ]を選択します。
- [ アーティファクトエンドポイント ]は、デフォルトのままにします。
- [ 認証要件 ]も、すべてデフォルトのままにし、[ 終了 ]を選択します。
ステップ 8. IDプロバイダーの有効化
- [ 信頼できるプロバイダーの一覧 ]から、ステップ 7で作成したIDプロバイダーを選択します。
- 信頼できるプロバイダーを有効にするために、[ 有効化 ]を選択します。
- IDプロバイダーがアクティブであることを確認します。
ステップ 9. IDフェデレーションを設定
アイデンティティフェデレーションは、パートナー間でアイデンティティ情報を共有する手段を提供します。ユーザーに関する情報を共有するためには、AWS SSOとSAPが同じユーザーに対して異なる識別子を使用している場合でも、ユーザーを識別できなければなりません。SAML 2.0規格では、共通の識別子を確立する手段として名前識別子 (name ID)を定義しています。この例では、フェデレーテッドIDを確立するために電子メールアドレスを使用します。
- ステップ 8で有効にしたIDプロバイダーを選択し、[ 編集 ]を選択します。
- [ IDフェデレーション ]タブから、[ サポートされるNameID形式 ]の下部にある、[ 追加 ]を選択します。
- [ サポートされるNameID形式 ]ボックスから、[ E-mail ]を選択肢します。
これにより、[ ユーザーIDソース ]が[ アサーションサブジェクトNameID ]に、[ ユーザIDマッピングモード ]が[ Email ]に自動的に設定されます。
- [ 保存 ]を選択します。
- SAPアプリケーションで、SAPトランザクションコードSU01を使用して、ユーザーの電子メールアドレスがAWS SSO ディレクトリ内のものと一致することを確認します。
ステップ 10. SSOをテスト
AWS SSOの開始URLに今回構成したアプリケーションが表示されています。この例では、[ S/4HANA Sales Analytics ]です。
ほら!ユーザー名とパスワードを入力せずにSAP Fiori launchpadを開くためにアプリケーションを選択しましょう。
終わりに
このソリューションの長所は単純さにあります。AWS SSOサービスはユーザーを認証し、毎回ログインとログアウトすることなくSAP Fiori アプリケーションにログインできるようにします。
AWS SSOは、SAML 2.0準拠のIDプロバイダーをサポートしています。つまり、エンタープライズアプリケーションの集中アクセスポイントとして使用できます。AWS SSOには、Salesforce、ServiceNow、Office 365などの多くのビジネスアプリケーションとのSSO統合も組み込まれています。これにより、エンタープライズアプリケーションのシングルサインオンプロセスを標準化し、総所有コスト (TCO)を削減するための素晴らしい方法を提供します。
翻訳はPartner SA 河原が担当しました。原文はこちらです。