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を構成し、テストするために、以下のステップを完了する必要があります。

  1. SAPシステムで必要なSAPパラメータとWebサービスを有効化
  2. SAPトランザクションコードSAML2でSAML 2.0 ローカルプロバイダーを作成
  3. SAPローカルプロバイダーのSAML 2.0 メタデータファイルをダウンロード
  4. AWS SSOを設定し、SAML 2.0 メタデータファイルを交換
  5. 属性マッピングを構成
  6. アプリケーションにユーザーを割り当て
  7. SAPトランザクションコードSAML2で信頼できるプロバイダーを設定
  8. IDプロバイダーを有効化
  9. IDフェデレーションを設定
  10. SSOをテスト

ステップ 1. SAPシステムで必要なSAPパラメータとWebサービスを有効化

  1. 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    
    
  2. SAPトランザクションコードSMICMを使用して、HTTPSサービスがアクティブになっていることを確認してください。この例では、HTTPSポートは44300、キープアライブ時間は300秒、処理タイムアウトは7200秒です。
    icm monitor service display screen
  3. 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 ローカルプロバイダーを作成

  1. SAPシステムのビジネスクライアントで、トランザクションコードSAML2を実行します。ブラウザのユーザーインターフェイスが開きます。この例では、SAPビジネスクライアントは100です。[ SAML 2.0サポートの有効化 ]から、[ SAML 2.0ローカルプロバイダーの作成 ]を選択します。
    screen for enabling saml support任意のプロバイダー名を選択肢し、クロックスキューの許容値をデフォルトの120秒にすることができます。
  2. [ 終了 ]を選択します。ウィザードが終了すると、次の画面が表示されます。
    screen showing saml enabled

ステップ 3. SAPローカルプロバイダーのSAML 2.0 メタデータファイルをダウンロード

[ メタデータ ]タブを選択して、メタデータをダウンロードします。

screen for downloading saml metadata

ステップ 4. AWS SSOの設定

  1. AWS SSOコンソールの左側のナビゲーションペインから、[ アプリケーション ]を選択します。次に、[ 新規アプリケーションの追加 ]を選択します。
    add a new application option
  2. [ AWS SSO アプリケーションカタログ ]のリストから、[ カスタム SAML 2.0 アプリケーションの追加 ]を選択します。
    add a custom saml 2 point 0 application
  3. [ カスタム SAML 2.0 アプリケーションの設定 ]ページの[ 詳細 ]から、アプリケーションの[ 表示名 ]を入力します。この例では、私は自分のアプリケーションをS/4HANA Sales Analyticsとしました。
    details section
  4. [ AWS SSO メタデータ ]の下部にある、[ ダウンロード ]ボタンを選択してAWS SSO SAML メタデータファイルをダウンロードします。
    aws sso metadata download screen
  5. [ アプリケーションのプロパティ ]の下部にある、[ アプリケーションの開始 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>です。リレーステートとセッション期間はデフォルト値を使用しています。
    application properties section
  6. [ アプリケーションメタデータ ]から、ステップ 3でダウンロードしたローカルプロバイダーのメタデータをアップロードします。
    section for uploading saml metadata file from s a p
  7. [ 変更の保存 ]を選択します。

ステップ 5. 属性マッピングを構成

この例では、ユーザーマッピングは電子メールに基づいています。

  1. [ 属性マッピング ]タブから、${user:subject}を入力し、形式に[ emailAddress ]を選択します。
    attribute mappings screen
  2. [ 変更の保存 ]を選択します。

ステップ 6. アプリケーションにユーザーを割り当て

[ 割り当て済みユーザー ]タブから、このアプリケーションへのアクセスを必要とするすべてのユーザーを割り当てます。この例では、AWS SSOの既存のユーザーを使用しています。AWS SSOは、AWS Directory Serviceを介してMicrosoft Active Directory (AD)と統合でき、ユーザーは自分のAD認証情報を使用してAWS SSOのユーザーポータルにサインインできます。

assigned users tab

ステップ 7. SAPトランザクションコードSAML2で信頼できるプロバイダーを設定

  1. SAPトランザクションコードSAML2を実行して、[ 信頼できるプロバイダー ]タブを選択します。
    trusted providers screen
  2. ステップ 4でダウンロードしたAWS SSO SAML メタデータファイルをアップロードします。
    screen for selecting metadata
  3. [ メタデータの検証 ]と[ プロバイダーの選択 ]では、[ 次へ ]を選択します。
  4. [ プロバイダー名]では、信頼されたIDプロバイダーとして任意のエイリアスを入力します。
    provider name screen
  5. [ 署名と暗号化 ]では、[ ダイジェストアルゴリズム ]を[ SHA-256 ]に変更し、他の設定はデフォルトのままにします。
    screen for selecting encryptionSHA-256は、SHA-1の後継ハッシュ関数の1つで、利用可能な最も強力なハッシュ関数の1つです。
  6. [ シングルサインオンエンドポイント ]では、[ HTTP POST ]を選択します。
    s s o endpoints screen
  7. [ シングルログアウトエンドポイント ]では、[ HTTPリダイレクト ]を選択します。
    s s o logout endpoints screen
  8. [ アーティファクトエンドポイント ]は、デフォルトのままにします。
    artifiact endpoints screen
  9. [ 認証要件 ]も、すべてデフォルトのままにし、[ 終了 ]を選択します。
    authentication requirements

ステップ 8. IDプロバイダーの有効化

  1. [ 信頼できるプロバイダーの一覧 ]から、ステップ 7で作成したIDプロバイダーを選択します。
  2. 信頼できるプロバイダーを有効にするために、[ 有効化 ]を選択します。
    enable the trusted provider
  3. IDプロバイダーがアクティブであることを確認します。
    screen showing trusted provider as active

ステップ 9. IDフェデレーションを設定

アイデンティティフェデレーションは、パートナー間でアイデンティティ情報を共有する手段を提供します。ユーザーに関する情報を共有するためには、AWS SSOとSAPが同じユーザーに対して異なる識別子を使用している場合でも、ユーザーを識別できなければなりません。SAML 2.0規格では、共通の識別子を確立する手段として名前識別子 (name ID)を定義しています。この例では、フェデレーテッドIDを確立するために電子メールアドレスを使用します。

identity federation diagram

  1. ステップ 8で有効にしたIDプロバイダーを選択し、[ 編集 ]を選択します。
    edit trusted provider information
  2. [ IDフェデレーション ]タブから、[ サポートされるNameID形式 ]の下部にある、[ 追加 ]を選択します。
    add name i d formation details
  3. [ サポートされるNameID形式 ]ボックスから、[ E-mail ]を選択肢します。
    これにより、[ ユーザーIDソース ]が[ アサーションサブジェクトNameID ]に、[ ユーザIDマッピングモード ]が[ Email ]に自動的に設定されます。
    name i d format details
  4. [ 保存 ]を選択します。
  5. SAPアプリケーションで、SAPトランザクションコードSU01を使用して、ユーザーの電子メールアドレスがAWS SSO ディレクトリ内のものと一致することを確認します。

ステップ 10. SSOをテスト

AWS SSOの開始URLに今回構成したアプリケーションが表示されています。この例では、[ S/4HANA Sales Analytics ]です。

a w s s s o start u r l

ほら!ユーザー名とパスワードを入力せずにSAP Fiori launchpadを開くためにアプリケーションを選択しましょう。

s a p fiori launchpad

終わりに

このソリューションの長所は単純さにあります。AWS SSOサービスはユーザーを認証し、毎回ログインとログアウトすることなくSAP Fiori アプリケーションにログインできるようにします。

AWS SSOは、SAML 2.0準拠のIDプロバイダーをサポートしています。つまり、エンタープライズアプリケーションの集中アクセスポイントとして使用できます。AWS SSOには、Salesforce、ServiceNow、Office 365などの多くのビジネスアプリケーションとのSSO統合も組み込まれています。これにより、エンタープライズアプリケーションのシングルサインオンプロセスを標準化し、総所有コスト (TCO)を削減するための素晴らしい方法を提供します。

翻訳はPartner SA 河原が担当しました。原文はこちらです。