©Copyright 2014 Mashmatrix, Inc. All rights reserved.
シングルサインオンの歴史と
SAMLへの道のり
Mashmatrix, Inc.
www.mashmatrix.com
!
Shinic...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
この資料は、株式会社ウフル (http://uhuru.co.jp/) の
社内セミナーにて使用した資料です。ウフル様のご好意
により、...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
自己紹介
• 冨田 慎一 Shinichi Tomita (@stomita)
• 株式会社マッシュマトリックス 代表取締役社長
• E...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
本日の主題
シングルサインオン
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
シングルサインオン(SSO)
1度のユーザ認証で複数のシステムを利用可能にするシステ
ムあるいはその仕組みのこと
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
そもそも話
ユーザの認証って、どうやってるの?
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
基本中の基本:

クライアント/サーバ アーキテクチャ
サーバ
リクエスト
レスポンス
クライアント
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
ユーザエージェント
(ユーザエージェント)
サーバユーザ
リクエスト
レスポンス
クライアント
?
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
クレデンシャル 

(Credential/資格証明)
(ユーザエージェント)
サーバユーザ
リクエスト
レスポンス
検証
クライアント...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
クレデンシャルの例
• パスワード
• 簡易・簡便ゆえに、ゴールデンスタンダードとして君臨。種々の問題の元凶にも
• 「本人しか知りえな...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
そもそも話:その2
シングルサインオンして

何かメリットあるの?
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
ユーザ側のメリット
• 複数パスワードを覚えないで済む
• 単一パスワードの使い回しはご法度
• ログインする手間をかけることなく、複数...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
システム開発側のメリット
• 信頼できる強固なシステムに、ユーザの認証を任せること
ができる
• パスワードを安全にDBに保管しています...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
よくある疑問
“認証機能を一箇所に集
めてしまって、もしそこ
のパスワードが漏れちゃっ
たら、だめなんじゃない
の?”
https://...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
逆に考える
• 守るべき点がただひとつに絞られる、と考える
• ほとんどのユーザはシステムごとに複数のパスワードを使いわ
けていない(共...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
サービス連携とSSO
(ユーザエージェント)
サーバAユーザ
リクエスト
レスポンス
クライアント
サーバB サーバC
サーバD
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
サービス連携とSSO
(ユーザエージェント)
サービスAユーザ
リクエスト
レスポンス
クライアント
サービスB サービスC
サービスD
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
サービスの時代 =「代理人」の時代
あなたの「代理人(エージェン
ト)」となるシステムが、あな
たの代わりにシステムに対して
作業を行う...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
代理人にパスワードを渡す?
• アクセスされるシステムから見たら、どちらも「本人」に
見える
• 監査ができない
• 段階的な権限の委譲...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
「認証」と「認可」
• 認証(Authentication)と認可(Authorization)
• 認証:「あなたは〇〇さんですね」
...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
「認可」の形式いろいろ
• (署名なし)トークン形式
• 認可情報に紐付けられた割符のようなもの
• トークンを持っていればアクセス許可...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
UXからの分類
• ポータル型
• ポータルサービスへのログインで複数サービスの情報にアクセスする
• 実際にはポータルサーバへのログイ...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
まとめ
• シングルサインオンとは、一度のユーザ認証で複数のシステムを利用
可能にするもの
• シングルサインオンのメリット
• ユーザ...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
シングルサインオンの歴史
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
クライアント・サーバの時代
• Kerberos(ケルベロス)
• MITにより開発された認証プロトコル
• 共通 の仕組みを利用した認...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
WWW/ブラウザの時代
• サービスのすべてはWebで提供されるように
• ログイン Cookie発行
• Firewallの普及、HT...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
.NET Passport
• マイクロソフトが提唱した、インターネットでのシングル
サインオンを実現するための仕組み
• 中央集権的
...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
Liberty Alliance
• WWWの普及を踏まえ、インターネット規模でのシングルサイ
ンオン+Webサービス連携を実現するプロ...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAML
• 「アサーション」を記述するためのXMLベースの仕様
• アサーションは認証・認可・属性の交換に利用できる
• メッセージ内...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAMLによる

シングルサインオンの基本
• IdP=アイデンティティプロバイダ

( 認証サーバ)
• SP=サービスプロバイダ

...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAMLによる
シングルサインオン:基本フロー
ユーザエージェントユーザ
1. リクエスト
2. SAMLリクエストを付与して

IdP...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAMLによる
シングルサインオン:基本フロー
ユーザエージェントユーザ SP
IdP
2.ユーザのログイン処理
3. SPへの連携に対...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAMLによる
シングルサインオン:基本フロー
ユーザエージェントユーザ SP
IdP
6. レスポンス
4. SAMLアサーションを付...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAMLのなにがよかったの?
• シングルサインオンのプロトコルが標準仕様として策定され
た
• それまで:特定製品のプロプライエタリな...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAMLを使うには
• OpenAM
• アイデンティティ・アクセス管理のオープンソースソフトウェア
• Sun(現Oracle)が開発...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAMLをサポートするクラウド
• Google Apps:SPの機能を提供
• Salesforce:IdP、SPの機能を提供
• W...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
まとめ
• クライアント/サーバ時代からシングルサインオンは必要と
されており、それを実現する技術としてKerberosがあった。
今で...
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
補遺:演習的なものへのリンク
• PingOneをIdPとして、SalesforceにSAMLでシングルサインオンできるように設定
する...
Upcoming SlideShare
Loading in...5
×

シングルサインオンの歴史とSAMLへの道のり

8,745

Published on

Published in: Internet

シングルサインオンの歴史とSAMLへの道のり

  1. 1. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. シングルサインオンの歴史と SAMLへの道のり Mashmatrix, Inc. www.mashmatrix.com ! Shinichi Tomita stomita@mashmatrix.com
  2. 2. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. この資料は、株式会社ウフル (http://uhuru.co.jp/) の 社内セミナーにて使用した資料です。ウフル様のご好意 により、公開の許諾を得ましたので、公開いたします。 !
  3. 3. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 自己紹介 • 冨田 慎一 Shinichi Tomita (@stomita) • 株式会社マッシュマトリックス 代表取締役社長 • Ex-salesforce.com • Ex-OracleJapan • 主業務:自社パッケージ製品の開発販売、クラウドサービスの テクノロジーリサーチおよびコンサルティング • デジタルアイデンティティ愛好家 • JavaScript エンジニア • 調査対象テクノロジー領域:Node.js, Force.com, Heroku, Sencha Ext JS などなど
  4. 4. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 本日の主題 シングルサインオン
  5. 5. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. シングルサインオン(SSO) 1度のユーザ認証で複数のシステムを利用可能にするシステ ムあるいはその仕組みのこと
  6. 6. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. そもそも話 ユーザの認証って、どうやってるの?
  7. 7. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 基本中の基本:
 クライアント/サーバ アーキテクチャ サーバ リクエスト レスポンス クライアント
  8. 8. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. ユーザエージェント (ユーザエージェント) サーバユーザ リクエスト レスポンス クライアント ?
  9. 9. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. クレデンシャル 
 (Credential/資格証明) (ユーザエージェント) サーバユーザ リクエスト レスポンス 検証 クライアント クレデンシャル
 (資格証明) !
  10. 10. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. クレデンシャルの例 • パスワード • 簡易・簡便ゆえに、ゴールデンスタンダードとして君臨。種々の問題の元凶にも • 「本人しか知りえない知識を提示」できることで認証する • クライアント証明書(ICカード内に保管) • 「本人しか持っていない所有物を提示」できることで認証する • セッションID • 他の方式(パスワードなど)で認証を受けた後、資格証明の検証を簡略化するための工 夫 • セッションIDの値は他の人に知られてはいけない。簡単に推測できてはいけない • セッションIDに紐付いているユーザが現在アクセスしているものとみなす
  11. 11. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. そもそも話:その2 シングルサインオンして
 何かメリットあるの?
  12. 12. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. ユーザ側のメリット • 複数パスワードを覚えないで済む • 単一パスワードの使い回しはご法度 • ログインする手間をかけることなく、複数のシステムをシー ムレスに行き来できる • 代理人となるサービスを利用して、作業を効率化できる
  13. 13. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. システム開発側のメリット • 信頼できる強固なシステムに、ユーザの認証を任せること ができる • パスワードを安全にDBに保管していますか?ハッシュ化、ソルトなどについて知っ ていますか? • 攻撃者が用いる攻撃手法について、オンライン・オフラインの双方にわたって、 熟知していますか? • パスワードでは不十分なとき、多要素認証のシステムを最初から作れますか? すべてのアプリケーションに上記を求めるのは、酷である
  14. 14. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. よくある疑問 “認証機能を一箇所に集 めてしまって、もしそこ のパスワードが漏れちゃっ たら、だめなんじゃない の?” https://www.flickr.com/photos/sylvain_masson/4195880838
  15. 15. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 逆に考える • 守るべき点がただひとつに絞られる、と考える • ほとんどのユーザはシステムごとに複数のパスワードを使いわ けていない(共通パスワードを使いまわして利用)という現状 • すべてのサーバでユーザ認証機能をもつ
 最もセキュリティ的に弱いサーバに引きずられる(Weakest Link) • 中小企業の場合は、認証サーバにクラウドを活用す るのも1つの策
  16. 16. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. サービス連携とSSO (ユーザエージェント) サーバAユーザ リクエスト レスポンス クライアント サーバB サーバC サーバD
  17. 17. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. サービス連携とSSO (ユーザエージェント) サービスAユーザ リクエスト レスポンス クライアント サービスB サービスC サービスD
  18. 18. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. サービスの時代 =「代理人」の時代 あなたの「代理人(エージェン ト)」となるシステムが、あな たの代わりにシステムに対して 作業を行う https://www.flickr.com/photos/thebaffled/6855905810
  19. 19. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 代理人にパスワードを渡す? • アクセスされるシステムから見たら、どちらも「本人」に 見える • 監査ができない • 段階的な権限の委譲することが不可能
 (ALL or NOTHING) 代理人へは「認可」を渡すのが基本
  20. 20. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 「認証」と「認可」 • 認証(Authentication)と認可(Authorization) • 認証:「あなたは〇〇さんですね」 • 認可:「あなたは△△してもいいですよ」 • ユーザには、どちらもシングルサインオンのエクスペリエ ンスとして認識されることが多い
  21. 21. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 「認可」の形式いろいろ • (署名なし)トークン形式 • 認可情報に紐付けられた割符のようなもの • トークンを持っていればアクセス許可されている、とみなす • アサーション形式 • 認可情報を文書として記述し、発行者の署名つきで渡す • 電子署名されているので、認可情報は改ざんできない
  22. 22. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. UXからの分類 • ポータル型 • ポータルサービスへのログインで複数サービスの情報にアクセスする • 実際にはポータルサーバへのログイン(認証)と、ポータルサーバが代理人と なり各サービスへのアクセスするための許可(認可)が組み合わさっている • 独立連携型 • それぞれのサービスが独立しユーザにサービスを提供するが、いずれ かを認証サーバとして、ユーザのログインを統一している • ディープリンクによる連携など
 (例:Google Apps Calendarをクリック Salesforce Contactへ追加) • 一方から他方への代理アクセスを許す場合も多い
  23. 23. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. まとめ • シングルサインオンとは、一度のユーザ認証で複数のシステムを利用 可能にするもの • シングルサインオンのメリット • ユーザが複数パスワードを管理しなくて済む • アプリで認証システムを作らなくてもよい • セキュリティ投資を一点に集中できる • サービス連携の可能性が生まれる • ユーザ認証は、ユーザの資格証明(Credential)を検証することで行う • サービス連携が必要な場合は、代理人に対して「認可」をあたえる
  24. 24. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. シングルサインオンの歴史
  25. 25. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. クライアント・サーバの時代 • Kerberos(ケルベロス) • MITにより開発された認証プロトコル • 共通 の仕組みを利用した認証プロトコ ルを規定し、分散環境でのユーザ認証を 実現 • Active Directory環境におけるWindows ログインには、Kerberosが用いられて いる • 最近Hadoop界隈でも使われてたりなど、 まだまだ現役 https://www.flickr.com/photos/pheezy/58429180
  26. 26. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. WWW/ブラウザの時代 • サービスのすべてはWebで提供されるように • ログイン Cookie発行 • Firewallの普及、HTTPポートのみが生き残る • Cookieは単一ホスト(ドメイン)にのみ有 効 • シングルサインオンは、Cookieと密接に結びつい たものに • HTTP + Cookie上でシングルサインオンを実 現する必要性 https://www.flickr.com/photos/johnkay/3182986643
  27. 27. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. .NET Passport • マイクロソフトが提唱した、インターネットでのシングル サインオンを実現するための仕組み • 中央集権的 • シングルサインオンのみならず、課金サービスなどの提供 にも意欲的だったが、あまり普及せず
  28. 28. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. Liberty Alliance • WWWの普及を踏まえ、インターネット規模でのシングルサイ ンオン+Webサービス連携を実現するプロトコルを定めるため に生まれたプロジェクト • Sun Microsystemsなどが中心となり、
 .NET Passportに対抗、分散型、非中央集権を目指す • Circle of Trustの概念
  29. 29. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. SAML • 「アサーション」を記述するためのXMLベースの仕様 • アサーションは認証・認可・属性の交換に利用できる • メッセージ内容をXML-Signatureを利用して署名することによって実 現 • バージョン番号に注意 • 1.0時代はシングルサインオンのプロファイルとマークアップ、スキー マ仕様 • そののちLiberty Allianceの成果(ID-FF)と合流し、シングルサイン オンフローに加えメタデータなどを標準化、SAML2.0となる • 現在はSAMLといえばほぼSAML2.0を指す
  30. 30. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. SAMLによる
 シングルサインオンの基本 • IdP=アイデンティティプロバイダ
 ( 認証サーバ) • SP=サービスプロバイダ
 ( 連携するWebアプリケーション)
  31. 31. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. SAMLによる シングルサインオン:基本フロー ユーザエージェントユーザ 1. リクエスト 2. SAMLリクエストを付与して
 IdPへリダイレクト SP IdP
  32. 32. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. SAMLによる シングルサインオン:基本フロー ユーザエージェントユーザ SP IdP 2.ユーザのログイン処理 3. SPへの連携に対するユーザへの 同意画面画面の提示
  33. 33. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. SAMLによる シングルサインオン:基本フロー ユーザエージェントユーザ SP IdP 6. レスポンス 4. SAMLアサーションを付与して
 SPへリダイレクト 5. 検証
  34. 34. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. SAMLのなにがよかったの? • シングルサインオンのプロトコルが標準仕様として策定され た • それまで:特定製品のプロプライエタリなプロトコルが主流 • 企業内ネットワークだけではなく、インターネットサービス に利用できる • ASP連携も重視 後のクラウドサービスでの採用につながる • メタデータの標準化 • 設定ファイルの交換だけで、シングルサインオンサーバとの接続 定義を設定可能
  35. 35. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. SAMLを使うには • OpenAM • アイデンティティ・アクセス管理のオープンソースソフトウェア • Sun(現Oracle)が開発していたOpenSSOをForkしたうえで、 ForgeRock社が提供 • 事実上の標準に近い。多数のWebサービスが内部で採用している • Salesforce Identity Connectもこちらを利用しているとのこと http://forgerock.com/news-articles/forgerock-announces-new-oem-agreement-to-deliver- salesforce-identity-connect/ • Microsoft Active Directory Federation Service
  36. 36. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. SAMLをサポートするクラウド • Google Apps:SPの機能を提供 • Salesforce:IdP、SPの機能を提供 • Windows Azure Active Directory: IdP • Microsoft Office 365: SPの機能を提供 • Amazon Web Services:SPの機能を提供。 • Amazon STSを経由してサービス連携も可能(S3, DynamoDBなど) • Cybozu.com:SP • PingOne : Ping Identity社。IdPの機能を提供 • OneLogin: OneLogin 社。IdPの機能を提供
  37. 37. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. まとめ • クライアント/サーバ時代からシングルサインオンは必要と されており、それを実現する技術としてKerberosがあった。 今でも広く利用されている。 • WWW時代には、HTTPでCookieを使ってユーザ認証する のが主流となったため、ブラウザ&HTTP上で利用できるシ ングルサインオンプロトコルを提唱する企業が多く現れた • Liberty Allianceは、Webで利用できるシングルサインオン のプロトコルの標準化を実現し、SAML2.0の仕様へと結実 した
  38. 38. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 補遺:演習的なものへのリンク • PingOneをIdPとして、SalesforceにSAMLでシングルサインオンできるように設定 する • https://www.pingidentity.com/support/solutions/index.cfm/PingOne-Configuring- Salesforce-com-to-use-the-Federated-ID-for-SSO • Window Azure Active Direcotry をIdPとして、Salesforceにシングルサインオンで きるように設定する • http://msdn.microsoft.com/library/azure/dn308593.aspx • SalesforceをIdPとして、Google Appsにシングルサインオンできるように設定する • https://developer.salesforce.com/page/Configuring-SAML-SSO-to-GoogleApps • SalesforceをIdPとしてAmazon AWS Consoleにシングルサインオンできるように 設定する • https://developer.salesforce.com/page/Configuring-SAML-SSO-to-AWS
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×