Technology Blog Posts by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
takayuki_tanaka
Product and Topic Expert
Product and Topic Expert
4,137

はじめに

本ブログでは、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の設定手順について説明しました。これにより、ユーザーは一度の認証で複数のシステム間でシームレスに認証できるようになります。適切な設定とテストを行うことで、エンタープライズ環境におけるセキュリティとユーザビリティの向上が期待できます。

参考資料