商品サンプル画像
mono 5巻 (まんがタイムKRコミックス)
商品ページ
Amazon
収益広告(自動登録)
※Amazonレビュー要確認
商品サンプル画像
スッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ)
商品ページ
Amazon
収益広告(手動登録)
商品サンプル画像
BORUTO-ボルト- -TWO BLUE VORTEX- 5 (ジャンプコミックスDIGITAL)
商品ページ
Amazon
収益広告(自動登録)
※Amazonレビュー要確認
商品サンプル画像
ロボカーポリー のりもののうた Vol.2
商品ページ
Amazon
収益広告(自動登録)
※Amazonレビュー要確認
商品サンプル画像
アシュリー、魔法はよいこになってから!(全3巻)
商品ページ
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件が表示されます
コメント投稿




画面下部の「コンタクト」からも連絡可能です。
管理人ツイート
商品サンプル画像
わんだふるぷりきゅあ!ざ・むーびー!ドキドキ♡ゲームの世界で大冒険!(Amazon.co.jp限定Tシャツ購入権利コード付き)(7/18 正午まで)
商品ページ
Amazon
収益広告(自動登録)
※Amazonレビュー要確認
商品サンプル画像
舞台『東京リベンジャーズ』~聖夜決戦編~
商品ページ
Amazon
収益広告(自動登録)
※Amazonレビュー要確認
商品サンプル画像
ミュージカル「東京リベンジャーズ」
商品ページ
Amazon
収益広告(自動登録)
※Amazonレビュー要確認
商品サンプル画像
乙女ゲームのヒロインで最強サバイバル@COMIC 第7巻 (コロナ・コミックス)
商品ページ
Amazon
収益広告(自動登録)
※Amazonレビュー要確認
管理人作品宣伝
VRoidナビゲーター
Webサイト / 最終更新:2025-05-06
サイト上でVRoidによる、サイト内の案内やニュース表示、Chatでの質問回答や要望の…サイト上でVRoidによる、サイト内の案内やニュース表示、Chatでの質問回答や要望の受付を行います

HPで閲覧する利用素材等の詳細情報
VRoidポーズ集-Part03
3Dモデル / 最終更新:2024-12-03
VRoidのポーズデータ(vroidpose)集です。 写真とかによくありそうなポーズ…VRoidのポーズデータ(vroidpose)集です。 写真とかによくありそうなポーズが中心に入っています。

Boothで閲覧する利用素材等の詳細情報
作品一覧はこちら
関連ページ
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ツイートを一元化するためのツールを作成しています(古い記事ですが、こちらのページで紹介…
記事を閲覧する
SNSツイート一元化対応(Twitter・Misskey・Mastodon・Bluesky)-Python
最終更新日:2024-10-13
概要 概要 SNSのツイートを一元化する際の備忘録というかPythonコードの共有です。 それぞれ…
記事を閲覧する
Windows-PowerShellを使用してのフォルダ内のファイル名を連番にリネームする
最終更新日:2024-10-08
以下PowerShellコードを実行することで、フォルダ内のすべてのファイルのファイル名を「0001…
記事を閲覧する
本サイトのタグ一覧
NovelAIR18VRoidWebサイト作成Webツールととモノ。アークナイツアークナイツ-ステージ攻略日記アズールレーンアズールレーン-日記ウマ娘ギャラリーゲームデビラビローグネットスラング系プログラミングホラーポケットタウン怪談気ままな日記情報技術情報技術-WebAPI知的財産権統合戦略白夜極光本サイトについて魔王スライム様がんばる!漫画
人気記事
メイド・オブ・ザ・デッド-攻略お助け情報
最終更新日:2024-05-01
スコア:780.4700 pt
ネタバレ注意! 本ページは『メイド・オブ・ザ・デッド』の情報を記録しているものです。 攻略の参考に…
記事を閲覧する
ポケットタウン_パズル一覧
最終更新日:2025-05-02
スコア:713.0282 pt
グレーのピースの数 (Number of gray pieces):検索グレーピースの数を入力して、…
記事を閲覧する
剣と魔法と学園モノ。2G - パーティ編成確認ツール
最終更新日:2024-05-09
スコア:179.7872 pt
ツール概要 ととモノ。2Gのパーティ編成を考える際に使うツールです。 あくまでストーリークリアまで…
記事を閲覧する
アークナイツ-常設商品-理性換算
最終更新日:2024-04-28
スコア:136.1702 pt
概要 "常設商品でお得な商品はどれか"というのを理性に換算して一覧化したものとなります。 絶対的に…
記事を閲覧する
本サイトについて
最終更新日:2025-06-11
スコア:121.0342 pt
本サイトの概要 概要 個人ブログのようなものです。とくにジャンルはありません。 本サイト内の情報に…
記事を閲覧する
黒バス:キセキの世代級の人たちの技一覧
最終更新日:2024-07-21
スコア:114.3529 pt
黒バスのキセキの世代級の人たちの技一覧です 概要 黒バスのキセキの世代級の人たちの技を記載したもの…
記事を閲覧する
ゲーム『イカれた狩場の看板娘』の紹介・レビュー
最終更新日:2025-05-01
スコア:105.5385 pt
記事概要 イカれたゲームを紹介するぜ! イカれた狩場の看板娘! 以上だ! ちなみにそんなイカれてな…
記事を閲覧する
地獄先生ぬ~べ~で好きな切ないエピソード
最終更新日:2025-05-19
スコア:91.1928 pt
概要 初代というべきか、週刊少年ジャンプで連載されていた地獄先生ぬ~べ~の切ないエピソードの中で好…
記事を閲覧する
最新記事
htmlタグ混在のテキストをhtmlタグとプレーンテキストで分けるJavaScriptコード
最終更新日:2025-06-20
概要 「よくある質問は a href="/" こ span ち /span ら /a です」 とい…
記事を閲覧する
htmlタグ混在のテキストを1行ずつ左から右へワイプ表示する - JavaScript / CSSコード
最終更新日:2025-06-16
JavaScript全文コード 使い方 以下のJavaScriptとCSSコードを読み込んで、Te…
記事を閲覧する 返礼特典
htmlタグ混在のテキストを1行ずつ左から右へワイプ表示する
最終更新日:2025-06-16
概要 ここでは以下のようにテキストを一行ずつ左から右に表示するJavaScriptコードを載せてい…
記事を閲覧する
本サイトについて
最終更新日:2025-06-11
本サイトの概要 概要 個人ブログのようなものです。とくにジャンルはありません。 本サイト内の情報に…
記事を閲覧する
商品サンプル画像
『ToHeart』プレミアムエディション -Steam 【特典】TVアニメ『ToHeart』Blu-ray Disc(全13話・2枚組)同梱
商品ページ
Amazon
収益広告(手動登録)