0502 windwos server 2008 card space 新一代身份驗證機制

49
新新新新新新新 - Windows Card Space 新新新 新新新新新新新新 [email protected] http://teacher.allok.com.tw MCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCSD, MCT, MVP

Upload: timothy-chen

Post on 25-May-2015

2.530 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

新一代身份驗證機制 - Windows Card Space

曹祖聖台灣微軟資深講師[email protected]://teacher.allok.com.twMCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCSD, MCT, MVP

Page 2: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

大綱Web 應用程式身份驗證所面臨的問題

過去的身份驗證機制

什麼是 CardSpace ?

CardSpace 的運作機制

各種應用方式

登入頁面的改變

Page 3: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

大綱Web 應用程式身份驗證所面臨的問題

過去的身份驗證機制

什麼是 CardSpace ?

CardSpace 的運作機制

各種應用方式

登入頁面的改變

Page 4: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

身份識別上面臨的問題

• Internet 太危險了 !

小偷、身份偽造、釣魚網站 …

username + password 的保護太弱

• 企業面臨管理大量身份識別資料的問題

www.antiphishing.org

22% 不購買

25% 不瀏覽

Page 5: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

我們需要什麼 ?

• 任何人在任何地點都可以使用

• 讓使用者可以 100% 控管自己的身份資料

移除系統之間身份識別障礙

簡單、一致、安全的身份識別系統

Page 6: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

大綱Web 應用程式身份驗證所面臨的問題

過去的身份驗證機制

什麼是 CardSpace ?

CardSpace 的運作機制

各種應用方式

登入頁面的改變

Page 7: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

IIS 7.0 存取控制

1. 檢查來源 IP

2. 檢查使用者

3. 檢查伺服器存取權限

4. 檢查共用權限 ( 如果是 UNC 路徑 )

5. 檢查 NTFS 權限

Page 8: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

身份驗證介紹身份驗證介紹• IIS IIS 中的身份驗證中的身份驗證

匿名

基本

摘要

Kerberos

NTLM

Server

Core

• 要求進入 要求進入 IISIIS• IIS IIS 將要求轉送到匿名 將要求轉送到匿名

provider: provider: IIS IIS 建立路徑建立路徑 (w3svc/1/root) (w3svc/1/root) 並且檢並且檢

查匿名證是否有啓用查匿名證是否有啓用是是 : : 提供路徑與提供路徑與 Anon.users token Anon.users token

給給 authorization managerauthorization manager否否 : IIS : IIS 將路徑交給其它每一個 將路徑交給其它每一個

providerprovider ,檢查該路徑是否啓用,檢查該路徑是否啓用該 該 provider provider 提供的驗證提供的驗證

• 每一個有啓用的 每一個有啓用的 provider provider 檢檢查查使用者身份 之後,會回查查使用者身份 之後,會回傳適當的表頭給 傳適當的表頭給 IISIIS

Page 9: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

IIS 7.0 IIS 7.0 身份驗證流程身份驗證流程

NTLM

Basic

Anonymous

IISServerCore

Kerberos

Digest

Request received by IIS

AuthenticationProviders

Passport

Page 10: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

Client

IIS 伺服器

default.htm

Web 瀏覽器

匿名驗證流程匿名驗證流程

Page 11: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

匿名驗證帳號

• 匿名帳號 : IUSR_[ 電腦名稱 ]

IIS 安裝時建立,並加入 Guests 系統群組• 請注意套用到 Guests 的自訂原則

預設狀況下, IUSR 帳號被授予所有資料夾的讀取權限

IUSR 帳號也使用在 FTP 伺服器的匿名驗證上

• IIS Sub-authentication

避免密碼同步的問題

Page 12: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

基本驗證流程

Base64 編碼的使用者名稱和密碼

401 Error

IIS 伺服器

default.htm

Web 瀏覽器

Page 13: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

基本驗證

• 使用 Base64 編碼來傳送密碼

• 優點RFC 相容 (RFC 2617)

支援透過 Web Proxy

瀏覽器支援廣泛

如果配合 SSL ,是很好的驗證方式

• 缺點使用者需要輸入 Windows 帳號

密碼直接傳送,如果沒有 SSL 配合,非常不安全

Page 14: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

整合式 Windows 驗證

Negotiate要求

Kerberos NTLM

首先試試 接下來再試

1.1. 也可以只用 也可以只用 NTLMNTLM ,但不能只用 ,但不能只用 KerberosKerberos2.2. 兩者都不支援 兩者都不支援 Web ProxyWeb Proxy

Page 15: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

整合式 Windows 驗證• MetaBase 屬性 : AuthNTLM

• 如果同時啓用基本驗證和 整合式 Windows 驗證, Internet Explorer

會使用 整合式 Windows 驗證

• NTAuthenticationProviders 屬性 :

Negotiate,NTLM

NTLM

• NTAuthenticationProviders 沒有任何管理介面,必須使用 adsutil.vbs

工具或 Metabase Explorer 來修改

Page 16: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

NTLM 的行為• 連線導向

每個要求永遠使用相同連線必須啓動 HTTP Keep-Alives 功能

• 驗證對話方塊NTLM, 預設不會顯示如果原本要求傳回 401.1 錯誤,則會顯示對話方塊

• NTLM 如何使用 Domain \ Username \ PasswordDomain 和 Username 永遠會在 client 與 server 之間分享

Password 則不會,會使用密碼的雜湊碼驗證標頭中會包含 :

• Domain \ Username \ HashedPassword

Page 17: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

NTLM 的安全性

• 駭客無法透過封包擷取,來得知密碼的雜湊演算法

• 如果連線斷掉、被修改 ( 透過 Web Proxy) ,那麼 NTLM 就會失敗

• NTLM 版本Lan Manager – Windows 95

NTLM v1 – NT 4.0

NTLM v2 – Windows 2000 / 2003

Page 18: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

NTLM NTLM 的驗證過程的驗證過程

Get /Default.HTM

Get /Default.HTM w/ AuthNTLM

Get /Default.HTM w/ AuthNTLM Hashed

401 – WWW Auth: NTLM

200 - OK

401 – Access Denied

Client

Client

IIS Server

IIS Server

Page 19: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

Kerberos

• 為什麼要另外建立出一個驗證協定NTLM 的限制

• NTLM Tokens 無法被委派• NTLM 只支援 Windows 平台• NTLM 不支援其它瀏覽器

• 這是全新的協定嗎 ?不是,它只是一個轉換介面,根據用戶端的要求來決定要使用 Kerberos 或 NTLM

Page 20: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

Kerberos

• 用戶端 : Internet Explorer

• 伺服端 : IIS Server (Active Directory 網域成員 )

• Active Directory:

Key Distribution Center (KDC)

Ticket Granting Service: 負責發出所有的 tickets (aka tokens)

Page 21: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

Kerberos Kerberos 運作機制運作機制

IIS 啓動後,當伺服器跟 KDC 做驗證成功後,會取得 ticket

Ticket Granting Services

Domain Controller (KDC)

IIS Server

Page 22: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

Kerberos Kerberos 運作機制運作機制

用戶端向 KDC 要求 存取 IIS 的的 ticket

如果 IIS 是 AD 成員, KDC 會發出

shared key

用戶端使用匿名身份連線至 IIS

IIS 回傳 401 錯誤,加上 WWWAuth 標頭

,要求進行協調

用戶端使用這支 shared key 來建立雜湊碼,並且傳送到

IIS

IIS 使用 shared key 來檢查密碼是否正確

Shared

Domain Controller (KDC)

IIS Server

Page 23: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

摘要式驗證流程

IIS 伺服器

網域控制站

Active Directory 資料庫Web 瀏覽器

Page 24: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

摘要式驗證

• 使用雜湊演算法傳送密碼的雜湊碼必要條件

• IIS Sub-Auth (iissuba - LocalSystem)• Active Directory• 密碼使用可逆式加密儲存在 AD 資料庫上

支援平台• Windows 2000• Windows 2003

Page 25: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

進階式摘要式驗證• 什麼是進階式摘要式驗證 ?

使用 MD5 雜湊必要條件

• IIS 6.0 ( 全新安裝,非升級 !)• 2003 Active Directory Forest• IIS Sub-Authentication• 建立使用者帳號時事先編譯好雜湊碼

RFC 2617• UseDigestSSP Metabase 屬性

1: 使用進階式摘要式驗證0: 使用摘要式驗證

Page 26: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

憑證驗證• 在用戶端安裝有憑證,需要 SSL

• 憑證在伺服端可以對應到使用者帳戶

Web Server

DomainController

Client

Request: Welcome.aspx

Response: Certificate request

Response: Welcome.aspxRequest: Login.aspx + Certificate

Certificate Validation

Page 27: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

IIS 7.0 IIS 7.0 驗證比較表驗證比較表

Page 28: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

ASP.NET

IIS 與 ASP.NET 身份驗證流程

IISIIS

Web 瀏覽器Web 瀏覽器

執行 ASP.NET 程式

拒絕存取

使用指定帳號允許存取

允許該 IP address 和 domain?

使用者身份驗證通過 ?

否是

是否

有設定 ASP.NET impersonation ?

沒有

ACL 檢查通過 ?

使用應用程式集區帳號

Page 29: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

ASP.NET Authentication Providers

• ASP.NET 2.0 支援 4 種驗證 Provider

Windows – 由 IIS 與 AD 處理驗證

Forms – 使用表單與 Cookies

Passport – 使用 Passport 服務

自訂

• 在 Web.config 中設定

<!-- web.config file --><authentication

mode = "[Windows|Forms|Passport|None]"> </authentication>

<!-- web.config file --><authentication

mode = "[Windows|Forms|Passport|None]"> </authentication>

Page 30: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

大綱Web 應用程式身份驗證所面臨的問題

過去的身份驗證機制

什麼是 CardSpace ?

CardSpace 的運作機制

各種應用方式

登入頁面的改變

Page 31: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

CardSpace 的目標

• 讓網際網路存取更安全•讓使用者可以安全的識別與使用網站…

• 讓系統與系統之間的連接更安全

•不論是對內還對外 .

Page 32: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

.NET Passport ?

• Windows Live ID

• http://www.passport.net

• 疑慮 ?

Page 33: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

什麼是 Windows CardSpace ?

• Windows 平台上的身份識別選擇器以卡片的方式呈現出使用者的數位身份

• 當使用選擇卡片時 …從 Identity Provider 取得 token

在使用者確認之後,送交給 Relying Party

• 使用者 100% 控制整個流程 !

SecurityToken

Service

使用者經驗

服務提供者

Page 34: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

• 容易且安全的管理使用者自己的身份識別資料

• 使用在網站與 web services 的身份驗證上

安全

架構在 WS-* Web Service 通訊協定之上

Windows CardSpace

不再需要 usernames 與 passwords

一致的登入與註冊方式

防止釣魚多重驗證

簡單

Page 35: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

demo管理 Windows CardSpace

Page 36: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

大綱Web 應用程式身份驗證所面臨的問題

過去的身份驗證機制

什麼是 CardSpace ?

CardSpace 的運作機制

各種應用方式

登入頁面的改變

Page 37: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

真實世界的 STS

STS

token token

STStoken token

RP

Page 38: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

CardSpace 運作流程

Identity Provider (IP)Security Token Service (STS) Relying Party (RP)

Client使用者要存取某項資源

RP 提出身份識別要求

1

2

使用者

3檢查那些 IPs 可以滿足要求 ?

使用者選擇 IP4

5向該 IP 要求 token

6

根據 RP 要需求傳回 token

7 使用者決定可以送出 token

8 Token 送交給 RP

Page 39: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

• 使用者自行決定是否要信任Relying Party

Identity Provider

• 使用 X.509 憑證進行識別進一步進行對象確認

使用 Logos

• Windows CardSpace 會負責追蹤卡片用到那裡去了 !

選擇卡片 – 安全性

Page 40: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

demo使用 Windows CardSpace 登入網站

Page 41: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

大綱Web 應用程式身份驗證所面臨的問題

過去的身份驗證機制

什麼是 CardSpace ?

CardSpace 的運作機制

各種應用方式

登入頁面的改變

Page 42: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

Fabrikam

Federation by STS

Contoso

AD/STS

Contoso\Lisa FabrikamApp

Linux STS

“能不能幫我 …”

“先從 Fabrikam STS 拿到 token 再說 !”

“請給我一個 Fabrikam token !”

“請出示您的身份 !”

“請給我一個 token !”

“請出示您的身份 !”

“Lisa 您好,有什麼可以為您服務的嗎 ?”

SAML

SAML

FabrikamFabrikam

Page 43: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

網站應用

前端 Web 網站

網站HTTP/GET ( 保護頁面 )

轉向到登入頁面

1

HTTP/GET ( 登入頁面 ) 2

登入頁面 (HTML) + x-informationcard 標籤

Identity ProviderSTS

5 HTTP/GET|POST 目標頁面 + token

透過 WS-Mex 與 WS-Trust 取得 token4

客戶資料庫

6

Relying Party使用者選擇卡片

3

Page 44: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

網站應用 – 減少對網站的影響

前端 Web 網站

STS

網站HTTP/GET ( 保護的頁面 ) 轉向到登入頁面

1

傳出登入頁面 HTMLHTTP/GET ( 登入頁面 ) 2

Identity Provider

STS

Relying Party

HTTP/GET|POST 目標頁面 + token8

3 WS-Mex

透過 WS-Trust/RST 傳送 token透過 WS-Trust/RSTR 取得 token

6

5透過 WS-Mex 與 WS-Trust 取得 token 客戶資料庫

7使用者選擇卡片4

Page 45: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

大綱Web 應用程式身份驗證所面臨的問題

過去的身份驗證機制

什麼是 CardSpace ?

CardSpace 的運作機制

各種應用方式

登入頁面的改變

Page 46: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

Login Page

<button onclick="javascript:return infocardlogin.submit();"> Sign in with your Information Card</button>

<form name="infocardlogin" target="_self" method="post"> <object type="application/x-informationcard" name="xmlToken"> <param name="tokenType" value="urn:oasis:names:tc:SAML:1.0:assertion" > <param name="issuer" value="http://schemas..../identity/issuer/self" > <param name="requiredClaims" value="http://.../claims/givenname, http://.../claims/surname, http://../claims/emailaddress, http://.../claims/privatepersonalidentifier" > </object></form>

public partial class Login_aspx : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { string xmlToken = Request["xmlToken"];

Token token = new TokenProcessor.Token(xmlToken);

// Lookup the account using the uniqueId string username = MembershipHelper.GetUser(token.UniqueID); if (username != null) { MembershipUser user = Membership.GetUser(username);

// give the cookie back to the browser FormsAuthentication.SetLoginCookie(user.UserName, false); } } }

Page 47: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

結論

• CardSpace 是全新的身份驗證機制

• 使用者身份資料由使用者自行管理

• 滿足各類型應用程式身份驗證的需求

Page 48: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制

在何處取得 TechNet 相關資訊?• 訂閱 TechNet 資訊技術人快訊

http://www.microsoft.com/taiwan/technet/flash/• 訂閱 TechNet Plus

http://www.microsoft.com/taiwan/technet/• 參加 TechNet 的活動

http://www.microsoft.com/taiwan/technet/• 下載 TechNet 研討會簡報與錄影檔

http://www.microsoft.com/taiwan/technet/webcast/

Page 49: 0502 Windwos Server 2008 Card Space 新一代身份驗證機制