Hybrid Identity ~...

Preview:

Citation preview

ROOM

B

7:37 AM

Authentication/Authorization

Platform

SAML, WS-Fed, OpenID Connect, Oauth 2.0に対応

Windows 統合認証Ldap認証、パスワード等

Application

5

認証と公開の基本方針

• ハイブリッド認証基盤• Azure Active Directory• Active Directory ドメインサービス+ Active Directory フェデレーションサービス• 今後開発する新しいアプリケーションは OpenID Connect 対応

• Azure Active Directoryor Windows Server 2016 Active Directory フェデレーションサービス

• オンプレミスにアクセスするための認証機能付きリバースプロキシー• オンプレミス :Web Application Proxy(WAP)• クラウド :Azure Application Proxy

認証しなければならない回数を極力減らす(できれば、OS サインイン時のみ)ID とパスワードの管理はオンプレミスの Active Directory

Scenario Protocol AD FS Azure ADNative client OAuth 2.0 auth code grant, public client 2012 R2 ○Web sign in WS-Federation 2012 ~ ○

SAML 2.0 2012 ~ ○Web to Web API

OpenID Connect 2016 ○

OAuth 2.0 implicit grant 2016 ○

OAuth 2.0 auth code grant, confidentialclient

2016 ○

Server toWeb API

OAuth 2.0 client credential grant 2016 ○

OAuth 2.0 on behalf of 2016 ○

7

Azure MFA

認証基盤:ハイブリッドな Active Directory

オンプレミス

パブリッククラウド

Azure Active Directory

• オンプレミスのIDとアクセス制御• 長年蓄積されたオンプレミスの ITガバナンス

• クラウドサービスに対するIDとアクセス制御

• サービス間のシングルサインオン

IdentityFederation

• オンプレミス AD または Azure AD のいずれかにアプリケーションを接続する• ユーザーのパスワードはオンプレミスで集中管理

8

認証機能付きリバースプロキシー

Azure MFA

オンプレミス

パブリッククラウド

Azure Active Directory

IdentityFederation

Azure Application Proxy

ProxyConnector

Web Application Proxy

Active Directory への代理認証機能を持つ

Active Directory への代理認証機能を持つ

事前認証

事前認証

9

覚えておきたい裏技:アクセスパネル• Azure AD に接続されたアプリケーションはアクセスパネルに登録できる• アクセスパネルに登録されたアプリケーション間は SSO

• アクセスパネルにサインインすれば、アプリケーションの認証は必要ない

Access Panel MyApps

10

MyAppsアプリ for Android / iOS

11

覚えておきたい裏技:Azure ADパスワード連携

Access Panel MyApps

Azure AD にサインインしていれば、アクセスパネルがパスワード入力を代行してくれる

事前に登録しておく

Formに入力する ID とパスワードはAzure ADに暗号化して保存

12

覚えておきたい裏技:Web Application Proxy 認証の継承• Web Application Proxy で一度認証されると、ブラウザセッションが生きている間は他のアプリケーションにも認証が継承される

• フェデレーションによる認証も継承される

App1

App2

事前認証

アクセス App1App2

スルー

認証要

Traditional

既存アプリのタイプ(いずれもオンプレミス) 外部公開方法

認証

Windows 統合認証 AD FS + WAP Azure AD

デスクトップアプリ

認証方式

Windows 統合認証RemoteApp(on-prem) +Web Application Proxy

(2016)○ ○

ldap など RemoteApp +Web Application Proxy

OrAzure RemoteApp +

Web Application Proxy

認証の統合(継承)はプロトコルの仕様上困難なためアプリ側のカスタマイズが必要

ローカル

認証なし Azure RemoteApp +Web Application Proxy ○

既存アプリのタイプ(いずれもオンプレミス) 外部公開方法

認証の統合先Windows 統合認証 AD FS + WAP Azure AD

WEBアプリ認証方式

Windows 統合認証Azure App Proxy ○(w/ Proxy Connector) ○ (Access Panel)

Web Application Proxy ○ ○クレーム非対応 ○ (Access Panel-existing fed)

Basic認証 Web Application Proxy(WS 2016) ○クレーム非対応 ○ (Access Panel –

Existing fed)HTML ベースのサインインページ

Azure App Proxy orWeb Application Proxy

○ (Access Panel –password fed)

SAMLトークン対応アプリ(SAML 2.0/WS-Fed)

Web Application Proxy ○クレーム対応Azure App Proxy ○

OpenID Connect/OAuth2.0 対応アプリ

Web Application Proxy(WS 2016) ○(WS2016) ○

○(WS2016) ○その他認証 カスタマイズ要

認証なしWeb Application Proxy ○ ○クレーム非対応

Azure App Proxy ○(Access Panel)

Access Panel MyApps

Access Panel MyAppsAzure App Proxy

Modern

25

モダンアプリケーションの種類とアクセスパターン

IdP を持つ SaaS

デバイスネイティブアプリ

クラウド上のAPI WEBアプリ

ブラウザ

7:37 AM

2 13 4

26

①WEBアプリ• SAML 2.0/WS-Federation または OpenID Connect / Oauth 2.0 どちらでも

ブラウザ

1

2

Oauth-Authorization

WEB APP Oauth-Token

34

Azure AD

Cookie

認証

SAML

WS-Fed

ブラウザ

認証

1

234

Cookie

クレームをチェック

WEB APPAuthZ CodeAuthN Token

OpenID Connect には続きがあります(次ページ)

Azure AD Graph

27

ブラウザ

Oauth-Authorization

WEB APP

Oauth-Token

Azure ADAuthZ CodeAuthN Token

Azure AD Graph

5Refresh Token

Access Token

User Info

67

8

• SAML トークンにはユーザー情報がクレームとして格納されている

• OpenID Connect の場合は、ユーザー情報を取得するために Graph API にアクセスする必要がある

28

Azure ADBrowser Web AppOAuth-

authorizeOAuth-token graph

Navigate to your application

Post authN token and authZ code to your application’s redirect URL

No session,send authNrequest

Verifytokensignature

302 redirect for sign in

OpenID Connect request

(user signs in)

Set cookie and return user to page they started on

Redeem authZ code

Return access token and refresh token

Call the Graph API

OpenID Connect ログオンフロー

29

② IdPを持つ SaaSとの連携(異なるIdP間の連携)

Sync WS-Fed SAML 2.0(for Shibboleth)Office 365

Azure Active Directory

• 異なる IdP 間の Identity Federation は SAML/WS-Federation を使用する• Identity の同期が必要

• OpenID Connect/Oauth 2.0 には現時点で Id Federation は実装されていない

30

Azure ADアプリケーションギャラリー

※ ISV 様が自社開発 SaaSアプリをギャラリーに登録申請することもできます

アクセスパネルhttp://myapps.microsoft.com/

Web page titlehttps://webapps.Microsoft.com/

31

SaaS

もし SaaSアプリをOpenID Connect/OAuth2.0のみで作成したら• 何の問題もない。• IdP が OpenID Connect だけではなく SAML 2.0/WS-Fed もサポートしていることが重要

Oauth-Authorization

App 本体

Oauth-Token

IdP

外部 IdP

SAML

WS-Fed フェデレーションOpenID Connect / OAuth 2.0

外部 IdP

32

③WEB Service → WEB API

ブラウザ

Oauth-Authorization

Web App

Oauth-Token

IdP

Cookie

• API へのアクセス認可プロトコルは OAuth2.0 一択

Authorization Code

Access Token

Refresh Token

1

WEB API

2

4

認可

Access Tokenの再取得

3

Azure AD - OAuth 2.0 EndPointに合わせて開発する

Azure AD を IdPとして信頼

SecurityPipeline

1Hでタイムアウト

33

④ネイティブアプリ• OpenID Connect / OAuth 2.0 での実装が事実上のスタンダード

• 直接実装(ADAL)も可能だが、Azure Mobile Service の利用をお勧め

OAuth-Authorization

OAuth-Token

IdP

7:37 AM

Application

Web API1

Application

4

Code

35

Sign-in

2

34

アプリケーションを Azure ADに対応させるには

ApplicationAAD Native

モバイルアプリAzure MobileService

OR

35

Visual Studio 2015(現在 RC)• WEB アプリやWindows アプリに加え、Android、iOSアプリケーションの開発も可能

• インスタントにAzure AD に結合

Azure Mobile Service との結合設定画面

WEB アプリと Azure AD との結合設定画面

TPM

Windows 10とネイティブアプリケーション• 通常、ネイティブアプリケーションは「隔離」されているため、他のアプリケーションとトークンを共有することができない

• Windows 10 ではネイティブアプリを「Web Account Manager」に対応させることで完全な SSO が可能

Web Account Provider1

Azure AD

Native Application

Token Broker

Token Broker plug-in

Web Account Manager

Token を持っていればそれを利用。持っていなければ要求。

iOS Android

Native

C#/JSADAL .NET + Xamarin

Apache Cordova Plugin for ADAL

ADAL .NETADAL Obj-C ADAL Android

WebAccountManager

※現時点では未提供

• ADAL 対応アプリ間での SSO• 多要素認証にも対応• Intune 連携によりデバイスの条件付きアクセスが可能

39

• ソーシャル ID を使用して Azure AD のアプリを使用する• セルフサービス機能

• サインアップ• パスワードリセット• プロファイル編集

• サインイン画面のカスタマイズ

Azure AD B2C: “IdMaaS for applications”まもなく Preview 開始予定

コンシューマー向けアプリ• キャンペーン• ご意見募集• 会員制ページ

40

Azure AD B2C

41

まとめ疲れましたね最後にまとめておきましょう

42

認証と公開をデザインする鍵Traditional• ハイブリッド認証基盤• Azure アクセスパネル• Azure Application Proxy、Web Application Proxy

Modern• SAML による Identity Provider 間の Federation• 新規アプリは OpenID Connect に対応

• WEB、WEB API、ネイティブアプリ• モバイルサービスを活用するとコスト削減

• 開発には Visual Studio が最適

43

Azure ADを中心としたインフラの全体像

44

Next Step:モバイルデバイスの管理

Azure RMS

AzureMFA

Intune

MDM,ガバナンス

デバイス内データ漏えい防止

デバイス外データ漏えい防止

SSOアクセス制御

Hybrid Active Directory

認証強化

46

現在(より少し前)までの主流

同期

認証の範囲 • 複数の認証サーバー• それぞれの認証サーバーは独立

• Credentialも独立• 認証サーバー間は同期(含パスワード)

• アプリケーションはどこかに所属• 場合によっては独自認証

• 認証のターゲットは「人」

• やっちゃいけないことはルールで規定

47

どこに問題があるのか?

WEBApp

業務パッケージ(Local AuthN)

MailSV

WEBAPI

AD DS

LDAP

IE

Safari

利用者 デバイス アプリケーション データ

Client App Server App API

IdP

個人デバイス

48

共通認証基盤の基本的な考え方~オンプレミスクラウドとモバイルデバイスをどのように“認証基盤”に接続するか

• 基本的に現状維持(無理にクラウド移行は考えないのが吉)• オンプレミスに閉じたセキュリティも重要ただし!• 単なる「認証サーバー」から「アイデンティティプロバイダー」化へ

• オーソリティとなる認証サーバー/ディレクトリを決める• モダナイズのポイント

• SAML/WS-Federation プロトコルへの対応(クラウド連携、システム間連携)• デバイス認証(モバイルデバイス連携)• コンディショナル・アクセス制御

• 認証の強化• 多要素、バイオメトリクス

49

マイクロソフト製品での実装例既存の Active Directoryドメインを拡張する• モダンなプロトコル(SAML/WS-Fed/Oauth2.0)への対応• 外部からの認証要求の受け入れ

ディレクトリ認証サーバー

Kerberos

セキュリティトークンサービス

その他認証サーバー

業務アプリサーバー Authority

SAML 2.0/WS-Federation

同期

WS-FedhttpsSAML

リバースプロキシー(含認証)

ConditionalAccess

MicrosoftIdentityManager

Kerberos/ldap/NTLM Firewall

WS-FedhttpsSAML

AD DS:Active Directory Domain ServiceAD FS:Active Directory Federation ServiceWAP:Web Application Proxy

50

新たな登場人物により設計はより複雑に。。。

同期

認証の範囲

7:37 AM

クラウドアプリ

モバイルデバイスモバイルアプリ

51

認証基盤単体の要件 基盤の安全性 管理のしやすさ、自動化 各種機能(証跡、セキュリティポリシー等) セルフサービス(パスワードのリセット等)

アプリケーション、デバイスからの要求 認証プロトコル(NTLM、ldap、Kerberos、SAML-P等) 柔軟なアクセス制御と認証強度

認証基盤の設計に影響を与える要素

周囲の状況が認証基盤を選ぶ

52

クラウドとモバイルは切っても切れないクラウドにはモバイルが、モバイルにはクラウドがもれなくついてくる

53

Enterprise製品もモバイルデバイスをターゲットに

“クラウドだけ“ or “モバイルだけ”はセキュリティ上あり得ない

54

共通認証基盤の基本的な考え方~クラウド(注意)「認証サーバを IaaSに移行する」ことを「認証のクラウド対応」とは言わない

「標準規格」と「オンプレミスとの連携」を意識することが重要

• IDMaaS(Identity Management as a Service)• オンプレミスのディレクトリを集約• 以下のプロトコルに対応

• SAML 2.0/WS-Federation• Open ID Connect / OAuth 2.0

• オンプレミス IdP との連携• 他クラウドサービス、コンシューマー向けサービスとの連携• 業務アプリケーション連携のためのインターフェースと開発ツール

• OMA-DM に対応した MDM/MAM as a Service• 利用者はモバイルデバイスを自由に選ぶので、標準規格による管理機能が重要