...

【開発者歓迎】 多要素認証 Deep Dive

by user

on
Category: Documents
1

views

Report

Comments

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.
Fly UP