[本周]如約而至;時間是爭取來的這回的[本周]是把若干零碎的時間利用起來成文的完成對身份驗證訪問授權等內容的梳理可能漏掉的東西會比較多漏掉的還是希望大家來補充順便說一下上次[本周]Ajax 那點事 題目我認為很平實很低調了沒料到還是被批評了這回考慮一下用了一個白開水一樣的題目沒有問題了吧?言歸正傳……
觀其大略
是依存於IIS的一個服務說到的安全相關的話題當然要有一個整體上的思路IIS接收—》IIS驗證—》IIS授權》驗證》授權》資源返回給用戶
IIS從網絡上接收到一個HTTP WEB請求可以使用SSL技術來保證服務器的身份此外SSL也可以提供一個安全通道來保護客戶端和服務器端的機密數據的傳送IIS使用基本 摘要式 或者其它的方式驗證用戶如果網站中的大部分內容不需要驗證就可以設定為匿名驗證驗證之後是授權通過授權IIS來允許或者禁止用戶訪問某資源IIS可以使用ACL定義的NTFS權限或者針對IP地址的客戶端授權
IIS把Windows存取令牌傳送到如果IIS使用的是匿名驗證則為匿名Internet使用者的存取令牌(IUSER_MYMACHINE) 驗證訪問者(有三種方式)授權所需要的資源或者操作(有兩種授權方法)
中程序的代碼使用特別的身份來存取本機或者遠程資源
身份驗證身份驗證就是一個解決誰有權力進入系統的問題通常的做法就是跟系統維護的用戶名單進行核對這樣轉化為一個實際的技術問題如果有效的判斷一個用戶是不是系統的有效用戶這個過程就是—Authentication(身份驗證)
專業說法接收用戶憑據並根據指定的頒發機構來驗證憑據的過程成為身份驗證
提供三種身份驗證方式Windows驗證 Forms驗證 Passport驗證
身份驗證的使用是通過配置nfig文件的< Authentication >配置節來實現的
授權授權就是確認用戶擁有足夠的權限來訪問請求的資源
提供兩類授權服務文件授權服務 URL授權服務
說點細節
< Authentication >配置節mode可用的參數None Windows Forms Passport
Windows:IIS根據程序的設置執行身份的驗證(基本 簡要 或者集成Windows)
注意使用這種驗證方式IIS中必須要禁用匿名訪問
Windows驗證適用於受控環境中比如企業的Intranet
Foms這種驗證使用Cookie保存用戶憑證並將未將驗證的用戶重定向到登錄頁通常這是的IIS配置為匿名訪問
Forms適合部署於互聯網的網站應用
Passport驗證是通過微軟的集中身份驗證服務執行的它為成員站點提供單點登錄和配置文件服務
Passport適用於跨站點應用一旦用戶注銷所有的護照信息就會清除可以在公共場所使用它
ACL面向的是文件IIS提供通過驗證的用戶通過比較ACL調用標記完成授權
URL授權檢查的根據是URL本身而不是URL對應的文件URL授權可以是應用程序像基於窗體的身份驗證或者Passport的身份集成驗證因為這些驗證中的用戶和計算機或者域中的賬戶並不對應還控制對虛擬資源的訪問
URL授權的配置授權指令allow deny 對應操作對象是roles users 還可以使用Verb屬性區別不同的HTTP行為(POST /GET)
通常情況下用戶訪問一個網站都是使用匿名訪問匿名訪問的用戶都會轉化為操作系統上的一個帳號來訪問服務器
<authentication mode=windows>
<identity impersonate=true>
Windows驗證用戶通過了驗證之後會觸發Globalasax文件中的WindowsAuthentication_OnAuthenticate事件可以在這裡添加代碼把用戶信息附加到請求上
Passport驗證的問題是有多少網站願意把自己的用戶數據放在微軟的數據庫中?
使用基於角色的安全把用戶映射到一個角色組裡面這個角色組對應一定的權限這樣就實現了對一個群體的權限管理所以角色應該是對一組具有相同權限用戶的抽象
上面所說的都是可以應用於實踐的問題集中在nfig的配置和一些初始化操作大家和容易找到相關內容我還是提供一個綱要呵呵夜深了睡了晚安!
順便問一句愛要怎麼說出口?
堅強
年月日夜
From:http://tw.wingwit.com/Article/program/net/201311/11958.html