Comments
Description
Transcript
【開発者歓迎】 多要素認証 Deep Dive
The Microsoft Conference 2014 【開発者歓迎】 多要素認証 Deep Dive ROOM E 日本マイクロソフト株式会社 エバンジェリスト 安納 順一 The Microsoft Conference 2014 アンケートにご協力ください。 ROOM E The Microsoft Conference 2014 ROOM E 本セッションの資料について • 本セッションの資料と映像を後日 オンラインにて公開予定です。 • 掲載時期につきましては、追って 事務局からのメールにてご案内 させていただきます。 多要素認証とは 本人が知っていること ID Pass word 本人が確実に持っているもの 秘密の 質問 Smart card 本人の特性など 場所 行動 履歴 第三者 による 認証 友達か どうか 多要素=多手間 ではない Smart Phone PC 生体 情報 多要素認証プロバイダー(MFA Provider) Azure Active Directory Microsoft Azure AD MFA Provider + Windows Server AD モバイルデバイス 社員 業務 データ 5 多要素認証プロバイダーはADFS からも呼び出せる Azure Active Directory Microsoft Azure AD MFA Provider + Windows Server AD モバイルデバイス 社員 業務 データ 6 Azure MFA Server on AD FS • AD FS から Azure MFA プロバイダーを直接呼び出すためのサービス • 以下からダウンロード • https://pfweb.phonefactor.net/framefactory • 細かな条件設定が可能 Microsoft Azure AD MFA Provider ⑤ ⑥ ⑦ ① ③ ⑨ add in ⑧ ② ④ MFA Server AD FS の MFA 実施条件 設定画面 Active Directory のグループに所属しているか どうか モバイルデバイスが、Active Director にデバ イス登録されているかどうかの判定 ユーザーがFirewallの外からアクセスしている かどうか 条件がすべて満たされたら MFAを実施 クレームルールを作成すれば、さらに柔軟な判定が可能 証明書 OTP 携帯電話 IM 証明書 OTP 携帯電話 IM 証明書 OTP 携帯電話 アクセス コントロール サービス IM 証明書 OTP 携帯電話 IM LOBにアクセスする ための条件を確認 ・必要な認証の種類 ・業務に渡す情報 トークン 証明書認証 プロバイダー 証明書 ldap SQLSV Azure 多要素認証プロバイダー OTP 携帯電話 IM AD FS トークン AD DS サポートされている認証プロバイダーとクレームストア Custom (要開発) 認 証 要 素 その他(要開発) • Oracle • テキスト など カスタム認証プロバイダー 独自に認証プロバイダを開発し、AD FS のアドインとして登録可能 カスタム認証プロバイダーの実装例 Mobile Services PIN Push Channel Authentication PIN Registrations URI, Device ID 12345 スマートフォン Point1: Push Notification Message Push Channel new HttpNotificationChannel(channelName); Channel URI Open "Notification Channel" Application Push URIを知らせる http://s.notify.live.net/u/1/sin/HmQAAADDuqfybKs78jIPVRxxOcDjiJyRdT5AnKbdhhHJfxl63Az266wcD2Hb QhrcgJT6zyG3nlkCvT4XBP7RX9xfoE/d2luZG93c3Bob25lZGVmYXVsdA/QSX_vdQXKU m4Ttff9DP9cw/cB50haQGCYeaYD139zcPDSQTeX4 Point2: Azure Mobile Service Mobile Services Registrations Authentication Push Channel Insert PIN SendToast • • • • Insert Update Delete Read Execute() JQuery JQuery • • • • Insert Update Delete Read Insert DeviceID Authentication テーブルの Insertトリガー function insert(item, user, request) { request.execute({ success: function() { request.respond(); sendNotifications(item); } }); push.mpns.createNativeRegistration(registration.handle,re gistration.id) push.mpns.sendToast(registration.id, { text1: item.text, text2: item.pin function sendNotifications(item) { }, { var registrationsTable = success: function(pushResponse) tables.getTable('Registrations'); {console.log("Sent push:", pushResponse);} registrationsTable.where({ } deviceid: item.deviceid ); }).read({ }); success: function(registrations) { } registrations.forEach(function(registration) { }); console.log("Handle--" ,registration.handle) } console.log("DeviceID--" ,item.deviceid) } console.log("DeviceID--" ,item.text) console.log("DeviceID--" ,item.pin) Point3:デバイスとユーザーのマッピング ldap query (&(objectClass=user)(objectCategory=person)(userPrincip alName=" + upn + "))" 所有 Point4: PIN の生成と比較 入力された PIN をその場で比較(Hiddenに格納するとか) するのは危険 ランダムな PINを生成 PINの入力 ページを表示 ブラウザ画面 Authentication PINをストア 比較 転記 Mobile Services Registrations 作成したプロバイダーを AD FS に登録するには SNコマンドで公開キーを取得 SN -T "D:¥Visual Studio Projects¥....¥...¥bin¥Debug¥MyAuthenticationProvider.dll" Windows PowerShell を使用する PS C:¥> Set-location C:¥MyAuthenticationProvider PS C:¥>[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") PS C:¥> $publish = New-Object System.EnterpriseServices.Internal.Publish PS C:¥> $publish.GacInstall("C:¥MyAuthenticationProvider¥MyAuthenticationProvider.dll") #$publish.GacRemove("C:¥MyAuthenticationProvider¥MyAuthenticationProvider.dll") PS C:¥> $PublicKeyToken = "06419d7515549bf5" PS C:¥> $typeName = "MyAuthenticationProvider.AuthenticationAdapter, MyAuthenticationProvider, Version=1.0.0.0, PS Culture=neutral, PublicKeyToken=$PublicKeyToken" PS C:¥> Register-AdfsAuthenticationProvider -TypeName $typeName -Name "MyAuthenticationProvider" -Verbose #Unregister-AdfsAuthenticationProvider -Name "MyAuthenticationProvider" "C:¥Program Files¥Multi-Factor Authentication Server¥Register-MultiFactorAuthenticationAdfsAdapter.ps1" まとめ • AD FS はシングルサインオンのために存在するのではあり ません。企業のアクセス コントロール エンジンです • 追加認証プロバイダーはAD FS のアドインとして比較的簡 単に開発できます。 • 社内リソースは AD FS に集約し、アクセス制御の柔軟性を 向上させましょう。 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.