この記事は SAP Advent Calendar 2024 の 12 月 22 日分の記事として執筆しています。
はじめに
本記事は、SAP Cloud Identity Services を、個人且つ無償で構築する手順です。 既に様々なマニュアル、チュートリアルが存在しますが、一気通貫でとりあえず作れる資料が欲しいなと思い、作成しました。
また、本記事作成時点で私が触らせていただいている、SAP SuccessFactors において、そう遠くない内にこの SAP Cloud Identity Services を導入することが必須とされているため、手軽に作って壊せる環境を持っておきたくもありました。
注意事項
初めて触る方でもわかるようにと、可能な限り手順を細かく残すようにしましたが、 個人の Azure アカウント作成は SAP Cloud Identity Services と直接関係のないところであったため、割愛しています。
目指す構成
無償で作る、を前提とするため、BTP Trial 環境と 個人アカウントの Azure を繋ぐことにしてみます。 ユーザーは、SAP Cloud Identity Services の機能の一つである、Identity Authentication(IAS) のログインページを経由して Microsoft Entra ID で認証を済ませた上で、BTP CF 上のページに進めるようにしてみます。 つまり、IAS をプロキシとして利用し、企業IdP にて認証を確立させる構成です。
sequenceDiagram autonumber actor u as ユーザー participant b as SAP BTP participant i as IAS participant m as Microsoft Entra ID u ->> b: ログインを試行 b -->> i: ログイン要求 i -->> m: リダイレクト m -->> m: ユーザーの入力情報を検証 m -->> i: 結果を応答(SAML) i -->> b: 応答内容を送信(SAML) b ->> u: ログイン完了後の画面を提供
BTP 環境構築
Trial 環境の準備
URL: https://cockpit.hanatrial.ondemand.com/trial/#/home/trial 初めてアクセスすると、region の選択画面が表示されるため、今回は US East(AWS) を選択
しばらく待つと、Trial アカウントの作成が完了する
Home画面の Go To Your Trial Account より、BTP 環境にアクセスする
SAP Cloud Identity Services の導入
BTP Cockpit より、デフォルトで作成されているサブアカウント “trial” にアクセス
サイドメニューの “Services” > “Service Marketplace” を開く
検索機能を使って “Cloud Identity Services” を見つける
“Cloud Identity Services” をクリックし、展開される画面右上の Create ボタンをクリック
Plan を “default” にして、Create ボタンをクリック ※ Next でどんどん進んでもOK
IAS 管理ユーザーを作成する
BTP ログインユーザー(S-User)のメールアドレスに対し、activateするためのメールが届くのでボタンまたはリンクをクリック
IAS Administration Console アクセスユーザーの作成を求められるので、パスワードを設定し、Continue ボタンをクリック
接続確認
受信したメールのリンクから、または BTP の Instances and Subscriptions より、Cloud Identity Services を選択し、Go to Application ボタンをクリックする
サインインを求められるため、先程作成したアカウントのメールアドレスとパスワードを入力する。 正しく入力できていれば、IAS Administration Console にログインできる
Metadata をダウンロードする
Azure 側で SSO を構成するために必要となる情報を事前にダウンロードしておく
Applications & Resources > Tenant Settings
Single Sign-On > SAML 2.0 Configuration
Download Metadata File ボタンより、ファイルダウンロード
個人 Azure 環境構築
Azure 環境作成
クラウド コンピューティング サービス | Microsoft Azure
Microsoft Entra ID を構成
Microsoft Entra ID にアクセス
上部の検索枠より、 “Microsoft Entra ID” を検索し、アクセスする
SAP Cloud Identity Services アプリケーション を追加
追加 > エンタープライズアプリケーション と選択する
Microsoft Entra ギャラリー が開くので、 “SAP Cloud Identity Services” と検索し、選択する
任意の名前を指定し、作成ボタンを押下する
SSO セットアップ
作成が完了した Cloud Identity Services アプリケーションの左メニューにて 管理 > シングル サインオン と進む
シングル サインオン方式は、“SAML” を選択
事前に IAS からダウンロードしておいた、メタデータファイルをアップロードする
ここまで設定を進めた状態で、フェデレーションメタデータXML をダウンロード
SAP IAS の SSO 構成
Identity Providers (IdP) の設定
Identity Providers > Corporate Identity Providers と選択する
Create ボタンから、IdP を作成する Identity Provider Type は “Microsoft ADFS / Entra ID (SAML 2.0)” を選択すること
作成した IdP にて Trust > SAML 2.0 Configuration と選択する
先の手順で Entra ID からダウンロードした フェデレーションメタデータXML をアップロードし、必要事項が反映されたら、Saveする
BTP と IAS 間の信頼構成設定
IAS の Metadata ファイルをダウンロードする
[metadata をダウンロードする](#metadata をダウンロードする) の手順と同じ
Subaccount に Metadata ファイルをアップロードする
サイドメニューの Trust Configuration > New SAML Trust Configuration
メタデータをアップロードし、管理しやすい Name をつけて Save する
SAML メタデータをダウンロードする
画面右上の Download … よりファイルを取得する
アプリケーションを登録する
Applications & Resources > Applications
Create ボタンより、新規アプリケーションを作成する
Metadata ファイルをアップロード
BTP からダウンロードした Metadata を使用する
IAS に登録したアプリケーションの設定
Default Name ID Format を Email にする
Attributes を追加する
Source は “Corporate Identity Provider” を選択し、Value は “Groups” とする(Name は任意)
Conditional Authentication にて IdP の定義変更
Default Identity Provider を 前の工程で追加した Identity Provider を指定する
ここまでの設定で、 IAS - BTP - Microsoft Entra ID が繋がります。
テストする
IAS 経由で Azure 側のユーザーの情報を用いて、ログインできれば良いため、Azure にユーザーを追加します。
テストユーザーの準備
作成済みエンタープライズアプリケーションにて、“ユーザーまたはグループの追加” をクリック
ユーザーのリンクより、追加対象のユーザーを選択 ※ デフォルトで Azure 登録アカウントが存在するはずです。あるいは新規でユーザーを作成しても良いです。
ロールを User(変更不可) のまま、“割り当て"ボタンをクリック
テスト実施
以下形式で、URLを作成し、アクセス https://[subdomain].authentication.[region].hana.ondemand.com
なお、subdomain, region ともに BTP の subaccount より確認可能です。 subdomain はそのままの値、region は Cloud Foundry Environment の API Endpoint などを参照(下図では us10)
以下の画面にて、BTP の Trust Configuration 登録時に付けたリンク名をクリック
設定が正しければ、Microsoft の Sign in 画面が表示されるため、Azure ユーザーの ID と Pass を入力
下図画面に遷移でき、右上に表示されている ID が Azure ユーザーのものであれば、ログイン成功です。
おわりに
公式のマニュアルに加え、こういった環境を作ってみると学習が捗ること間違いありませんので、ぜひ自分だけの SAP Cloud Identity Services 環境を作ってみてください。