Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
takayuki_tanaka
Product and Topic Expert
Product and Topic Expert
983

はじめに

本ブログでは、SAP Cloud Identity ServicesIdentity AuthenticationSAP IAS)とSAP S/4HANAの間でSAML 2.0プロトコルを使用してシングルサインオン(SSO)を構成する方法について説明します。この設定により、ユーザーは一度の認証で複数のアプリケーションにアクセスできるようになります。

目次

  1. SAML 2.0 とは?
  2. SAP IAS <-> SAP S/4HANA の接続 セットアップ手順
  3. 動作確認
  4. まとめ

 

1. SAML 2.0 とは?

SAML (Security Assertion Markup Language) 2.0 は、異なるドメイン間での認証と認可情報の交換を標準化するためのXMLベースのフレームワークです。

 

SAML 2.0の基本概念

  • アイデンティティプロバイダー (IdP)
    • ユーザーの認証を行い、SAMLアサーションを生成するエンティティ。今回の例では、SAP IASIdPとして機能します。
  • サービスプロバイダー (SP)
    • IdPからのSAMLアサーションを受け取り、ユーザーにサービスを提供するエンティティ。今回の例では、SAP S/4HANASPとして機能します。
  • SAMLアサーション
    • IdPが生成し、SPに送信する認証情報を含むXML文書。これにより、ユーザーが認証されたことを証明します。
  • シングルサインオン (SSO)
    • 一度の認証で複数のサービスにアクセスできる仕組み。ユーザーは一度IdPで認証されると、他のSPにもシームレスにアクセス可能です。

 

SAML 2.0の利点

  • セキュリティの向上
    • ユーザーのパスワードを各サービスプロバイダーに保存する必要がなく、セキュリティリスクを軽減します。
  • ユーザーエクスペリエンスの向上
    • 一度のログインで複数のサービスにアクセスできるため、ユーザーの利便性が向上します。
  • 統合管理
    • IdPを中心とした認証管理により、ユーザーアカウントの管理が容易になります。

 

2. SAP IAS <-> SAP S/4HANA の接続 セットアップ手順

本セクションでは、SAP IASとSAP S/4HANA の間でのSAML2.0セットアップ手順について、画面を交えてご紹介します。基本的な内容は下記SAP Help Portalに依存しますので、公式な内容はこちらをご参照ください。

https://help.sap.com/docs/cloud-identity/system-integration-guide/identity-authentication-configurat...

 

SAP IASSAMLメタデータを取得する

この章では、SAP IASのSAMLデータを取得し、またSAP IASとSAP S/4HANA の間で暗号化通信を行うために、SAP IAS上で生成された証明書を取得し、そこから公開鍵を抽出するまでの手順を示します。

SAP IASのテナントにアクセスし、「Applications & Resources」->「Tenant Settings」->「SAML 2.0 Configuration」へ移動します。ここでは、SAP IASのSAML2.0に関する設定を行うことができます。

 

  1. 画面右側の「Download Metadata File」をクリックし、メタデータをダウンロードします。本ブログ内では、こちらのメタデータを「metadata_IAS.xml」として扱います。
  2. Signing Certificate セクションに証明書がない場合には「add」ボタンから追加してください。この証明書のActionからメガネマークのDisplayをクリックすると、証明書の中身を確認することができます。

01_ias_saml2.png

  1. 証明書情報をコピーします。

02_ias_copy_cert.png

  1. お手元のテキストエディタで「cert.cer」というファイルを生成し、下記のようにペーストします。

 

 

-----BEGIN CERTIFICATE-----
<コピーした証明書の内容>
-----END CERTIFICATE-----

 

 

  1. ローカルファイルシステムで前述の「cert.cer」を保存したディレクトリに移動し、下記のコマンドを実行します。今回はopensslというツールを用いて、証明書から公開鍵を抽出し、「public_key.cer」というファイルに格納しています。

 

 

openssl x509 -in cert.cer -pubkey -noout > public_key.cer

 

 

  1. これにより、下記のような公開鍵が生成されます。なお下記に示す公開鍵は形式を表すためのものであり、ダミーです。

 

 

-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArVRlbWhP4Zc6XT9z+p7E 4F8o2X/o/LC/QQ08QR+F/LkE1EFi/V2YdMsa6yYB3gwn/A8Tv5e3AGsrfFL53G+o
B8MULygouF3WQ <公開鍵のイメージ> +B8MULygouF3WQB8MULygouF3WQB8MU odPUI4ML8pX5Sz1OG+NwzSHB6NxFg80URpj/D1fqu3WvVZcUGBNryICMeWXGfLhZ R7u4odCZzg+0LKwO14O6UkD4ftIJeUCNL8Ne3bX0y8WsVsAi+iwOuhF0Z0HD2V5T MRAkfw9BkTSJX4A9cwJfH/BUPsCU5kPm/xkTY2U76Y4YIozBPMDNEQa9MP7QWx/N
-----END PUBLIC KEY-----

 

 

SAP IAS上でSAP S/4HANAを指すApplicationを作成する

SAP IAS に登録するApplicationとは、SAP IAS と連携する先のアプリケーションを意味します。今回はSAP S/4HANA を追加していきます。SAP IASのテナントにアクセスし、「Applications & Resources->Applicationsへ移動します。

  1. Createボタンをクリックし、新しいApplicationを追加します。Applicationのタイプとして「SAP on-premise solution」 を選択します。

03_ias_createApp.png

ABAP PlatformをSAMLサービスプロバイダーとして有効化する

この章では、SAP S/4HANAをSAMLにおけるSPとして登録するための設定を行います。

  1. SAP GUIを起動し、適切な権限を持ったユーザーとしてSAP S/4HANA にログオンしたのち、トランザクションコード 「SAML2」 を起動します。

04_s4_tcode_saml2.png

  1. ブラウザが立ち上がります。「Enable SAML2.0 Support」 -> 「Create SAML 2.0 Local Provider」の順にクリックします。

05_s4_create_sp.png

  1. 今回、SPはSAP S/4HANA自身が該当します。したがって名前は 「S4PCE」 としました。必要に応じて、お好きな名前を入力します。「Next」をクリックします。

06_s4_providername.png

  1. デフォルトの設定で「Next」をクリックします。

07_s4_clock.png

  1. こちらもデフォルトのまま「Finish」をクリックします。

08_s4_provider_settings.png

  1. これでSAP S/4HANA 自身がSPとして設定されました。したがって、次のステップとしてこのSPのメタデータをダウンロードしましょう。「metadata」をクリックします。

09_s4_sp_activated.png

  1. デフォルトのまま「Download Metadata」をクリックします。今回はこのメタデータを「metadata_S4.xml」として保存します。

10_s4_download_metadata.png

SAP IASをアイデンティティプロバイダーとして信頼する

  1. SAML2.0の仕組みにおいては、メタデータの相互交換が必要となります。まずはSAP S/4HANA に対して、SAP IASのメタデータをアプロードします。「Trusted Providers」 -> 「Add」 -> 「Upload Metadata File」 の順にクリックします。

11_s4_upload_metadata.png

  1. Metadata File をクリックして、「metadata_IAS.xml」をアップロードします。「Next」をクリックして次に進みます。

12_s4_trust_IdP_1.png

  1. アップロードされたメタデータの確認が走ります。Upload From File をクリックし、先述の「cert.cer」をアップロードします。「Next」をクリックします。

13_s4_trust_IdP_2.png

  1. デフォルトの状態で「Next」をクリックします。

14_s4_trust_IdP_4.png

  1. こちらもデフォルトで「Next」をクリックします。

15_s4_trust_IdP_5.png

  1. メタデータから抽出された、SSOに用いるエンドポイントの設定が表示されます。デフォルトで「Next」をクリックします。

16_s4_trust_IdP_6.png

  1. 同様にログアウト用のエンドポイントが表示されます。デフォルト状態で「Next」をクリックします。

17_s4_trust_IdP_7.png

  1. デフォルト状態で「Next」をクリックします。

18_s4_trust_IdP_8.png

  1. デフォルトの状態で 「Finish」 をクリックします。

19_s4_trust_IdP_9.png

ABAP Platform クライアントのName IDフォーマットを設定する

ユーザーに関する情報を共有するためには、通信先システムが異なるIDを使用している場合でも、ユーザーを識別できる必要があります。SAML 2.0規格では、共通の識別子を確立する手段として、名前識別子(Name ID)を定義しています。この章では、このName IDを設定します。

 

  1. 「Identity Federation」 -> 「Add」の順にクリックします。

20_s4_identityFederation.png

  1. 今回はSAP IAS に登録されたユーザーとSPA S/4HANAに登録されたユーザーをemailアドレスによって識別したいので、「E-mail」をクリックし、「OK」により確定します。

21_s4_identityFederation_nameid.png

  1. SAMLアサーション内のName IDABAP Platform (SAP S/4HANA) 内のユーザーにどのようにマッピングされるかを設定する必要があります。このマッピングを通じて、ABAP Platformは誰がログオンしているかを識別します。SAMLアサーションで提供される情報は、ABAPプラットフォームの単一ユーザーと11で一致する必要があります。これを行うため、 「User ID Mapping Mode」にて、適切な項目を設定します。

22_s4_identityFederation_mapping.png

  1. 最後に、「Enable」 をクリックしてIdP(SAP IAS)との間のSAML連携を有効化します。

23_s4_enable_IdP.png

  1. List of Trusted Providers 内の 「Active」 の部分が緑色に変化すれば完了です。

24_s4_IdP_activated.png

ABAP Platformクライアントをサービスプロバイダーとして信頼する

今度は逆の信頼設定を行います。

  1. SAP IASに移動し、「Applications & Resources」 -> 「<先ほど作成したS/4HANAを指すApplication>」 -> 「SAML 2.0 Configuration」 の順にクリックします。Metadata Fileの部分に先ほどダウンロードしておいた「metadata_S4.xml」をアップロードします。これにより、SAMLの設定に必要な情報が自動で読み込まれます。「Save」をクリックします。

25_ias_trustS4.png

ABAP Platformが使用するサブジェクトネーム識別子の設定

  1. 「Applications & Resources -> <ほど作成したS/4HANAを指すApplication> -> Subject Name Identifierの順にクリックします。今回は「Email」を指定します。

26_ias_subjectNameId.png

動作確認

  1. Fiori Launchpad にアクセスすると、SAMLの設定が有効化されているため、NetWeaverの画面でIdPを選択する画面が表示されます。IdP(SAP IAS)のURLを選択し、「続行」をクリックします。

27_test_NW_selectIdP.png

  1. SAP IAS の認証画面にリダイレクトされます。ここでは、SAP IAS に登録されたユーザーにより認証を行うことになります。

28_test_IAS_auth.png

  1. SAP IAS側のユーザーとSAP S/4HANA 側のユーザーが持つ 「email」 属性によりユーザーマッピング、識別が行われ、Subject Name Identifierで指定した項目にて、SPA S/4HANA へのログオンが行われます。

29_test_FLP.png

まとめ

本ブログでは、SAP Cloud Identity ServicesIdentity AuthenticationSAP S/4HANA間でSAML 2.0を使用したSSOの設定手順について説明しました。これにより、ユーザーは一度の認証で複数のシステム間でシームレスに認証できるようになります。適切な設定とテストを行うことで、エンタープライズ環境におけるセキュリティとユーザビリティの向上が期待できます。

参考資料