商品サンプル画像
奇面組登場!
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
『ToHeart』プレミアムエディション -Steam 【特典】TVアニメ『ToHeart』Blu-ray Disc(全13話・2枚組)同梱
商品ページ
Amazon
収益広告(手動登録)
サクラ度:○(問題なし)
商品サンプル画像
『ヤマトよ永遠に REBEL3199』 第四章 水色の乙女(サーシャ)(レンタル版)
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
プリンセス・プリンシパル Crown Handler 第4章(セル版・特典付)
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
ワンダンス
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
記事の概要
シングルサインオン/SAML認証について
作成日:2019-11-04
最終更新日:2019-11-04
記事の文字数:3450
情報技術
シングルサインオン/SAML認証について
概要

シングルサインオンについて調べたのでメモ。

シングルサインオンとは

まず念のためシングルサインオンとは何か?から。

通常のログインは
「①自分が使いたいシステムAで認証して」
「②同じく自分が使いたいシステムAでログインする」
と思う。

図で表すと以下の通り。
サービスプロバイダが「自分が使いたいシステム」ということ。

画像クリックで等倍


ただしこれだと、使っているシステムが「システムA」「システムB」「システムC」と、
増えていくとそれらがすべて毎日使っているシステムだったら、毎日最低3回ログインする必要があることになる。

それだけならまだしも、これらのシステムが3カ月に1回、6カ月に1回など
異なるタイミングでパスワードの変更を求めるようなシステムだった場合、
パスワードの管理が非常にめんどくさいことも問題になる。

ログインポリシーもそれぞれで異なるため、その管理も面倒になる。

それらを解決するために生まれたのがシングルサインオン

通常のログインと異なり、
「①認証用のシステムAで認証して」
「②自分が使いたいシステムBでログインする」
という方式を使っている。

図で表すとこうなる。
IDプロバイダが「認証用のシステム」

画像クリックで等倍


これだけだとパッとしないかもしれないが、
サービスプロバイダの数を増やしてみるとシングルサインオンっぽくなる。

画像クリックで等倍


こうすれば、パスワードもログインポリシーもIDプロバイダで一元管理できるし、毎日のログインも最低1回で済む。

これがシングルサインオンでそのメリットである。

SAML認証とは

上の説明がシングルサインオンの説明。
そしてそのシングルサインオンの時に使われる認証方法の一つが、SAML認証。

SAML認証の最大の特徴は「異なるドメイン間で容易に認証用メッセージのやり取りが行えること」らしい。
これは後述する通り、サービスプロバイダとIDプロバイダが直接メッセージのやり取りをすることはなく、
クライアントを介して行っているためらしい。

そのため社内認証システムとクラウドシステムの時によく使われるらしい。

SP initiatedフローとIdP initiatedフロー

SAML認証には「SP initiatedフロー」「IdP initiatedフロー」の二つがある。

より複雑なのは「SP initiatedフロー」の方。
というより、「SP initiatedフロー」の前の方の手順が無いのが、「IdP initiatedフロー」。

内部的な話で言うと、
「SP initiatedフロー」は「AuthnRequest」から始まるフロー、
「IdP initiatedフロー」は「SAMLResponse」から始まるフロー
ということでいいと思う。

それぞれのフローの概要は以下の通り。
(あくまで一例)

SP initiatedフロー
画像クリックで等倍


IdP initiatedフロー
画像クリックで等倍


これだけだとパッとしないと思うが、これをベースに後々の説明をしていく。

SP initiatedフロー

1.SP initiatedフローを呼ぶ

まず最初にやらないといけないこととして、何らかの方法でSAML認証を起動しないといけない。
方法はいろいろあると思うが「URLを開くと起動する」「ボタンを押すと起動する」などがある。

2.AuthnRequestをIDプロバイダに送る

AuthnRequestは、IDプロバイダに認証を依頼するためのもので、ここの中に認証する際の約束事も記載されているらしい。
またAuthnRequestだけでなく、「RelayState」、「電子署名」、「ハッシュ化アルゴリズム」なども送られているらしい。
RelayStateとは、SAML認証完了後、どのページ(URL)を開くかを記載したもの。

3、4.IDプロバイダが認証画面をユーザに表示し、ユーザが認証する

これは普通に社内の認証システムが表示されるようなイメージ。
もちろんすでに認証(ログイン)済の場合、この手順は飛ばされる。

5.AuthnRequestを検証する

ここでAuthnRequestを見て、これから作るSAMLRequestの作り方をきめている。
電子署名の比較もやっている(はず)。

6.SAMLResponseをクライアントに返す

IDプロバイダがSAMLRequestと呼ばれるXMLメッセージを「クライアントに」返す。
厳密にいうと、それをそのまま返しているわけではなく、そのメッセージを含んだinputフォームを持ったHTMLをブラウザに返しているらしい。
この際SAMLRequestと一緒に「RelayState」も返している。

7.SAMLResponseをサービスプロバイダに送る

前の手順で送られてきたSAMLResponse(とRelayState)を「サービスプロバイダに」送る。

直接IDプロバイダからサービスプロバイダに送らず、クライアントを一回クッションにしているのがポイント。

8.SAMLResponseをサービスプロバイダが検証する

SAMLResponseをサービスプロバイダが検証する。
こっちでも電子署名の確認をしているらしい。

9.サービスプロバイダがログインセッションを返す

SAMLResponseに含まれるNameIDからログインするユーザを特定してセッションを返す。
同時に「RelayState」のページにクライアントをリダイレクトさせる。

IdP initiatedフロー

「SP initiatedフロー」の中で「2~5」の手順を省いたものが「IdP initiatedフロー」になると思う。
例えば社内ポータルサイトからリンクを開くと、サービスプロバイダの画面が開くなど。

SP initiatedフローでしかできないこと

思いつく限りでSP initiatedフローでしかできないことが2つある。
一つが、認証後に開くページを可変にすること

例えばメールにサービスプロバイダへのリンクが2つあって、
一つはAというデータへのリンク、もう一つはBというデータへのリンクがあった場合。

Aというデータへのリンクを押したときには、最終的にAというデータが開き、
Bというデータへのリンクを押したときには、最終的にBというデータが開くようにする、ということがSP initiatedフローではできる。
(サービスプロバイダからIDプロバイダへAuthnRequestを送るときに、RelayStateの値をそれぞれで変えればいいだけ)

IDプロバイダではこのように可変にするのはかなり難しいと思う。

もう一つがサービスプロバイダが独自のアプリを使っている場合のSAML認証
例えばIDプロバイダはIEやChromeなどの普通のWebブラウザを使うのに対して、サービスプロバイダが専用のアプリケーションだった場合。

IdP initiatedフローでは、ブラウザからSAML認証が始まるため、
セッションはブラウザに対して返されるはずなので、サービスプロバイダアプリケーション側の認証が行われない(はず)。

対してSP initiatedフローでは、サービスプロバイダのアプリケーションからSAMLを始めれば問題ない。
コメントログ
※コメントは最新50件が表示されます
コメント投稿




画面下部の「コンタクト」からも連絡可能です。
管理人ツイート
商品サンプル画像
『ヤマトよ永遠に REBEL3199』 第四章 水色の乙女(サーシャ)(レンタル版)
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
シーズン1
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
#24 再びのために
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
「最後に確かめたいこと」
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
管理人作品宣伝
VRoidナビゲーター
Webサイト / 最終更新:2025-05-06
サイト上でVRoidによる、サイト内の案内やニュース表示、Chatでの質問回答や要望の…サイト上でVRoidによる、サイト内の案内やニュース表示、Chatでの質問回答や要望の受付を行います

HPで閲覧する利用素材等の詳細情報
不思議の幻想郷 TODR:装備の印の組合せシミュレーションツール
Webサイト / 最終更新:2025-11-30
『不思議の幻想郷 TOD RELOADED.』の印考慮用のツールです。 使いたい印の…『不思議の幻想郷 TOD RELOADED.』の印考慮用のツールです。 使いたい印の固有印/追加印ごとの最高性能と入手方法(Wiki調べ)を見ることができます。 また、使いたい印にチェックを入れたあと、画面最下部の集計ボタンを押すことでそれらを一覧で見ることもできます。

HPで閲覧する利用素材等の詳細情報
作品一覧はこちら
関連ページ
OpenAI API:Webサーチモードで参考にしてほしいURLを送っても無視されることがある問題について
最終更新日:2025-12-07
このページのポイントWebサーチでも、まずは「プロンプトだけ」を読んで「解釈」される「前提として見て…
記事を閲覧する
VRoidナビゲーター:質問機能を強化しました
最終更新日:2025-11-25
このページのポイントVナビの質問機能がいま開いているページを参照するようになった必要な情報をネット上…
記事を閲覧する
JavaScriptでアナログ時計とデジタル時計を表示するコード
最終更新日:2025-05-29
概要 最近アナログ時計を使ったので、アナログ時計を表示するJavaScriptコードを載せます。 …
記事を閲覧する
three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する Part-03
最終更新日:2025-04-20
概要 three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する方…
記事を閲覧する
three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する Part-02
最終更新日:2025-04-15
概要 three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する方…
記事を閲覧する
three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する Part-01
最終更新日:2025-04-13
概要 three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する方…
記事を閲覧する
GIF / APNG(アニメーション付きPNG)ファイル解析ページ
最終更新日:2025-03-31
ファイル読込・操作 以下に調べたいファイルを読み込ませてください。 ファイル情報 カラーパレットを…
記事を閲覧する
gifler.js仕様メモ
最終更新日:2025-03-23
本ページの趣旨 「gifler.js」という、gifアニメーションをcanvasに簡単に表示できる…
記事を閲覧する
【プログラミング】実例で分かるかもしれない再帰処理
最終更新日:2024-12-15
本ページは以下動画の台本を書き起こしたものです 解説の趣旨・方向性 皆さん、こんばんは今回はプログ…
記事を閲覧する
SNSツイート一元化対応(Twitter・Misskey・Mastodon・Bluesky)-公開
最終更新日:2024-12-06
概要 SNSツイートを一元化するためのツールを作成しています(古い記事ですが、こちらのページで紹介…
記事を閲覧する
本サイトのタグ一覧
NovelAIR18VRoidWebサイト作成Webツールととモノ。るろうに剣心アークナイツアークナイツ-ステージ攻略日記アズールレーンアズールレーン-日記ウマ娘ギャラリーゲームデビラビローグネットスラング系プログラミングホラーポケットタウン怪談気ままな日記逆転裁判情報技術情報技術-WebAPI知的財産権統合戦略白夜極光本サイトについて魔王スライム様がんばる!漫画
人気記事
ととモノ。3:各学科の強みを一覧化
最終更新日:2025-10-12
スコア:2309.0592 pt
このページのポイントどの学科が良いかすぐに分かる各学科のどのような点が良いか分かる各役割で欲しいスキ…
記事を閲覧する
メイド・オブ・ザ・デッド-攻略お助け情報
最終更新日:2024-05-01
スコア:1882.4858 pt
ネタバレ注意! 本ページは『メイド・オブ・ザ・デッド』の情報を記録しているものです。 攻略の参考に…
記事を閲覧する
ポケットタウン_パズル一覧
最終更新日:2025-05-02
スコア:755.0599 pt
グレーのピースの数 (Number of gray pieces):検索グレーピースの数を入力して、…
記事を閲覧する
剣と魔法と学園モノ。3 前作からの変更点
最終更新日:2025-10-12
スコア:715.8287 pt
概要 もうそろそろ「ととモノ。3」のリマスターが出るので、自分自身のための振り返りと言う意味も込め…
記事を閲覧する
TRICK-本物っぽい霊能力者
最終更新日:2025-02-06
スコア:359.1037 pt
概要 TRICKは基本的にインチキ霊能力者のインチキを暴いていく話ですが、中にはトリックでは説明が…
記事を閲覧する
ヒカルの碁で、なぜ佐為は消えたのか
最終更新日:2025-04-21
スコア:340.1503 pt
概要 ヒカルの碁で佐為が消えた理由について、「ヒカルの才能を目覚めさせるという役割を終えたから」と…
記事を閲覧する
剣と魔法と学園モノ。3 - パーティ編成確認ツール
最終更新日:2025-09-23
スコア:326.8762 pt
ツール概要 ととモノ。3のパーティ編成を考える際に使うツールです。 攻略本や攻略wikiを参考にし…
記事を閲覧する
剣と魔法と学園モノ。2G - パーティ編成確認ツール
最終更新日:2024-05-09
スコア:269.3399 pt
ツール概要 ととモノ。2Gのパーティ編成を考える際に使うツールです。 あくまでストーリークリアまで…
記事を閲覧する
最新記事
るろうに剣心-各キャラの持つ正義
最終更新日:2026-01-12
このページのポイントこんな人向けるろ剣を読んだことないけど知ってる人軽く読んだことがある人伝えたいこ…
記事を閲覧する
逆転裁判1:真犯人まとめと悪質度
最終更新日:2025-12-15
概要 逆転裁判1(蘇る込み)に出てくる犯人たちを、やったことや動機なんかを整理して「悪質度」を点数…
記事を閲覧する
OpenAI API:Webサーチモードで参考にしてほしいURLを送っても無視されることがある問題について
最終更新日:2025-12-07
このページのポイントWebサーチでも、まずは「プロンプトだけ」を読んで「解釈」される「前提として見て…
記事を閲覧する
不思議の幻想郷 TODR:装備の印の組合せシミュレーションツール
最終更新日:2025-11-30
概要本ページは『不思議の幻想郷 TOD RELOADED.』の印考慮用のツールページです。基本事項固…
記事を閲覧する
商品サンプル画像
「最後に確かめたいこと」
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)