商品サンプル画像
バンダイ(BANDAI) ガンダムカードゲーム ブースターパック Dual Impact[GD02] (BOX)24パック入り
商品ページ
Amazon
収益広告(自動登録)
サクラ度:○(問題なし)
商品サンプル画像
Xross Stars スターターデッキ 『初の栄冠』
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
タカラトミー(TAKARA TOMY) デュエル・マスターズ TCG DM25-BD1 ドリーム英雄譚デッキ ボルシャックの書
商品ページ
Amazon
収益広告(自動登録)
サクラ度:○(問題なし)
商品サンプル画像
クーリア シールシート とうめいシールシート クリア 01071
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
タカラトミー(TAKARA TOMY) ディズニー・ロルカナ・TCG 日本語版 ブースターパック 星々の輝き BOX
商品ページ
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件が表示されます
コメント投稿




画面下部の「コンタクト」からも連絡可能です。
管理人ツイート
商品サンプル画像
D.C.Ⅱ.S.S.~ダ・カーポⅡセカンドシーズン~(TV番組)
商品ページ
Amazon
非収益広告(手動登録)
サクラ度:○(問題なし)
商品サンプル画像
タカラトミー(TAKARA TOMY) デュエル・マスターズ TCG DM25-RP3 王道W 第3弾 邪神vs時皇 ~ビヨンド・ザ・タイム~ BOX
商品ページ
Amazon
収益広告(自動登録)
サクラ度:○(問題なし)
商品サンプル画像
ほぼ日手帳 たまごっち/フレークシール(3箱セット) 手帳アクセサリー
商品ページ
Amazon
収益広告(自動登録)
サクラ度:△(要確認)
商品サンプル画像
タカラトミー(TAKARA TOMY) トミカプレミアム 46 トヨタ スポーツ800 ミニカー おもちゃ 6歳以上
商品ページ
Amazon
収益広告(自動登録)
サクラ度:○(問題なし)
管理人作品宣伝
ぱらぱら工房
Webサイト / 最終更新:2025-03-26
jpegやpngなどの静止画画像ファイルを複数枚結合して、GIFやAPNG(アニメーシ…jpegやpngなどの静止画画像ファイルを複数枚結合して、GIFやAPNG(アニメーション付きPNG)を作成するだけのWebツールです。

HPで閲覧する利用素材等の詳細情報返礼特典
【アークナイツ】アークナイツ-必要素材数集計ツール
Webサイト / 最終更新:2025-02-02
【一部機能返礼特典】『アークナイツ』の育成状況を記録し、育成に必要な素材数を集計するペ…【一部機能返礼特典】『アークナイツ』の育成状況を記録し、育成に必要な素材数を集計するページです。オペレータの実装スケジュールや所持率チェッカーの機能も持ち合わせています。 以下機能は返礼特典としています。 ・アークナイツ-必要素材数集計ページ:DB登録データ出力ページ ・アークナイツ-必要素材数集計ページ:オペレータ一覧ページ(昇進0→2に必要な理性換算値ランキング) ・アークナイツ-必要素材数集計ページ:オペレータ一覧ページ(スキル特化に必要な理性換算値ランキング)

HPで閲覧する利用素材等の詳細情報返礼特典
作品一覧はこちら
関連ページ
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
スコア:1092.2667 pt
ネタバレ注意! 本ページは『メイド・オブ・ザ・デッド』の情報を記録しているものです。 攻略の参考に…
記事を閲覧する
剣と魔法と学園モノ。2G - パーティ編成確認ツール
最終更新日:2024-05-09
スコア:731.3025 pt
ツール概要 ととモノ。2Gのパーティ編成を考える際に使うツールです。 あくまでストーリークリアまで…
記事を閲覧する
ポケットタウン_パズル一覧
最終更新日:2025-05-02
スコア:654.0698 pt
グレーのピースの数 (Number of gray pieces):検索グレーピースの数を入力して、…
記事を閲覧する
地獄先生ぬ~べ~で好きな切ないエピソード
最終更新日:2025-07-08
スコア:213.0652 pt
概要 初代というべきか、週刊少年ジャンプで連載されていた地獄先生ぬ~べ~の切ないエピソードの中で好…
記事を閲覧する
剣と魔法と学園モノ。3 - パーティ編成確認ツール
最終更新日:2025-05-07
スコア:187.5465 pt
ツール概要 ととモノ。3のパーティ編成を考える際に使うツールです。 攻略本や攻略wikiを参考にし…
記事を閲覧する
ヒカルの碁で、なぜ佐為は消えたのか
最終更新日:2025-04-21
スコア:187.0894 pt
概要 ヒカルの碁で佐為が消えた理由について、「ヒカルの才能を目覚めさせるという役割を終えたから」と…
記事を閲覧する
ゲーム『イカれた狩場の看板娘』の紹介・レビュー
最終更新日:2025-05-01
スコア:135.0804 pt
記事概要 イカれたゲームを紹介するぜ! イカれた狩場の看板娘! 以上だ! ちなみにそんなイカれてな…
記事を閲覧する
本サイトについて
最終更新日:2025-09-02
スコア:110.0000 pt
本サイトの概要 概要 個人ブログのようなものです。とくにジャンルはありません。 本サイト内の情報に…
記事を閲覧する
最新記事
本サイトについて
最終更新日:2025-09-02
本サイトの概要 概要 個人ブログのようなものです。とくにジャンルはありません。 本サイト内の情報に…
記事を閲覧する
スプシを使って柔らかくAPIからログ記録
最終更新日:2025-07-27
概要 Googleスプレッドシート(=スプシ)を使って、クライアント側の情報などを以下のように簡単…
記事を閲覧する
地獄先生ぬ~べ~新アニメで設定変わったところ(3話まで)
最終更新日:2025-07-13
概要 地獄先生ぬ~べ~の新アニメが2025-07-02(木)よりやっていますが、そこで設定が変わっ…
記事を閲覧する
地獄先生ぬ~べ~で好きな切ないエピソード
最終更新日:2025-07-08
概要 初代というべきか、週刊少年ジャンプで連載されていた地獄先生ぬ~べ~の切ないエピソードの中で好…
記事を閲覧する
商品サンプル画像
タカラトミー(TAKARA TOMY) トミカ 三菱 デリカミ二 トミカ55周年記念仕様 ミニカー おもちゃ 3歳以上
商品ページ
Amazon
収益広告(自動登録)
サクラ度:○(問題なし)