Technology Blog Posts by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
YushiMatsuda
Advisor
Advisor
1,433

本ブログは、SAML認証の初心者の方を対象に技術的な解説をすることを目的としています。例えば、シングルサインオン(SSO)の基本をキャッチアップしたい方、会計コンサルタントやSAP インフラ/Basis担当の皆さんを主な対象として書いています。

 

はじめに

近年、従来のオンプレミスを中心としたアーキテクチャーからクラウドやWebアプリケーション中心のアーキテクチャーになってきています。従来のインフラ Basisだけではなく、SaaS製品の構築/運用する必要が出てくる中で、業務コンサルタントやインフラBasisエンジニアもクラウドサービスの技術をカバーする必要があるケースも多くなっています。

そこで問題になるのが認証です。

認証は従来から必要ですが、形が変わってきています。例えば、従来のSAP技術におけるSAP GUISAP Logon TicketKerberos認証はイントラネットからのアクセスが前提にあったり、会社が管理している端末からのアクセスが前提にあったりしります。これは、クラウドサービスにおけるインターネットやモバイルからのアクセスには必ずしも適していません。そこで、クラウドサービスで業界標準となっておりますSAML認証を理解する必要があります。また、クラウドサービス導入はS4HANA Cloudをはじめ、IT部門ではなく、会計部門主導でシステムを入れることも多く、業務コンサルタントが認証技術の知識も必要になっているケースも見られています。

 

SAML認証のアーキテクチャー

SAML認証には、Identity Provider (IdP) Service Provider (SP)という2つのシステムが必要になります。

IdPは認証基盤と呼ばれるシステムであり、具体的にはSAP Identity Authentication (IAS) SAP SSOMicrosoft Entra ID などの製品が該当します。IdPは認証を司っており、ID/Passwordやその他の方法で実際に認証を許可したり、多要素認証やIPアドレス制限といった追加の認証要件を実現したりする役割を持っています。

一方、SPは実際に使用する業務アプリケーションであり、具体的にはS/4HANA CloudBTPSuccessFactorsなどの製品が該当します。SPはアプリやその利用を認可するための権限管理/ロール管理を実現する役割を持っています。

 

YushiMatsuda_0-1727837979128.png

 

一般的に、IdPSPのそれぞれにユーザが存在し、それぞれ管理が必要となりますそれぞれユーザがいるというと二重管理に思えますが、、全く同じ情報を管理しているわけではありません。IdPはパスワードなど、認証に関する情報を管理し、SPはロールなど、認可や権限に関するが情報を管理します。両方のユーザを管理するうえで注意することは、IdPSPName IDe.g. EmailUser ID、従業員番号)を一致させる必要があることです。一致させないと両システム間でユーザを特定することができずログインすることができません。そのため、IdP側とSP側で何のName IDを一致させるか事前に設計/確認することが必要です。

※ユーザ情報の二重管理を避けるために、SPによっては、例えば、SACDynamic User CreationBTPRole Collection Mappingなどの機能がある場合もあります。

 

SAML認証の認証フロー

SAML認証では、SPIdPでアサーションと呼ばれる認証情報をやりとりして、ログインを許可するか却下するかといった判断をおこないます。ただし、ここでSPIdPは直接やりとりする訳ではなく、アサーションをユーザ端末のブラウザを経由してやり取りすることでSSO(認証)を実現します。

※SAML認証にはBack ChannelというSPIdPが直接やりとりする方法もありますが、メジャーな方法ではないため、ここでは割愛します。

認証フローをステップごとに説明していきます。

  1. ユーザは端末のブラウザからSPにアクセスします
  2. SPはアサーションでSAML認証要求を出し、ユーザをIdPにリダイレクトします。(多くのSPではユーザ操作なしに自動でリダイレクトします。)
  3. ユーザの端末のブラウザを経由してアサーションでSAML認証要求をIdPに転送します。ここでユーザはID/Passwordやその他の方法でIdPへログインします。
  4. ユーザがログインに成功すると、IdPはアサーションでSAML認証応答を出し、ユーザをSPへリダイレクトします。
  5. ユーザの端末のブラウザを経由してアサーションでSAML認証応答をSPに転送します。
  6. SPへのログイン(SSO)に成功します。

YushiMatsuda_1-1727837979132.png

※SPName ID SAML認証応答の中で送られるIdPName IDは一致していることが必要です。よくある設計/設定ミスとして、IdPの認証応答のName IDには従業員番号が入っているが、SPEmailアドレスを受け取る設定になっているというような不整合が良くあります。

また、全ての要求/応答はSPIdPで直接やり取りされず、必ずユーザの端末のブラウザ経由でやり取りされていることに注意して下さい。この特徴により、オンプレの認証基盤でクラウドサービスにログインする、あるいはその逆も実現することができます。

 

SAML認証の設定ステップ

SAML認証を設定/実装するためには、主に以下の3ステップが必要です。

1.IdP設定

IdPSPの名前やURL、証明書を登録します。多くのSPではMetadataをダウンロードできるため、そのMetadataIdPにアップロードすることで登録を自動化できます。また、アサーションの中で使うName IDに何を使用するかといった設定も実施します。
IPアドレス制限や多要素認証といった追加のセキュリティ設定がある場合もここで設定を行います。

2.SP設定

逆にSPIdPの名前やURL、証明書を登録します。IdPでもMetadataをダウンロードできるため、そのMetadataSPにアップロードすることで登録を自動化できます

3.ユーザ/権限作成

SPIdPの両方でユーザ登録、権限登録を行います。ユーザ情報の中のNameIDに使う項目がきちんと一致するようなユーザを必ず登録することに注意してください。また、権限の作成/付与はSPで行ってください。

※これらのステップはあくまで参考であり、実際は製品固有の設定が必要になるケースもあります。詳細は各製品Helpを参照ください。

 

本ブログではここまでSAML認証の基本事項を説明してきました。
今回は一般的で基本的な事項を中心に解説しましたので、今後は特定の製品に特化した具体的で詳しい情報をBlog化していこうと考えています。