第2日目(2014年10月24日)の 稲葉 歩さんのセッション「Azure Active Directory を利用した多彩なユーザー認証」のメモを共有します。
ぶっちゃけ、私も「極力楽をしたい」です。そのために自分で経験しておきたい!そういう人には最適な話でした。
目次
- 1 ユーザー認証は極力楽をしたい、極力セキュアに実現したい
- 2 エンタープライズIT環境の拡大
- 3 パスワード管理の問題
- 4 イントラネットはよかった
- 5 さてどうしましょう?
- 6 インターネットの世界に変化
- 7 エンタープライズは?
- 8 AAD
- 9 パスワードが覚えきれない
- 10 AADのアカウント同期
- 11 DEMO
- 12 アプリ個別の作りこみは面倒で危険
- 13 標準プロトコルによる認証連携
- 14 Webアプリへの組み込み
- 15 AADへアプリの登録
- 16 ASP.NET Webアプリへの組み込み
- 17 方法は二つ
- 18 AADサインインが要求される
- 19 DEMO アプリケーションへの組み込み
- 20 SaaS型サービスの登録
- 21 テキストパスワードは危険
- 22 多要素認証の構成
- 23 以降は多要素認証が要求される
- 24 まとめ
- 25 SHIN-ICHI の感想
ユーザー認証は極力楽をしたい、極力セキュアに実現したい
Azure Active Directory をいかに活かせるのか?
エンタープライズIT環境の拡大
- PC -> タブレットスマートフォン
- イントラネット -> インターネット
- オンプレミス -> クラウド SaaS 型サービス
- 対象範囲が拡大している ミックス
パスワード管理の問題
- Saas型サービス
- クラウド上のシステム
- とにかくパスワードが増える
- アプリを作るたびに、それ毎に認証の仕組みを作らなきゃいけない
- IT管理者 社内のID管理ポリシーが全く適用できないところで増えていく
- ユーザー認証はどうすればいいのか?
- 外部からの攻撃も受けるインターネット セキュリティ強化も重要
イントラネットはよかった
- Active Directory があった
- Windows 統合認証 で組めばよかった
- IT管理者 ADに対して運用が確立されていた
- 外からの攻撃の脅威が非常に低いリスクとして見積もれた
さてどうしましょう?
- ユーザーはタブレットを使いたい
- クラウドや SaaSを使ってコストを削減したい
インターネットの世界に変化
- フェデレーション認証で楽ちん
- OneDrive
- Outlook.com
- Skype
- マイクロソフトID 認証処理を委譲
- サービスを提供する側は、そこに委譲することでらく
- ユーザーは覚えるパスワードが少なくて済む
- 多要素認証で安心
- ユーザーID
- パスワード
- ワンタイムパスワード
- 二つの要素がそろって初めてサインインできる
エンタープライズは?
- AAD Azure Active Directory
- SaaS 型サービス
- クラウド上のシステム
- AD(AADと連携)
- 内部型のシステム
AAD
- Active Directory とアカウント同期
- クラウドアプリも社内アカウントで利用できる
- セキュリティを多要素で
パスワードが覚えきれない
- パスワードがたくさん 覚えきれない
- 同じパスワードを使ってしまう
- 覚えやすい簡単なパスワードにしてしまう
- IDの名寄せでパスワードが漏えいしてしまう
AADのアカウント同期
- Azure Active Directory と Active Directory の同期
- パスワードのハッシュを同期
- IT管理者
- AADテナントの作為性
- カスタムドメインの指定
- AAD Sync or DirSync(D I R シンク)
DEMO
- Azure 管理画面
- ADD作成
- カスタムドメインの登録
- ローカルのドメインと統合をする
- DirSync をダウンロードしてインストールして同期
- ADでユーザーを作成 同期されると Azure管理画面にユーザーが増える
アプリ個別の作りこみは面倒で危険
- 複雑性、リセット、運用
- 色んな認証の仕組みが乱立すると 危険
- セキュリティに詳しくないディベロッパーが作ったら
- リスク セキュリティ強度が異なる
標準プロトコルによる認証連携
- WS-Federation, OpenID Connect
- オープンで世界でもまれた認証プロトコル ある程度強度ある 外部ベンダーもサポート
Webアプリへの組み込み
- Azure Active Directory にアプリを登録 (IT管理者)
- WIF による組み込み or ASP.NET Identiy による組み込み (開発者)
AADへアプリの登録
- アプリの名前
- サインオンURL アプリが動作している位置
- アプリケーションID アプリをユニークにするため、URLだが物理的に存在しなくてもいい
ASP.NET Webアプリへの組み込み
- OpenID Connect
- WS-Federation
方法は二つ
- ASP.NET Identity コードで組み込む こっちの方が簡単
- Windows Identity Foundation 構成ファイルで組み込む
AADサインインが要求される
- サインイン画面は Windows Azure Active Directory
- リダイレクトしてサインインされる
DEMO アプリケーションへの組み込み
- VSで Webアプリを開発
- AAD にアプリケーションを追加
- VS Startup1.cs に追加
- using Microsoft.Owin.Security, 〃.Cookies, 〃.WsFederation
- app.SetDefaultSignInAsAuthenticationType( Ws…… );
- app.UseCookieAuthentication( new C..A…(WS…));
- app.UseWsFederationAuthentication( AADに登録した ID, フェデレーションメタデータドキュメント );
- Windows統合認証を切る 設定変更
- アプリを開くと AAD サインイン画面が表示され、サインインすると アプリが開く
SaaS型サービスの登録
- ADD アプリケーションの追加で、外部のアプリケーションを選択
- ギャラリーからアプリケーションを追加
- SaaS型サービス側でも契約の設定も必要
テキストパスワードは危険
- アタックが容易
- マシンを大量にあつめてアタックすることが簡単になった
- アタックされるパスワードは もともと 社内のADのパスワード 非常に危ない
- 多要素認証 デバイスを持っていることを機械的にエミュレーションするのはさすがに難しいので
多要素認証の構成
- IT管理者 ユーザーを選択して多要素認証の有効化
- ユーザーが追加情報を登録ー最初にサインインしたときに要求される
- スマホ
- 音声メッセージ 電話
- テキストメッセージ SMS
以降は多要素認証が要求される
- ユーザーIDとパスワードでサインイン
- ワンタイムパスワードも要求されるので 入力
- サインイン成功
まとめ
- ユーザーはそのままのアカウントが外でも使える
- 管理者 面倒な認証機構はお任せです
- IT管理者 モバイル・クラウドでも ID管理が実現できます
- Cloud Identity (Blog) がおすすめ
- Office365 はすでにADDで動いている 自分で作らないでね
SHIN-ICHI の感想
Azure Active Directory 凄いですね!後のセッションでも出てきますが、AD FS と AAD の役割をしっかりと押さえることが、今の時代の Web エンジニアに求められる最低知識になりつつありますね。私はどちらかというと、AAD のアプリ追加で表示されるアプリを作りたいです。