Weitere ähnliche Inhalte Ähnlich wie Latest Status of Identity Federation (20) Kürzlich hochgeladen (11) Latest Status of Identity Federation2. 自己紹介
• 神原 淳史 @atsukanrock
https://github.com/atsukanrock
• Sansan株式会社 (2014年11月から)
アバナード株式会社 (2011年7月~2014年10月)
• Software Developer: Domain-Driven Design / .NET / C# / Microsoft Azure
• Strong: トラブルシューティングが速い、アーキとか組める
• Weak: 酒にだらしない
20. フロー (HTTP POST binding)
HTTP Redirect: SAML Request を query string に乗せる
HTTP POST: SAML Response を form に乗せる
21. ID連携のデファクトスタンダード
• ID連携 (実質AD連携) 方式がSAMLなSaaS:
• Salesforce
• Google Apps
• Cybozu
• Workday
• ServiceNow
etc.
Identity Provider (IdP) としてでなく、
Service Provider (SP) としての話
26. 一方その頃MS(Windows系ID管理の支配者) は
こう思っていた
• SAML嫌ぁぁあああ!!
• WS-Federation推奨!!
WS-Federationの特徴:
• SAMLと似たようなもん
• XMLベース
• サポーター: MS
結論
• Windows Identity Foundation
(WIF) ではWS-Federationだけ
サポートします
WIF: .NETでID連携を実装する
ための (当時唯一の) MS謹製
ライブラリ
• AD FSではSAMLもサポート
しますけど
27. 結果
• 2010年頃までSAML vs WS-Federation抗争が継続
現在はMSのAD FSでのSAMLサポートにより概ね終息:
• オープンなサービスではSAML
• MS製品で固められるシステムではWS-Federation
• .NETでSAMLを実装するには自前実装が必要
もしくはサードパーティ製コンポーネント
29. 自前実装 is NOT that hard
リクエストを出す
• XMLのテンプレを埋める程度
string.Format で可能なレベル
レスポンス (トークン) を受け取る
• XMLの決まった位置から値を
取り出す
• 改ざんチェックは.NETが
クラスを提供
• SignedXmlクラス
• 事前に公開鍵の入手が必要
32. ネイティブアプリ (iOS / Android / Win8)
前提
• クライアントはWeb APIを
呼び出す
• Web API呼び出しはステート
レス
前提から導き出される要件
• 「認証OK」を示す何かを
毎回送る必要あり
37. フロー (Authorization Code Grant)
http://www.atmarkit.co.jp/ait/articles/1209/10/news105.html (デジタル・アイデンティティ技術最新動向 - @IT)
HTTP Redirectを命じる
Query stringにAuthorization Code
Redirect命令を捕まえて
Authorization Codeを取り出す
HTTP POSTでAuthorization Codeを送る
ResponseにAccess Token
41. OAuth is NOT for AuthN but for AuthZ
OAuthは認証でなく承認
• 認証 (AuthN: Authentication)
ユーザが「誰であるか」
• 承認 (AuthZ: Authorization)
ユーザが「何をできるか」
例: Facebook’s OAuth
• ユーザが「誰であるか」を確認
するのはFacebook
• アプリはFacebookから「その
ユーザができること」を
記したトークンを受け取る
• アプリが「ユーザが誰であるか」
を知るには、それを知るための
APIを叩く
45. OAuth 2.0ベース (OAuth 2.0とほぼ同じフロー)
http://www.atmarkit.co.jp/ait/articles/1209/27/news138_2.html (デジタル・アイデンティティ技術最新動向 - @IT)
ID Tokenからユーザの
基本情報が取り出せる
46. OAuthのセキュリティ上の弱点をカバー
• トークンの形式を標準化
• JWT: JSON Web Token
• JWTはトークンのvalidationが可能
• 改ざんされていないこと (トークン署名)
• 発行元がたしかにxxxであること
• 発行先がたしかに我々 (アプリ) であること
• 意図したユーザに対するトークンであること
http://blogs.msdn.com/b/tsmatsuz/archive/2015/02/18/azure-ad-service-web-api-programming-
with-access-token-validation-check.aspx (松崎 剛 Blog)
50. MS is now working on OpenID Connect
• Azure ADは対応
OpenID Connect and OAuth 2.0 support in Azure Active
Directory has GA’d!
http://blogs.technet.com/b/ad/archive/2014/09/09/openid-connect-and-oauth-2-0-support-in-
azure-active-directory-has-ga-d.aspx (Active Directory Team Blog)
• AD FSは未対応
次バージョンで対応との噂も
52. SAML vs OpenID Connect
SAML
Pros:
• エンタープライズで支配的
• AD FSが対応
Cons:
• Heavyweight
• 複雑
• .NETでの実装が大変
• コンシューマー向けサービスは
IdP非対応が多い
OpenID Connect
Pros:
• Lightweight
• シンプル
• .NETでの実装が容易
• コンシューマー向けサービスも
IdP対応が多い
Cons:
• AD FSが未対応