SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
シングルサインオンの歴史と
SAMLへの道のり
Mashmatrix, Inc.
www.mashmatrix.com
!
Shinichi Tomita
stomita@mashmatrix.com
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
この資料は、株式会社ウフル (http://uhuru.co.jp/) の
社内セミナーにて使用した資料です。ウフル様のご好意
により、公開の許諾を得ましたので、公開いたします。
!
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
自己紹介
• 冨田 慎一 Shinichi Tomita (@stomita)
• 株式会社マッシュマトリックス 代表取締役社長
• Ex-salesforce.com
• Ex-OracleJapan
• 主業務:自社パッケージ製品の開発販売、クラウドサービスの
テクノロジーリサーチおよびコンサルティング
• デジタルアイデンティティ愛好家
• JavaScript エンジニア
• 調査対象テクノロジー領域:Node.js, Force.com, Heroku,
Sencha Ext JS などなど
©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.
クレデンシャルの例
• パスワード
• 簡易・簡便ゆえに、ゴールデンスタンダードとして君臨。種々の問題の元凶にも
• 「本人しか知りえない知識を提示」できることで認証する
• クライアント証明書(ICカード内に保管)
• 「本人しか持っていない所有物を提示」できることで認証する
• セッションID
• 他の方式(パスワードなど)で認証を受けた後、資格証明の検証を簡略化するための工
夫
• セッションIDの値は他の人に知られてはいけない。簡単に推測できてはいけない
• セッションIDに紐付いているユーザが現在アクセスしているものとみなす
©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://www.flickr.com/photos/sylvain_masson/4195880838
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
逆に考える
• 守るべき点がただひとつに絞られる、と考える
• ほとんどのユーザはシステムごとに複数のパスワードを使いわ
けていない(共通パスワードを使いまわして利用)という現状
• すべてのサーバでユーザ認証機能をもつ

最もセキュリティ的に弱いサーバに引きずられる(Weakest
Link)
• 中小企業の場合は、認証サーバにクラウドを活用す
るのも1つの策
©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.
サービスの時代 =「代理人」の時代
あなたの「代理人(エージェン
ト)」となるシステムが、あな
たの代わりにシステムに対して
作業を行う
https://www.flickr.com/photos/thebaffled/6855905810
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
代理人にパスワードを渡す?
• アクセスされるシステムから見たら、どちらも「本人」に
見える
• 監査ができない
• 段階的な権限の委譲することが不可能

(ALL or NOTHING)
代理人へは「認可」を渡すのが基本
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
「認証」と「認可」
• 認証(Authentication)と認可(Authorization)
• 認証:「あなたは〇〇さんですね」
• 認可:「あなたは△△してもいいですよ」
• ユーザには、どちらもシングルサインオンのエクスペリエ
ンスとして認識されることが多い
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
「認可」の形式いろいろ
• (署名なし)トークン形式
• 認可情報に紐付けられた割符のようなもの
• トークンを持っていればアクセス許可されている、とみなす
• アサーション形式
• 認可情報を文書として記述し、発行者の署名つきで渡す
• 電子署名されているので、認可情報は改ざんできない
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
UXからの分類
• ポータル型
• ポータルサービスへのログインで複数サービスの情報にアクセスする
• 実際にはポータルサーバへのログイン(認証)と、ポータルサーバが代理人と
なり各サービスへのアクセスするための許可(認可)が組み合わさっている
• 独立連携型
• それぞれのサービスが独立しユーザにサービスを提供するが、いずれ
かを認証サーバとして、ユーザのログインを統一している
• ディープリンクによる連携など

(例:Google Apps Calendarをクリック Salesforce Contactへ追加)
• 一方から他方への代理アクセスを許す場合も多い
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
まとめ
• シングルサインオンとは、一度のユーザ認証で複数のシステムを利用
可能にするもの
• シングルサインオンのメリット
• ユーザが複数パスワードを管理しなくて済む
• アプリで認証システムを作らなくてもよい
• セキュリティ投資を一点に集中できる
• サービス連携の可能性が生まれる
• ユーザ認証は、ユーザの資格証明(Credential)を検証することで行う
• サービス連携が必要な場合は、代理人に対して「認可」をあたえる
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
シングルサインオンの歴史
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
クライアント・サーバの時代
• Kerberos(ケルベロス)
• MITにより開発された認証プロトコル
• 共通 の仕組みを利用した認証プロトコ
ルを規定し、分散環境でのユーザ認証を
実現
• Active Directory環境におけるWindows
ログインには、Kerberosが用いられて
いる
• 最近Hadoop界隈でも使われてたりなど、
まだまだ現役
https://www.flickr.com/photos/pheezy/58429180
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
WWW/ブラウザの時代
• サービスのすべてはWebで提供されるように
• ログイン Cookie発行
• Firewallの普及、HTTPポートのみが生き残る
• Cookieは単一ホスト(ドメイン)にのみ有
効
• シングルサインオンは、Cookieと密接に結びつい
たものに
• HTTP + Cookie上でシングルサインオンを実
現する必要性
https://www.flickr.com/photos/johnkay/3182986643
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
.NET Passport
• マイクロソフトが提唱した、インターネットでのシングル
サインオンを実現するための仕組み
• 中央集権的
• シングルサインオンのみならず、課金サービスなどの提供
にも意欲的だったが、あまり普及せず
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
Liberty Alliance
• WWWの普及を踏まえ、インターネット規模でのシングルサイ
ンオン+Webサービス連携を実現するプロトコルを定めるため
に生まれたプロジェクト
• Sun Microsystemsなどが中心となり、

.NET Passportに対抗、分散型、非中央集権を目指す
• Circle of Trustの概念
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAML
• 「アサーション」を記述するためのXMLベースの仕様
• アサーションは認証・認可・属性の交換に利用できる
• メッセージ内容をXML-Signatureを利用して署名することによって実
現
• バージョン番号に注意
• 1.0時代はシングルサインオンのプロファイルとマークアップ、スキー
マ仕様
• そののちLiberty Allianceの成果(ID-FF)と合流し、シングルサイン
オンフローに加えメタデータなどを標準化、SAML2.0となる
• 現在はSAMLといえばほぼSAML2.0を指す
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAMLによる

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

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

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

IdPへリダイレクト
SP
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アサーションを付与して

SPへリダイレクト
5. 検証
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
SAMLのなにがよかったの?
• シングルサインオンのプロトコルが標準仕様として策定され
た
• それまで:特定製品のプロプライエタリなプロトコルが主流
• 企業内ネットワークだけではなく、インターネットサービス
に利用できる
• ASP連携も重視 後のクラウドサービスでの採用につながる
• メタデータの標準化
• 設定ファイルの交換だけで、シングルサインオンサーバとの接続
定義を設定可能
©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
©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の機能を提供
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
まとめ
• クライアント/サーバ時代からシングルサインオンは必要と
されており、それを実現する技術としてKerberosがあった。
今でも広く利用されている。
• WWW時代には、HTTPでCookieを使ってユーザ認証する
のが主流となったため、ブラウザ&HTTP上で利用できるシ
ングルサインオンプロトコルを提唱する企業が多く現れた
• Liberty Allianceは、Webで利用できるシングルサインオン
のプロトコルの標準化を実現し、SAML2.0の仕様へと結実
した
©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

Contenu connexe

Tendances

AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Web Services Japan
 
AWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグAWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグAmazon Web Services Japan
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified IDNaohiro Fujie
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAmazon Web Services Japan
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay都元ダイスケ Miyamoto
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014Nov Matake
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)NTT DATA Technology & Innovation
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用Masaru Kurahayashi
 
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfわたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfssuser868e2d
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方Recruit Lifestyle Co., Ltd.
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 

Tendances (20)

AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
AWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグAWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグ
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
 
Keycloak入門
Keycloak入門Keycloak入門
Keycloak入門
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
 
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfわたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 

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

AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAmazon Web Services Japan
 
ID管理/認証システム導入の理想と現実
ID管理/認証システム導入の理想と現実ID管理/認証システム導入の理想と現実
ID管理/認証システム導入の理想と現実Naohiro Fujie
 
アイデンティティ2.0とOAuth/OpenID Connect
アイデンティティ2.0とOAuth/OpenID Connectアイデンティティ2.0とOAuth/OpenID Connect
アイデンティティ2.0とOAuth/OpenID ConnectShinichi Tomita
 
OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護Naohiro Fujie
 
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方Takahiro Imanaka
 
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack HinemosソリューションHinemos
 
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指すServerless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指すMasayuki Kato
 
クラウド時代の「ID管理」と「認証セキュリティ」
クラウド時代の「ID管理」と「認証セキュリティ」クラウド時代の「ID管理」と「認証セキュリティ」
クラウド時代の「ID管理」と「認証セキュリティ」Tatsuya (達也) Katsuhara (勝原)
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーMasaya Ishikawa
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menusharoid
 
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋Ayumu Aizawa
 
スタートアップのCEOもおさえておきたい、ITインフラのセキュリティ対策 先生:
スタートアップのCEOもおさえておきたい、ITインフラのセキュリティ対策 先生:スタートアップのCEOもおさえておきたい、ITインフラのセキュリティ対策 先生:
スタートアップのCEOもおさえておきたい、ITインフラのセキュリティ対策 先生:schoowebcampus
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションMasahiko Ebisuda
 
Security days 2015
Security days 2015Security days 2015
Security days 2015Manabu Kondo
 
AWSの様々なアーキテクチャ
AWSの様々なアーキテクチャAWSの様々なアーキテクチャ
AWSの様々なアーキテクチャKameda Harunobu
 
タンジブルなモノづくりの過程はソフトウェア開発でも共通する
タンジブルなモノづくりの過程はソフトウェア開発でも共通するタンジブルなモノづくりの過程はソフトウェア開発でも共通する
タンジブルなモノづくりの過程はソフトウェア開発でも共通するRyoma Amakasu
 
ドミノピザおよびJet.comの事例 から学ぶストレスフリーな 顧客体験の作り方
ドミノピザおよびJet.comの事例から学ぶストレスフリーな顧客体験の作り方ドミノピザおよびJet.comの事例から学ぶストレスフリーな顧客体験の作り方
ドミノピザおよびJet.comの事例 から学ぶストレスフリーな 顧客体験の作り方Microsoft Azure Japan
 
Cloud native strategy ver1.1
Cloud native strategy ver1.1Cloud native strategy ver1.1
Cloud native strategy ver1.1TomohiroDoi
 

Similaire à シングルサインオンの歴史とSAMLへの道のり (20)

AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
 
ID管理/認証システム導入の理想と現実
ID管理/認証システム導入の理想と現実ID管理/認証システム導入の理想と現実
ID管理/認証システム導入の理想と現実
 
アイデンティティ2.0とOAuth/OpenID Connect
アイデンティティ2.0とOAuth/OpenID Connectアイデンティティ2.0とOAuth/OpenID Connect
アイデンティティ2.0とOAuth/OpenID Connect
 
OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護
 
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
 
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
 
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指すServerless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指す
 
クラウド時代の「ID管理」と「認証セキュリティ」
クラウド時代の「ID管理」と「認証セキュリティ」クラウド時代の「ID管理」と「認証セキュリティ」
クラウド時代の「ID管理」と「認証セキュリティ」
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
 
20141111 themi struct
20141111 themi struct20141111 themi struct
20141111 themi struct
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menu
 
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
 
Serverless Application Security on AWS
Serverless Application Security on AWSServerless Application Security on AWS
Serverless Application Security on AWS
 
スタートアップのCEOもおさえておきたい、ITインフラのセキュリティ対策 先生:
スタートアップのCEOもおさえておきたい、ITインフラのセキュリティ対策 先生:スタートアップのCEOもおさえておきたい、ITインフラのセキュリティ対策 先生:
スタートアップのCEOもおさえておきたい、ITインフラのセキュリティ対策 先生:
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
 
Security days 2015
Security days 2015Security days 2015
Security days 2015
 
AWSの様々なアーキテクチャ
AWSの様々なアーキテクチャAWSの様々なアーキテクチャ
AWSの様々なアーキテクチャ
 
タンジブルなモノづくりの過程はソフトウェア開発でも共通する
タンジブルなモノづくりの過程はソフトウェア開発でも共通するタンジブルなモノづくりの過程はソフトウェア開発でも共通する
タンジブルなモノづくりの過程はソフトウェア開発でも共通する
 
ドミノピザおよびJet.comの事例 から学ぶストレスフリーな 顧客体験の作り方
ドミノピザおよびJet.comの事例から学ぶストレスフリーな顧客体験の作り方ドミノピザおよびJet.comの事例から学ぶストレスフリーな顧客体験の作り方
ドミノピザおよびJet.comの事例 から学ぶストレスフリーな 顧客体験の作り方
 
Cloud native strategy ver1.1
Cloud native strategy ver1.1Cloud native strategy ver1.1
Cloud native strategy ver1.1
 

Plus de Shinichi Tomita

SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)Shinichi Tomita
 
SalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAMLSalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAMLShinichi Tomita
 
Developing SLDS Apps with React.js
Developing SLDS Apps with React.jsDeveloping SLDS Apps with React.js
Developing SLDS Apps with React.jsShinichi Tomita
 
Spring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running CalloutSpring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running CalloutShinichi Tomita
 
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~Shinichi Tomita
 
Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -Shinichi Tomita
 
モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)Shinichi Tomita
 
モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)Shinichi Tomita
 
(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile ApplicationsShinichi Tomita
 
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用Shinichi Tomita
 
クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告Shinichi Tomita
 
Cloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming APICloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming APIShinichi Tomita
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Shinichi Tomita
 
Herokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバHerokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバShinichi Tomita
 
Force.com とか @ PaaS祭り
Force.com とか @ PaaS祭りForce.com とか @ PaaS祭り
Force.com とか @ PaaS祭りShinichi Tomita
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Shinichi Tomita
 
Phantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuPhantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuShinichi Tomita
 
Collecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuCollecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuShinichi Tomita
 

Plus de Shinichi Tomita (20)

SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
 
SalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAMLSalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAML
 
Developing SLDS Apps with React.js
Developing SLDS Apps with React.jsDeveloping SLDS Apps with React.js
Developing SLDS Apps with React.js
 
Spring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running CalloutSpring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running Callout
 
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
 
Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -
 
モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)
 
Salesforce1最速経路
Salesforce1最速経路Salesforce1最速経路
Salesforce1最速経路
 
モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)
 
(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications
 
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
 
クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告
 
Cloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming APICloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming API
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~
 
Intro to JFDG
Intro to JFDGIntro to JFDG
Intro to JFDG
 
Herokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバHerokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバ
 
Force.com とか @ PaaS祭り
Force.com とか @ PaaS祭りForce.com とか @ PaaS祭り
Force.com とか @ PaaS祭り
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携
 
Phantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuPhantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on Heroku
 
Collecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuCollecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on Heroku
 

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

  • 1. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. シングルサインオンの歴史と SAMLへの道のり Mashmatrix, Inc. www.mashmatrix.com ! Shinichi Tomita stomita@mashmatrix.com
  • 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