SAP Business Technology Platform - Single Sign Onを実装してみました(後編) -
2024年2月16日
1. 本ブログについて
本記事はSAP BTPのIdentity Authentication Service(以下 IAS)を利用したSingle Sign On(以下 SSO)の後編です。前編ではSSOの概要とテスト環境についてご紹介しました。後編ではSSOの設定内容についてです。
前編の記事は こちら :「SAP Business Technology Platform - Single Sign Onを実装してみました(前編)-」
2. 前編のおさらい:SSOとは
SSOとは一度の認証によって、複数のシステムを利用可能にする仕組みを指します。認証するシステムをIdentity Provider(以下 IdP)、SSOで利用可能なシステムをService Provider(以下 SP)と呼びます。
ITで使用される一般的な仕組みであり、SAPソリューションだけの特別な仕組みではありません。
3. 前編のおさらい:SAP BTPのIASについて
IASはビジネスプロセス、アプリケーション、データへの制御されたクラウドベースのアクセスを提供します。IASでは以下の機能を利用できます。
フォーム、SPNEGO、SNS、2段階認証などサポートされている認証の方法の1つを選択して、アプリケーションへのアクセスを制御します。SAML2.0プロトコルを使用してSSOを提供します。また、API経由の認証を使用してアプリケーションをプログラムで統合します。
IPアドレス範囲、ユーザグループ、ユーザタイプ、認証方法に基づいて二段階認証を実施し、ビジネスアプリケーションへのアクセスを管理できます。
サードパーティやオンプレミスのIdPにメールドメイン、ユーザグループ、ユーザタイプなどの条件に基づいて認証を委任し、オンプレミス環境とクラウド環境にまたがるSSOを可能にします。
SCIM REST APIを利用してユーザとグループの管理、ユーザの招待、ユーザのUIテキストは任意の言語でカスタマイズが可能です。
4. テスト環境
テスト環境は以下の構成です。(前編で先行公開したテスト環境の構成を見直し、シンプルな形に再構成しています)
IdPはIASとし、ユーザのアクセス先であるSPはSAP S/4HANA (Fiori Launchpad)と、SAP Integration Suiteを想定します。(本記事では環境準備や設定面において容易に対応が可能な、SAP BTPのSAP Integration Suiteを採用しています)
ユーザはSPへアクセスすると、SAML認証によってIdPであるIASへリダイレクトされます。初回アクセス時はIASのIDとPasswordによる認証が発生し、以後は認証無しでのアクセスが可能です。
以下の図は、SAML認証のダイアグラムです。SAP S/4HANAだけでなく、SAP Integration SuiteについてもSAML認証は同様の動きとなります。
5. 設定の流れ
以下のように設定作業を進めていきます。設定作業は、通信相手の環境とMetadata Fileを交換して適用するイメージです。
IAS-SAP S/4HANA間の設定
① IASにてSAML Metadata File、Certificate Fileのダウンロード
② SAP S/4HANAにてSAML Metadata Fileのダウンロード
③ IASにてSAP S/4HANA向けApplication設定と②のMetadata Fileのアップロード
④ SAP S/4HANAにて認証済Identity Provider設定と①のMetadata File、Certificate Fileのアップロード
IAS-SAP BTP(SAP Integration Suite)間の設定
⑤ SAP BTPにてTrust Configuration設定と①のMetadata Fileのアップロード
⑥ SAP BTPにてSAML Metadata Fileのダウンロード
⑦ IASにてBTP向けApplication設定と⑥のMetadata Fileのアップロード
テストユーザの設定
⑧ 各環境にてテストユーザの設定
6. 設定内容
設定のサマリは以下の通りです。
※本文の画面イメージは2023年12月時点のものです。SAP S/4HANAやSAP BTPのUIはSAP社にて今後もアップデートされていきます。そのため、本文と一致しなくなる場合もある旨、ご承知おきください。
① IASにてSAML Metadata File、Certificate Fileのダウンロード
Applications & Resources > Applications > SAML 2.0 Configurationにて、Download Metadata Fileを実行します。
Applications & Resources > Applications > SAML 2.0 Configuration > Signing Certificates > View Certificate にて、Certificate Informationをテキストコピーしてファイルに保存し、証明書のエクスポートウィザードにてcerファイルを作成します。
② SAP S/4HANAにてSAML Metadata Fileのダウンロード
トランザクション:SAML2を実行し、SAML2.0ローカルプロバイダを設定します。
メタデータ > メタデータダウンロードを実行します。
③ IASにてSAP S/4HANA向けApplication設定と②のMetadata Fileのアップロード
Applications & Resources > Applications にて新しいApplicationを作成します。
SAML2.0 Configuration > Define from Metadata File にて②のMetadata Fileをアップロードします。
アップロードによって設定項目に値がセットされます。本例では以下の調整を実施しています。
Conditional Authentication > Default Authenticating Identity Provider にてDefault Identity Providerが「Identity Authentication」になっていることを確認します。
④ SAP S/4HANAにて認証済Identity Provider設定と①のMetadata File、Certificate Fileのアップロード
トランザクション:SAML2を実行し、認証されたプロバイダ > 追加 > メタデータファイルアップロードを実行します。
① のMetadata FileとCertificate Fileをアップロードし、次へ進みます。
とし、新規認証済アイデンティティプロバイダの設定ウィザードを終了します。
編集モードに切り替え、「サポートされる名前識別子書式」の追加を実行します。
とし、設定を保存します。
有効化を実行し、認証済みプロバイダの「有効」が緑色の■になったことを確認します。
⑤ SAP BTPにてTrust Configuration設定と①のMetadata Fileのアップロード
SAP BTPサブアカウントにて Trust Configuration > New SAML Trust Configurationを実行します。
MetadataのUploadボタンを実行し、①のMetadata Fileを指定してアップロードすると各項目に値がセットされます。必要に応じて値を調整しSaveします。
※本例ではSAP BTPサブアカウントにテストユーザを予め登録するため、Create Shadow Users During Logonのチェックを外します。
※Status、Available for User logon、Create Shadow User During Logonは後で変更可能です。
⑥ SAP BTPにてSAML Metadata Fileのダウンロード
Download SAML Metadataを実行します。
⑦ IASにてBTP向けApplication設定と⑥のMetadata Fileのアップロード
Applications & Resources > Applications にて新しいApplicationを作成します。
SAML2.0 Configuration > Define from Metadata File にて⑥のMetadata Fileをアップロードします。
アップロードによって設定項目に値がセットされます。本例では③と同様に調整を実施します。
⑧ 各環境にてテストユーザの設定
テストの前に、予めテストユーザをIAS、SAP S/4HANA、SAP BTPに用意しておきます。各環境のテストユーザはメールアドレスの値を一致させておく必要があります。
また、SAP BTPのテストユーザにはSAP Integration Suiteの利用権限を付与しておきます。
※SAP BTPのテストユーザはIdPをIASとして登録しておく必要がありますのでご注意ください。
※また、本例ではSAP BTPに二つのIdP(DefaultとIAS)が存在するため、SAP Integration Suiteへアクセスを試みると、どちらの認証プロバイダを使用するか選択する画面が表示されます。今回はIASのIdPを選択します。
これで設定は完了です。SAP S/4HANA(Fiori Launchpad)とIntegration Suiteの認証はいずれもIASに切り替わりました。
7. テスト結果
ユーザはSAP S/4HANA(Fiori Launchpad)にアクセスすると、IASの認証画面が表示されますのでIASのIDとパスワードを入力します。
続行ボタンをクリックすると、SAP S/4HANA(Fiori Launchpad)のTOP画面が表示されます。(SAP S/4HANA(Fiori Launchpad)の認証画面は表示されません)
このブラウザのアドレスバーにSAP Integration SuiteのURLを入力すると、IASの認証画面をスキップし、Integration Suiteの画面が表示されます。
もちろん、逆の順序でも同様です。最初にIntegration SuiteへアクセスしIASの認証を通した後に、SAP S/4HANA(Fiori Launchpad)へアクセスすると、IASの認証画面はスキップされます。
8. おわりに
今回はIdPであるIASをベースに、二つのSP(SAP S/4HANAとSAP Integration Suite)を対象としたSSOのテストをしました。
SSO等の認証機能は非機能要件であり、プロジェクト内ではアプリ要件と比較して優先度が下がったり、課題が後回しになりがちですが、IASを用いたSSOのテストは本記事に示す通り、環境準備や設定作業が容易に対応可能でハードルは高くありません。
また、IASは特にSAPソリューションとの親和性に優れます。代表的なSAPソリューションであるSAP Analytics Cloud、SAP SuccessFactors、SAP Concurから、SAP BTP Cloud Foundry上に実装したカスタムアプリケーションに至るまで IASで認証をカバーすることができ、長期的に見て導入・運用のコストを削減することができます。
「SSOができるのは良いけれど、各環境のユーザ情報は自分たちで登録しないといけないのか?」とお考えのみなさま、ご安心ください。本記事ではご紹介しておりませんが、クラウド・オンプレミス問わず各環境へユーザ情報を自動同期するためのソリューション:SAP Identity Provisioning Service(以下 IPS)も存在し、IASと連動して動作します。
IAS、IPSの詳細はSAP社 Help Portalに集約されており、シナリオも豊富に用意されていますので、本記事にご興味を持たれ、さらに深堀りされたい方はご参照ください。本記事がSSOを検討する上での良いきっかけになれば幸いです。
参考
今後も本ブログでは、引き続き皆様にお役立ちする情報を提供していきます。
NTTデータGSLではSAPシステムの導入支援や運用のサービスを提供しています。SAPシステムの導入や運用保守でお困りごとがありましたら、お問い合わせください。