概要
「Azureで社内システム再現(オンプレ編)」では、
Azure の IaaS サービスを使って簡単な社内システムを再現します。
機能としては、社員番号を入力して検索ボタンを押すと、
対応する名前を表示するだけのシンプルなものです。
※詳しい全体構成については、【第0回】Azureで社内システム再現(オンプレ編)|構成図と動作の流れ で紹介しています。
システム構成(今回の対象範囲)
今回は、これまでに構成してきた ADFS(IdP)と 2つの SP サイトとの連携が
正しく動作するかをテストします。
以下の 2 つの方式で、SAML ベースのシングルサインオン(SSO)が機能するかを検証します。
① SP Initiated SSO(SP 起点)
- Shibboleth SP を導入した社内 Web サイトにアクセス
- ADFS にリダイレクトされ、認証を実施
- 認証後、外部のテスト SP サイトにリダイレクトされ、SSO が完了しているかを確認
② IDP Initiated SSO(IdP 起点)
- ADFS のログインポータルにアクセス
- 表示されるリンクから、SP サイトへ遷移
- SSO によりログインが完了するかを確認
SP Initiated SSO のテスト
Shibboleth SP を組み込んだ社内 Web サイトにアクセスし、ADFS を経由してログインが開始されるかを確認します。
リダイレクトとアクセスの確認(社内WEBサイト)
以下の Web サイトにアクセスします。
https://web-vm1.domain.local/employee-app/
HTTP ステータスによる動作確認
① 302 Found(リダイレクト)
- SP は、SAML 認証要求(SAMLRequest)を含む URL を生成し、
302 Found
を返します。 - このレスポンスの
Location
ヘッダーには ADFS のログインエンドポイントが含まれています。
例:
https://adfs.domain.local/adfs/ls/?SAMLRequest=...
- ブラウザはこの URL に自動的に遷移します。
② 200 OK(ログインページの取得)
- ブラウザが ADFS にアクセスすると、HTTP
200 OK
が返されます。 - レスポンスにはログインフォームの HTML や CSS が含まれ、ユーザーの画面にログインページが表示されます。
認証後の画面
無事にログインが完了すると、以下のような「社員一覧」画面が表示されました。
テストSPサイトへのアクセスとSSOの確認
社内Webサイト(Shibboleth SP)で一度ログインを済ませた状態で、
続けて外部のテストSPサイトにアクセスします。
テスト SP サイトへのアクセス結果
外部のテスト SP サイトにアクセスすると、
認証操作は発生せず**、そのままログイン処理が完了しました。
これは、社内 Web サイトで一度 ADFS による認証を済ませていたため、認証状態がブラウザに維持され、再認証なしでSSOが成立したことを示しています。
また表示されたページに、次のような内容が含まれていました:
Hello user02
これは、ADFS 側で設定したクレームルール(SAM-Account-Name → 名前 ID
)によって、user02 という情報が SAML アサーションを通じて正しくSPに渡されたことを確認できました。
以下に、あなたの流れに沿った IDP Initiated SSO(IdP 起点)テストの手順 をマークダウン形式でまとめました:
IDP Initiated SSO(IdP 起点)のテスト
ADFS(IdP)のログインポータルから SPサイト へ遷移し、SSOが成功するかどうかを確認します。
ADFS のログインページにアクセス
まず以下のURLにアクセスします:
https://adfs.domain.local/adfs/ls/IdpInitiatedSignOn.aspx
これは、デフォルトでIdP Initiatedのログインページが無効化されているためです。
EnableIdPInitiatedSignonPage を有効化
PowerShellで以下のコマンドを実行し、IdPInitiatedSignonPageをTrue
に変更します:
Set-AdfsProperties -EnableIdPInitiatedSignonPage $true
設定後、再度 Get-AdfsProperties
で確認すると True
に変わっていることが確認できます。
ADFSのログイン画面からSPを選択
設定が完了すると、ログインページにアクセスできるようになり、
登録済みの証明書利用者信頼(SP)がリストで表示されます。
今回は Test-SP
を選択します。
SSOが完了し、ログイン後の画面が表示される
SPへのリダイレクト後、クレーム情報が渡され、
ログイン済みの状態で SP の保護されたページが表示されます。
このようにして、IdPを起点としたSSOも正常に動作していることが確認できました。