1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【第7回】Azureで社内システム再現(オンプレ編)|ADFS & ShibbolethでSSOを実装⑤

Last updated at Posted at 2025-04-14

概要

「Azureで社内システム再現(オンプレ編)」では、
Azure の IaaS サービスを使って簡単な社内システムを再現します。

機能としては、社員番号を入力して検索ボタンを押すと、
対応する名前を表示するだけのシンプルなものです。

※詳しい全体構成については、【第0回】Azureで社内システム再現(オンプレ編)|構成図と動作の流れ で紹介しています。


システム構成(今回の対象範囲)

ADFS_dousaのtest12.png

今回は、これまでに構成してきた 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/

スクリーンショット 2025-04-08 15.36.44.png


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 が含まれ、ユーザーの画面にログインページが表示されます。

認証後の画面

無事にログインが完了すると、以下のような「社員一覧」画面が表示されました。
スクリーンショット 2025-03-27 14.53.24.png


テストSPサイトへのアクセスとSSOの確認

社内Webサイト(Shibboleth SP)で一度ログインを済ませた状態で、
続けて外部のテストSPサイトにアクセスします。

スクリーンショット 2025-03-27 14.51.42.png


テスト 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

しかし、以下のようなエラーが表示されました。
スクリーンショット 2025-04-14 15.28.34.png

これは、デフォルトでIdP Initiatedのログインページが無効化されているためです。


EnableIdPInitiatedSignonPage を有効化

PowerShellで以下のコマンドを実行し、IdPInitiatedSignonPageTrue に変更します:

Set-AdfsProperties -EnableIdPInitiatedSignonPage $true

設定後、再度 Get-AdfsProperties で確認すると True に変わっていることが確認できます。

スクリーンショット 2025-03-28 16.34.09.png


ADFSのログイン画面からSPを選択

設定が完了すると、ログインページにアクセスできるようになり、
登録済みの証明書利用者信頼(SP)がリストで表示されます。

今回は Test-SP を選択します。

スクリーンショット 2025-04-08 16.06.36.png


SSOが完了し、ログイン後の画面が表示される

SPへのリダイレクト後、クレーム情報が渡され、
ログイン済みの状態で SP の保護されたページが表示されます。
スクリーンショット 2025-04-14 15.33.02.png

このようにして、IdPを起点としたSSOも正常に動作していることが確認できました。


1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?