本ブログは、SAML認証の初心者の方を対象に技術的な解説をすることを目的としています。例えば、シングルサインオン(SSO)の基本をキャッチアップしたい方、会計コンサルタントやSAP インフラ/Basis担当の皆さんを主な対象として書いています。
近年、従来のオンプレミスを中心としたアーキテクチャーからクラウドやWebアプリケーション中心のアーキテクチャーになってきています。従来のインフラ Basisだけではなく、SaaS製品の構築/運用する必要が出てくる中で、業務コンサルタントやインフラBasisエンジニアもクラウドサービスの技術をカバーする必要があるケースも多くなっています。
そこで問題になるのが認証です。
認証は従来から必要ですが、形が変わってきています。例えば、従来のSAP技術におけるSAP GUIやSAP Logon Ticket、Kerberos認証はイントラネットからのアクセスが前提にあったり、会社が管理している端末からのアクセスが前提にあったりしります。これは、クラウドサービスにおけるインターネットやモバイルからのアクセスには必ずしも適していません。そこで、クラウドサービスで業界標準となっておりますSAML認証を理解する必要があります。また、クラウドサービス導入はS4HANA Cloudをはじめ、IT部門ではなく、会計部門主導でシステムを入れることも多く、業務コンサルタントが認証技術の知識も必要になっているケースも見られています。
SAML認証には、Identity Provider (IdP) とService Provider (SP)という2つのシステムが必要になります。
IdPは認証基盤と呼ばれるシステムであり、具体的にはSAP Identity Authentication (IAS) 、SAP SSOやMicrosoft Entra ID などの製品が該当します。IdPは認証を司っており、ID/Passwordやその他の方法で実際に認証を許可したり、多要素認証やIPアドレス制限といった追加の認証要件を実現したりする役割を持っています。
一方、SPは実際に使用する業務アプリケーションであり、具体的にはS/4HANA CloudやBTP、SuccessFactorsなどの製品が該当します。SPはアプリやその利用を認可するための権限管理/ロール管理を実現する役割を持っています。
一般的に、IdPとSPのそれぞれにユーザが存在し、それぞれ管理が必要となりますそれぞれユーザがいるというと二重管理に思えますが、、全く同じ情報を管理しているわけではありません。IdPはパスワードなど、認証に関する情報を管理し、SPはロールなど、認可や権限に関するが情報を管理します。両方のユーザを管理するうえで注意することは、IdPとSPでName ID(e.g. EmailやUser ID、従業員番号)を一致させる必要があることです。一致させないと両システム間でユーザを特定することができずログインすることができません。そのため、IdP側とSP側で何のName IDを一致させるか事前に設計/確認することが必要です。
※ユーザ情報の二重管理を避けるために、SPによっては、例えば、SACのDynamic User CreationやBTPのRole Collection Mappingなどの機能がある場合もあります。
SAML認証では、SPとIdPでアサーションと呼ばれる認証情報をやりとりして、ログインを許可するか却下するかといった判断をおこないます。ただし、ここでSPとIdPは直接やりとりする訳ではなく、アサーションをユーザ端末のブラウザを経由してやり取りすることでSSO(認証)を実現します。
※SAML認証にはBack ChannelというSPとIdPが直接やりとりする方法もありますが、メジャーな方法ではないため、ここでは割愛します。
認証フローをステップごとに説明していきます。
※SPのName ID とSAML認証応答の中で送られるIdPのName IDは一致していることが必要です。よくある設計/設定ミスとして、IdPの認証応答のName IDには従業員番号が入っているが、SPはEmailアドレスを受け取る設定になっているというような不整合が良くあります。
また、全ての要求/応答はSPとIdPで直接やり取りされず、必ずユーザの端末のブラウザ経由でやり取りされていることに注意して下さい。この特徴により、オンプレの認証基盤でクラウドサービスにログインする、あるいはその逆も実現することができます。
SAML認証を設定/実装するためには、主に以下の3ステップが必要です。
1.IdP設定
IdPにSPの名前やURL、証明書を登録します。多くのSPではMetadataをダウンロードできるため、そのMetadataをIdPにアップロードすることで登録を自動化できます。また、アサーションの中で使うName IDに何を使用するかといった設定も実施します。
IPアドレス制限や多要素認証といった追加のセキュリティ設定がある場合もここで設定を行います。
2.SP設定
逆にSPにIdPの名前やURL、証明書を登録します。IdPでもMetadataをダウンロードできるため、そのMetadataをSPにアップロードすることで登録を自動化できます
3.ユーザ/権限作成
SPとIdPの両方でユーザ登録、権限登録を行います。ユーザ情報の中のNameIDに使う項目がきちんと一致するようなユーザを必ず登録することに注意してください。また、権限の作成/付与はSPで行ってください。
※これらのステップはあくまで参考であり、実際は製品固有の設定が必要になるケースもあります。詳細は各製品Helpを参照ください。
本ブログではここまでSAML認証の基本事項を説明してきました。
今回は一般的で基本的な事項を中心に解説しましたので、今後は特定の製品に特化した具体的で詳しい情報をBlog化していこうと考えています。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 46 | |
| 42 | |
| 38 | |
| 31 | |
| 28 | |
| 28 | |
| 27 | |
| 24 | |
| 24 | |
| 23 |