Submit Search
シングルサインオンの歴史とSAMLへの道のり
•
105 likes
•
37,170 views
Shinichi Tomita
Follow
1 of 38
Download now
Downloaded 317 times
More Related Content
シングルサインオンの歴史とSAMLへの道のり
1.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. シングルサインオンの歴史と SAMLへの道のり Mashmatrix, Inc. www.mashmatrix.com ! Shinichi Tomita
[email protected]
2.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. この資料は、株式会社ウフル (http://uhuru.co.jp/) の 社内セミナーにて使用した資料です。ウフル様のご好意 により、公開の許諾を得ましたので、公開いたします。 !
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.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. 本日の主題 シングルサインオン
5.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. シングルサインオン(SSO) 1度のユーザ認証で複数のシステムを利用可能にするシステ ムあるいはその仕組みのこと
6.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. そもそも話 ユーザの認証って、どうやってるの?
7.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. 基本中の基本: クライアント/サーバ アーキテクチャ サーバ リクエスト レスポンス クライアント
8.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. ユーザエージェント (ユーザエージェント) サーバユーザ リクエスト レスポンス クライアント ?
9.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. クレデンシャル (Credential/資格証明) (ユーザエージェント) サーバユーザ リクエスト レスポンス 検証 クライアント クレデンシャル (資格証明) !
10.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. クレデンシャルの例 • パスワード • 簡易・簡便ゆえに、ゴールデンスタンダードとして君臨。種々の問題の元凶にも • 「本人しか知りえない知識を提示」できることで認証する • クライアント証明書(ICカード内に保管) • 「本人しか持っていない所有物を提示」できることで認証する • セッションID • 他の方式(パスワードなど)で認証を受けた後、資格証明の検証を簡略化するための工 夫 • セッションIDの値は他の人に知られてはいけない。簡単に推測できてはいけない • セッションIDに紐付いているユーザが現在アクセスしているものとみなす
11.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. そもそも話:その2 シングルサインオンして 何かメリットあるの?
12.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. ユーザ側のメリット • 複数パスワードを覚えないで済む • 単一パスワードの使い回しはご法度 • ログインする手間をかけることなく、複数のシステムをシー ムレスに行き来できる • 代理人となるサービスを利用して、作業を効率化できる
13.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. システム開発側のメリット • 信頼できる強固なシステムに、ユーザの認証を任せること ができる • パスワードを安全にDBに保管していますか?ハッシュ化、ソルトなどについて知っ ていますか? • 攻撃者が用いる攻撃手法について、オンライン・オフラインの双方にわたって、 熟知していますか? • パスワードでは不十分なとき、多要素認証のシステムを最初から作れますか? すべてのアプリケーションに上記を求めるのは、酷である
14.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. よくある疑問 “認証機能を一箇所に集 めてしまって、もしそこ のパスワードが漏れちゃっ たら、だめなんじゃない の?” https://www.flickr.com/photos/sylvain_masson/4195880838
15.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. 逆に考える • 守るべき点がただひとつに絞られる、と考える • ほとんどのユーザはシステムごとに複数のパスワードを使いわ けていない(共通パスワードを使いまわして利用)という現状 • すべてのサーバでユーザ認証機能をもつ 最もセキュリティ的に弱いサーバに引きずられる(Weakest Link) • 中小企業の場合は、認証サーバにクラウドを活用す るのも1つの策
16.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. サービス連携とSSO (ユーザエージェント) サーバAユーザ リクエスト レスポンス クライアント サーバB サーバC サーバD
17.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. サービス連携とSSO (ユーザエージェント) サービスAユーザ リクエスト レスポンス クライアント サービスB サービスC サービスD
18.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. サービスの時代 =「代理人」の時代 あなたの「代理人(エージェン ト)」となるシステムが、あな たの代わりにシステムに対して 作業を行う https://www.flickr.com/photos/thebaffled/6855905810
19.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. 代理人にパスワードを渡す? • アクセスされるシステムから見たら、どちらも「本人」に 見える • 監査ができない • 段階的な権限の委譲することが不可能 (ALL or NOTHING) 代理人へは「認可」を渡すのが基本
20.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. 「認証」と「認可」 • 認証(Authentication)と認可(Authorization) • 認証:「あなたは〇〇さんですね」 • 認可:「あなたは△△してもいいですよ」 • ユーザには、どちらもシングルサインオンのエクスペリエ ンスとして認識されることが多い
21.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. 「認可」の形式いろいろ • (署名なし)トークン形式 • 認可情報に紐付けられた割符のようなもの • トークンを持っていればアクセス許可されている、とみなす • アサーション形式 • 認可情報を文書として記述し、発行者の署名つきで渡す • 電子署名されているので、認可情報は改ざんできない
22.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. UXからの分類 • ポータル型 • ポータルサービスへのログインで複数サービスの情報にアクセスする • 実際にはポータルサーバへのログイン(認証)と、ポータルサーバが代理人と なり各サービスへのアクセスするための許可(認可)が組み合わさっている • 独立連携型 • それぞれのサービスが独立しユーザにサービスを提供するが、いずれ かを認証サーバとして、ユーザのログインを統一している • ディープリンクによる連携など (例:Google Apps Calendarをクリック Salesforce Contactへ追加) • 一方から他方への代理アクセスを許す場合も多い
23.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. まとめ • シングルサインオンとは、一度のユーザ認証で複数のシステムを利用 可能にするもの • シングルサインオンのメリット • ユーザが複数パスワードを管理しなくて済む • アプリで認証システムを作らなくてもよい • セキュリティ投資を一点に集中できる • サービス連携の可能性が生まれる • ユーザ認証は、ユーザの資格証明(Credential)を検証することで行う • サービス連携が必要な場合は、代理人に対して「認可」をあたえる
24.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. シングルサインオンの歴史
25.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. クライアント・サーバの時代 • Kerberos(ケルベロス) • MITにより開発された認証プロトコル • 共通 の仕組みを利用した認証プロトコ ルを規定し、分散環境でのユーザ認証を 実現 • Active Directory環境におけるWindows ログインには、Kerberosが用いられて いる • 最近Hadoop界隈でも使われてたりなど、 まだまだ現役 https://www.flickr.com/photos/pheezy/58429180
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.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. .NET Passport • マイクロソフトが提唱した、インターネットでのシングル サインオンを実現するための仕組み • 中央集権的 • シングルサインオンのみならず、課金サービスなどの提供 にも意欲的だったが、あまり普及せず
28.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. Liberty Alliance • WWWの普及を踏まえ、インターネット規模でのシングルサイ ンオン+Webサービス連携を実現するプロトコルを定めるため に生まれたプロジェクト • Sun Microsystemsなどが中心となり、 .NET Passportに対抗、分散型、非中央集権を目指す • Circle of Trustの概念
29.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. SAML • 「アサーション」を記述するためのXMLベースの仕様 • アサーションは認証・認可・属性の交換に利用できる • メッセージ内容をXML-Signatureを利用して署名することによって実 現 • バージョン番号に注意 • 1.0時代はシングルサインオンのプロファイルとマークアップ、スキー マ仕様 • そののちLiberty Allianceの成果(ID-FF)と合流し、シングルサイン オンフローに加えメタデータなどを標準化、SAML2.0となる • 現在はSAMLといえばほぼSAML2.0を指す
30.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. SAMLによる シングルサインオンの基本 • IdP=アイデンティティプロバイダ ( 認証サーバ) • SP=サービスプロバイダ ( 連携するWebアプリケーション)
31.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. SAMLによる シングルサインオン:基本フロー ユーザエージェントユーザ 1. リクエスト 2. SAMLリクエストを付与して IdPへリダイレクト SP IdP
32.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. SAMLによる シングルサインオン:基本フロー ユーザエージェントユーザ SP IdP 2.ユーザのログイン処理 3. SPへの連携に対するユーザへの 同意画面画面の提示
33.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. SAMLによる シングルサインオン:基本フロー ユーザエージェントユーザ SP IdP 6. レスポンス 4. SAMLアサーションを付与して SPへリダイレクト 5. 検証
34.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. SAMLのなにがよかったの? • シングルサインオンのプロトコルが標準仕様として策定され た • それまで:特定製品のプロプライエタリなプロトコルが主流 • 企業内ネットワークだけではなく、インターネットサービス に利用できる • ASP連携も重視 後のクラウドサービスでの採用につながる • メタデータの標準化 • 設定ファイルの交換だけで、シングルサインオンサーバとの接続 定義を設定可能
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.
©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.
©Copyright 2014 Mashmatrix,
Inc. All rights reserved. まとめ • クライアント/サーバ時代からシングルサインオンは必要と されており、それを実現する技術としてKerberosがあった。 今でも広く利用されている。 • WWW時代には、HTTPでCookieを使ってユーザ認証する のが主流となったため、ブラウザ&HTTP上で利用できるシ ングルサインオンプロトコルを提唱する企業が多く現れた • Liberty Allianceは、Webで利用できるシングルサインオン のプロトコルの標準化を実現し、SAML2.0の仕様へと結実 した
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
Download