Hybrid Identity ~...
Transcript of Hybrid Identity ~...
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• 利用者はモバイルデバイスを自由に選ぶので、標準規格による管理機能が重要