the microsoft conference 2014download.microsoft.com/download/0/4/a/04af9f4f-54f2-4eaa...asp.net web...

52
The Microsoft Conference 2014 ROOM C

Upload: others

Post on 03-Oct-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

The Microsoft Conference 2014

ROOM C

Page 2: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

25

Azure Active Directory (AD) Premiumで複数のクラウドと社内の ID を統合

• EMS は Azure AD Premium を包含

• Office 365 などの SaaS アプリや社内アプリをシングルサインオンで利用可能

BitLocker でサーバーやクライアントのディスクを保護

OS がインストールされたドライブ、固定ドライブ、リムーバブルドライブを暗号化で保護

改善のための要件: ソリューション

Office 365 など 他社クラウド

SaaSアプリ

社内アプリシングルサインオンで利用可能

ディスク全体または使用領域のみを暗号化して保護

PC やディスクの紛失、盗難時に機密を維持

Page 3: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

Agenda

イントロダクションエンタープライズ IT の変化とユーザー認証のトレンド

AAD を利用した安全なユーザー認証社内 AD と AAD のアカウント同期AAD を利用したユーザー認証多要素認証の追加

まとめ

Appendix

Page 4: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

The Microsoft Conference 2014

Page 5: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

エンタープライズ IT 環境の拡大

PC

イントラネット

オンプレミス

タブレットスマートフォン

インターネット

クラウド

SaaS 型サービス

Page 6: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

パスワード管理の問題

クラウド上のシステム

SaaS 型サービス

インターネット

ユーザー認証は大丈夫?

Page 7: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

さてどうしましょう?

Page 8: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

イントラネットは良かった・・・

Active Directory

内部設置型のシステム

イントラネット

内部設置型のシステム

内部設置型のシステム

Page 9: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

その頃インターネットでは

Page 10: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

フェデレーション認証で楽ちん

マイクロソフト ID(認証処理を委譲)

OneDrive

Outlook.com

Skype

ユーザーID

/パスワード

セキュリティトークン

①トークンを

要求③

セキュリティトークン

セキュリティトークン

セキュリティトークン

Page 11: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

多要素認証で安心

システム

12:38

ワンタイム

トークン

ユーザー IDパスワード

ワンタイム

トークン

ユーザー ID&

パスワード ②

ワンタイムパスワード

Page 12: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

エンタープライズは?

Page 13: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

エンタープライズならAAD

Active Directory内部設置型のシステム

クラウド上のシステム

SaaS 型サービス

イントラネット

インターネット

AzureActive

Directory

同期

Page 14: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

The Microsoft Conference 2014

Page 15: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

Azure Active Directory

Active Directory とのアカウント同期

クラウドアプリも社内アカウントで利用可能

多要素認証によるセキュリティの強化

Page 16: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

パスワードが覚えきれない!

Active Directory内部設置型のシステム

クラウド上のシステム

SaaS 型サービス

イントラネット

インターネット

アカウントデータベース

アカウントデータベース

パスワード

パスワード

パスワード

パスワードパスワード

パスワードパスワード

パスワード

Page 17: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

AAD へのアカウント同期

Active Directory内部設置型のシステム

クラウド上のシステム

SaaS 型サービス Azure

ActiveDirectory

同期

イントラネット

インターネットパスワード

Page 18: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

アカウント同期の構成

AADディレクトリ

の作成

カスタムドメインの

指定

AAD Syncor

DirSyncを実行

IT 管理者

Page 19: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

AAD Sync / DirSync で同期

Page 20: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

The Microsoft Conference 2014

DEMOAD ⇔ AAD のアカウント同期

Page 21: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

アプリ個別の作りこみは面倒で危険

Active Directory内部設置型のシステム

クラウド上のシステム

SaaS 型サービス

イントラネット

インターネット

アカウントデータベース

アカウントデータベース

Page 22: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

標準プロトコルによる認証連携

Active Directory内部設置型のシステム

クラウド上のシステム

SaaS 型サービス Azure

ActiveDirectory

同期

イントラネット

インターネット

WS-Federation, OpenID Connect, etc…

Page 23: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

Web アプリへの組込み

Windows IdentityFoundation による

組込み

ASP.NET Identityによる組込み

orAzure Active Directory

にアプリを登録

IT 管理者 開発者

Page 24: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

AAD へアプリを登録

アプリの名前

サインオン URL

アプリケーション ID

Page 25: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

ASP.NET Web アプリへの組込み

OpenID Connect

WS-Federation

ASP.NET Identity[ assembly: OwinStartup ( typeof ( Samples.Startup1 ) ) ]

public class Startup1 {

public void Configuration ( IAppBuilder app ) {// コードで組み込む

}

}

Windows Identity Foundation

<configuration>

<system.identityModel><!--構成ファイルで組み込む -->

</system.identityModel>

</configuration>

Page 26: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

AAD サインインが要求される

リダイレクト

サインイン

Page 27: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

The Microsoft Conference 2014

DEMOアプリケーションへの組込

Page 28: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

SaaS 型サービスの登録

Azure Active Directoryにアプリを登録

ユーザ権限の割り当て

IT 管理者

Page 29: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

SaaS 型サービスの登録

Page 30: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

The Microsoft Conference 2014

DEMOSaaS サービスと認証連携

Page 31: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

テキストパスワードは危険!

Active Directory内部設置型のシステム

クラウド上のシステム

SaaS 型サービス Azure

ActiveDirectory

同期

イントラネット

インターネット

あぶない!

Page 32: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

多要素認証による強化

Active Directory内部設置型のシステム

クラウド上のシステム

SaaS 型サービス Azure

ActiveDirectory

同期

イントラネット

インターネット

パスワード

デバイス

Page 33: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

多要素認証の構成

IT 管理者 開発者 ユーザー

多要素認証の有効化

追加情報を登録

Page 34: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

IT 管理者が MFA を有効化

Page 35: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

ユーザーが追加情報を登録

スマホアプリ

音声メッセージ(電話)

テキストメッセージ(SMS)

http://aka.ms/MFASetup

Page 36: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

以降は多要素認証が要求される

まずはユーザー ID とパスワードでサインイン

ワンタイムパスワードも必要になる

Page 37: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

The Microsoft Conference 2014

DEMO多要素認証の有効化

Page 38: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

まとめ

慣れ親しんだアカウントが外でも使えます

ユーザー

開発者

IT 管理者

面倒な認証機構はお任せです

従来同様の ID 管理・運用と多要素認証による強化

Page 39: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

リファレンス

MSDNhttp://msdn.microsoft.com/library/azure/jj673460.aspx

TechNethttp://technet.microsoft.com/ja-jp/library/hh967619.aspx

Cloud Identity (Blog)http://www.cloudidentity.com

Page 40: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

関連セッション

MN-242Dynamic Identity Framework

~クラウド時代適応のための ID 管理手法~

MN-271多要素認証 Deep Dive

~ハイブリット認証基盤だからこそ実現できる

柔軟で高機能な多要素認証~

Page 41: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

もしかして・・・

Office 365 をご利用いただいていますか?

既に Azure Active Directory のユーザーです

あとは利用するだけ!!!

Page 42: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

The Microsoft Conference 2014

Page 43: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

WS-Federation サンプルコードpublic static void ConfigureWsFederation(IAppBuilder app){

// 認証の種類を設定app.SetDefaultSignInAsAuthenticationType(

WsFederationAuthenticationDefaults.AuthenticationType);// クッキー認証を有効化app.UseCookieAuthentication(

new CookieAuthenticationOptions(){

AuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType});

// WS-Federation の組込みapp.UseWsFederationAuthentication(

new WsFederationAuthenticationOptions(){

Wtrealm = "http://appid.azlab01.asia/MSC2014.Demo.Web.Mvc",MetadataAddress = "https://login.windows.net/azlab01.asia/"

+ "federationmetadata/2007-06/federationmetadata.xml"});

}

アプリケーション IDを指定

テナント名部分は適宜変更

Page 44: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

OpenID Connect サンプルコードpublic static void ConfigureOpenIdConnect(IAppBuilder app){

// 認証の種類を設定app.SetDefaultSignInAsAuthenticationType(

OpenIdConnectAuthenticationDefaults.AuthenticationType);// クッキー認証を有効化app.UseCookieAuthentication(

new CookieAuthenticationOptions(){

AuthenticationType = OpenIdConnectAuthenticationDefaults.AuthenticationType});

// OpenID Connect の組込みapp.UseOpenIdConnectAuthentication(

new OpenIdConnectAuthenticationOptions(){

ClientId = "f4b98e1d-7b5d-47d3-85fe-bb17cef425a4",Authority = "https://login.windows.net/azlab01.asia/"

});} テナント名部分は適宜変更

クライアント IDを指定(登録したアプリの構成タブから取得)

Page 45: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

WS-Federation 構成サンプル<configuration><configSections>

<section name="system.identityModel"type="System.IdentityModel.Configuration.SystemIdentityModelSection,

System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /><section name=“system.identityModel.services"

type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

</configSections>

<system.web><authorization><deny users="?" />

</authorization></system.web>

<system.webServer><modules><add name="WSFederationAuthenticationModule"

type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

preCondition="managedHandler" /><add name="SessionAuthenticationModule"

type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

preCondition="managedHandler" /></modules>

</system.webServer>

WIF の有効化

認証されてないユーザーを拒否

WS-Federationおよびセッション認証モジュールを追加

Page 46: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

WS-Federation 構成サンプル<system.identityModel>

<identityConfiguration><securityTokenHandlers><add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler,

System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /><remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler,

System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /></securityTokenHandlers><issuerNameRegistry type="AADStudy.WebForms.Utils.DatabaseIssuerNameRegistry, AADStudy.WebForms" /><audienceUris>

<add value="https://appid.azlab01.asia/MSC2014.Demo.Web.Mvc" /></audienceUris><certificateValidation certificateValidationMode="None" />

</identityConfiguration></system.identityModel>

<system.identityModel.services><federationConfiguration><cookieHandler requireSsl="true" /><wsFederation passiveRedirectEnabled="true"

issuer="https://login.windows.net/azlab01.asia/wsfed"realm="https://appid.azlab01.asia/MSC2014.Demo.Web.Mvc"requireHttps="true" />

</federationConfiguration></system.identityModel.services>

認証クッキーの暗号化方式を指定

アプリ ID

ログイン URL等のメタデータを取得する URL

アプリ ID

Page 47: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

マルチフォレスト統合(AAD Sync)

AD DS AD DS ① AD DS ② AD DS ③

AAD AAD

AAD SyncDirSync

1:1構成 N:1構成

AD DS : Active Directory Directory Services

Page 48: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

シングルサインオン(AAD + ADFS)

AAD

AD FS

AD DS

WAP

クラウド上の

Web システム

信頼関係

社内設置型のWeb システム

イントラネット

インターネット

要パスワード+多要素認証

DirSyn

c / AA

D Syn

c

パスワード

入力不要(SSO)

AD FS : Active Directory Federation Services WAP : Web Application Proxy

Page 49: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

ネイティブアプリ認証 (OAuth 2.0)

ネイティブアプリ

ADAL

Web サービス(ASP.NET Web API 等)

Azure Active Directory

認証ダイアログ

OA

uth

2.0

ADAL : Active Directory Authentication Libraries

Page 50: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

ネイティブアプリの登録

API側とは別に登録 アクセス先の APIを指定

Page 51: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

ネイティブアプリ認証サンプルpublic static void ConfigureOAuth2(IAppBuilder app){

app.UseWindowsAzureActiveDirectoryBearerAuthentication(new WindowsAzureActiveDirectoryBearerAuthenticationOptions(){

Audience = "http://appid.azlab01.asia/MSC2014.Demo.Web.Api",Tennant = “azlab01.asia"

});}

public async void Run(){

var acx = new AuthenticationContext("https://login.windows.net/azlab01.asia");var token = await acx.AcquireTokenAsync("http://appid.azlab01.asia/MSC2014.Demo.Web.Api",

"d8fed4c3-73a7-44a7-af82-65c7983d245a", new Uri("https://localhost:44302/redirecturi"));

var client = new HttpClient();client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(

"Bearer", token.AccessToken);client.BaseAddress = new Uri("https://localhost:44302/api/");var response = await client.GetAsync("HelloWorld");

API側の認証設定

ネイティブアプリ側のアクセスコード

Page 52: The Microsoft Conference 2014download.microsoft.com/download/0/4/A/04AF9F4F-54F2-4EAA...ASP.NET Web アプリへの組込み OpenID Connect WS-Federation ASP.NET Identity [ assembly:

© 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.