Windows Phone と認証の関係をまとめるけど、おにぃちゃんのためじゃないんだからね!代理人:アリス 2012 Winter Edition
blogs.technet.com/junichia
@junichia
開発者のための アイデンティティ・テクノロジー
2
内容
Windows Phone アプリに認証の仕組みを実装したいとき、どうしたらよいか考えると眠れなくなることってよくあるよね。アリスもそうだったよ。おにぃちゃんたちにはそんな苦労をしてほしくないので、アリスがやさしく解説してあげるけど、別にお兄ちゃんのことが好きだからとか勘違いしないでほしいの。
3
おにぃちゃんに知って欲しいこと
• IdP はたくさんあるよ• IdP ごとにプロトコルが違うよ• IdP にアクセスするためのライブラリを
把握しておかないとやばいよ• おにぃちゃんだいす ... ゴニョゴニョ
4
アイデンティティ プロバイダー
• Active Directory • Windows Live• Google• Facebook• Twitter• OpenID 系
・・・
5
Windows Phone と IdP
AD DS
Windows Live
SL.IdentityModelIdentity Developer Training kit
Live SDK 5.0Download Center
Facebook C# SDKCodeplex
SL.Phone.FederationWindows Azure Platform Training Kit
Windows Azure
AppFabric ACS
ライブラリ Identity Provider
OpenID 系
みつからない!!hammock はどこいった?
OAuth 2.0(draft 16)
AD FS
OAuth Wrap
OAuth 2.0(draft 10)
WS-Trust ( SAML トークン)
OAuth 1.0a
予定
プロトコル
6
Identity Provider の役割ユーザーを認証して、セキュリティトークン(アサーション)を発行する
セキュリティトークン / アサーション
クレーム 1
クレーム 2
クレーム n
署名
発行元による署名
個人情報
7
Windows Phone アプリの役割IdP からセキュリティトークンを受け取り、サービスに渡す
① UserID/Password
③ セキュリティトークン
IdP
② 認証
④ セキュリティトークン
⑤ 認可信頼
サービス
SNS は両方を兼ねているものが多
い
個人情報
利用者
8
企業内システムとソーシャルアプリの違い(プロトコルの違い)
企業内システム システム間で「信頼」が担保されている アプリケーションを認証する必要は無い 認証と認可の対象は「利用者」
SNS および ソーシャルアプリ システム間の「信頼」は担保されていない 信頼関係のない者同志の認証と認可が必須
「サービス」と「人」 「サービス」と「アプリ」 「人」と「アプリ」 「情報」と「アプリ」
登場人物が多い!
9
OAuth と WS-*/SAML の違い• いずれも認可をするためのプロトコル• OAuth :「 API へのアクセス」を「利用者が」認可する• WS-*/SAML :「情報の送出」を「管理者が」認可する• 現在は SAML 対応製品のほうが細かな制御ができる
システム管理者
要求「情報が欲しい!」
応答「氏名、メアド ... 」
利用者(情報の持ち主)
SAML
OAuthユーザーの情報
承認
承認
アプリケーション
IdP事前に
環境設定
その都度
10
ここ大事!持ち主はだれ??
① UserID/Password
③ セキュリティトークン
IdP
② 認証
④ セキュリティトークン
⑤ 認可信頼
WEB アプリケーション
個人情報
開発者 利用者
アイデンティティ
プロバイダー
サービスプロバイダー
利用者
利用者
11
Facebook や Twitter の場合
個人情報にアクセスしたいアプリ
利用している
使 い た い アクセスしたい
自分のもの
サービスに保存されている個人情報
利用者
アプリ
IdP/SP
API へのアクセスを認可
12
Identity&Service Provider( Twitter/Facebook/Google 等)
“API へのアクセスを認可する” とは?
氏名を閲覧メールアドレスを閲覧
投稿を閲覧
各種特権
つながりを閲覧近況を投稿
API Lv1
アプリ
つながりを編集
外部のアプリケーションに対し、各種情報にアクセスするための API の利用を認可する仕組み
① アプリ登録
③ API にアクセス
② アクセス認可
ユーザー情報
API Lv2
API Lv3
API Lv4
属性の主体(持ち主)
利用者 アプリケーション Facebook
アプリ利用開始
認証 / 認可画面へ Redirect
Access Token 要求
認証 / 認可を完了
Access Token 発行
API 呼び出し
認証 / 認可 画面表示
CallBack url に Redirect
API
認可コードを発行
14
Windows Phone と Active Directory
• System.DirectoryServce がサポートされていない– Active Directory に直接アクセスできない– 何らかのサービスを介して認証の代行を依頼する必要がある
認証
利用 認証
AD DS
認証代行サービス
15
Windows Phone と Active Directory Federation Service
① AD FS にはドメインのユーザー ID とパスワードを渡す(もちろん SSL )② AD 認証は AD FS が代行③ AD DS からユーザーの属性が返される(どんな属性を返すかは AD FS に定義されている)④ AD FS は「属性(クレーム)」に署名をしてセキュリティートークン( SAML アサーショ
ン)を生成⑤ WP アプリにはセキュリティトークンが返される
① UserID/Password ② 認証 AD DS
WS-Trust ( SOAP )
③ 属性⑤ セキュリティトークン
AD FS
④ 属性に署名
16
まとめ
• 企業内システムとソーシャルアプリ系で使用するプロトコルが違うよ!
• OAuth 2.0 の実装は習得必須!
• AD FS の実装方法も習得必須!
• 必要なライブラリをそろえておいてね!
• Windows Phone 買ってね!
17
リソースはここに!
Alice 2012 の BLOGhttp://blogs.technet.com/junichia/サンプルプロジェクトもこちらから
おにぃちゃんがんばって!
Recommended