MN-261 Azure Active Directory を利用した多彩なユーザー認証 – The Microsoft Conference 2014

第2日目(2014年10月24日)の 稲葉 歩さんのセッション「Azure Active Directory を利用した多彩なユーザー認証」のメモを共有します。

 

ぶっちゃけ、私も「極力楽をしたい」です。そのために自分で経験しておきたい!そういう人には最適な話でした。

 

ユーザー認証は極力楽をしたい、極力セキュアに実現したい

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 のアプリ追加で表示されるアプリを作りたいです。