the microsoft conference 2014download.microsoft.com/download/0/4/a/04af9f4f-54f2-4eaa...asp.net web...
Post on 03-Oct-2020
17 Views
Preview:
TRANSCRIPT
The Microsoft Conference 2014
ROOM C
25
Azure Active Directory (AD) Premiumで複数のクラウドと社内の ID を統合
• EMS は Azure AD Premium を包含
• Office 365 などの SaaS アプリや社内アプリをシングルサインオンで利用可能
BitLocker でサーバーやクライアントのディスクを保護
OS がインストールされたドライブ、固定ドライブ、リムーバブルドライブを暗号化で保護
改善のための要件: ソリューション
Office 365 など 他社クラウド
SaaSアプリ
社内アプリシングルサインオンで利用可能
ディスク全体または使用領域のみを暗号化して保護
PC やディスクの紛失、盗難時に機密を維持
Agenda
イントロダクションエンタープライズ IT の変化とユーザー認証のトレンド
AAD を利用した安全なユーザー認証社内 AD と AAD のアカウント同期AAD を利用したユーザー認証多要素認証の追加
まとめ
Appendix
The Microsoft Conference 2014
エンタープライズ IT 環境の拡大
PC
イントラネット
オンプレミス
タブレットスマートフォン
インターネット
クラウド
SaaS 型サービス
パスワード管理の問題
クラウド上のシステム
SaaS 型サービス
インターネット
ユーザー認証は大丈夫?
さてどうしましょう?
イントラネットは良かった・・・
Active Directory
内部設置型のシステム
イントラネット
内部設置型のシステム
内部設置型のシステム
その頃インターネットでは
フェデレーション認証で楽ちん
マイクロソフト ID(認証処理を委譲)
OneDrive
Outlook.com
Skype
ユーザーID
/パスワード
セキュリティトークン
②
①トークンを
要求③
セキュリティトークン
④
セキュリティトークン
セキュリティトークン
多要素認証で安心
システム
12:38
ワンタイム
トークン
ユーザー IDパスワード
ワンタイム
トークン
ユーザー ID&
パスワード ②
①
③
ワンタイムパスワード
+
エンタープライズは?
エンタープライズならAAD
Active Directory内部設置型のシステム
クラウド上のシステム
SaaS 型サービス
イントラネット
インターネット
AzureActive
Directory
同期
The Microsoft Conference 2014
Azure Active Directory
Active Directory とのアカウント同期
クラウドアプリも社内アカウントで利用可能
多要素認証によるセキュリティの強化
パスワードが覚えきれない!
Active Directory内部設置型のシステム
クラウド上のシステム
SaaS 型サービス
イントラネット
インターネット
アカウントデータベース
アカウントデータベース
パスワード
パスワード
パスワード
パスワードパスワード
パスワードパスワード
パスワード
AAD へのアカウント同期
Active Directory内部設置型のシステム
クラウド上のシステム
SaaS 型サービス Azure
ActiveDirectory
同期
イントラネット
インターネットパスワード
アカウント同期の構成
AADディレクトリ
の作成
カスタムドメインの
指定
AAD Syncor
DirSyncを実行
IT 管理者
AAD Sync / DirSync で同期
The Microsoft Conference 2014
DEMOAD ⇔ AAD のアカウント同期
アプリ個別の作りこみは面倒で危険
Active Directory内部設置型のシステム
クラウド上のシステム
SaaS 型サービス
イントラネット
インターネット
アカウントデータベース
アカウントデータベース
標準プロトコルによる認証連携
Active Directory内部設置型のシステム
クラウド上のシステム
SaaS 型サービス Azure
ActiveDirectory
同期
イントラネット
インターネット
WS-Federation, OpenID Connect, etc…
Web アプリへの組込み
Windows IdentityFoundation による
組込み
ASP.NET Identityによる組込み
orAzure Active Directory
にアプリを登録
IT 管理者 開発者
AAD へアプリを登録
アプリの名前
サインオン URL
アプリケーション ID
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>
AAD サインインが要求される
リダイレクト
サインイン
The Microsoft Conference 2014
DEMOアプリケーションへの組込
SaaS 型サービスの登録
Azure Active Directoryにアプリを登録
ユーザ権限の割り当て
IT 管理者
SaaS 型サービスの登録
The Microsoft Conference 2014
DEMOSaaS サービスと認証連携
テキストパスワードは危険!
Active Directory内部設置型のシステム
クラウド上のシステム
SaaS 型サービス Azure
ActiveDirectory
同期
イントラネット
インターネット
あぶない!
多要素認証による強化
Active Directory内部設置型のシステム
クラウド上のシステム
SaaS 型サービス Azure
ActiveDirectory
同期
イントラネット
インターネット
パスワード
デバイス
多要素認証の構成
IT 管理者 開発者 ユーザー
多要素認証の有効化
追加情報を登録
IT 管理者が MFA を有効化
ユーザーが追加情報を登録
スマホアプリ
音声メッセージ(電話)
テキストメッセージ(SMS)
http://aka.ms/MFASetup
以降は多要素認証が要求される
まずはユーザー ID とパスワードでサインイン
ワンタイムパスワードも必要になる
The Microsoft Conference 2014
DEMO多要素認証の有効化
まとめ
慣れ親しんだアカウントが外でも使えます
ユーザー
開発者
IT 管理者
面倒な認証機構はお任せです
従来同様の ID 管理・運用と多要素認証による強化
リファレンス
MSDNhttp://msdn.microsoft.com/library/azure/jj673460.aspx
TechNethttp://technet.microsoft.com/ja-jp/library/hh967619.aspx
Cloud Identity (Blog)http://www.cloudidentity.com
関連セッション
MN-242Dynamic Identity Framework
~クラウド時代適応のための ID 管理手法~
MN-271多要素認証 Deep Dive
~ハイブリット認証基盤だからこそ実現できる
柔軟で高機能な多要素認証~
もしかして・・・
Office 365 をご利用いただいていますか?
既に Azure Active Directory のユーザーです
あとは利用するだけ!!!
The Microsoft Conference 2014
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を指定
テナント名部分は適宜変更
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を指定(登録したアプリの構成タブから取得)
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およびセッション認証モジュールを追加
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
マルチフォレスト統合(AAD Sync)
AD DS AD DS ① AD DS ② AD DS ③
AAD AAD
AAD SyncDirSync
1:1構成 N:1構成
AD DS : Active Directory Directory Services
シングルサインオン(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
ネイティブアプリ認証 (OAuth 2.0)
ネイティブアプリ
ADAL
Web サービス(ASP.NET Web API 等)
Azure Active Directory
認証ダイアログ
OA
uth
2.0
ADAL : Active Directory Authentication Libraries
ネイティブアプリの登録
API側とは別に登録 アクセス先の APIを指定
ネイティブアプリ認証サンプル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側の認証設定
ネイティブアプリ側のアクセスコード
© 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.
top related