构建安全的 ASP.NET 应用程序
路线图 总目录
概览
简介
ASP.NET 应用程序的安全模型
身份验证和授权
安全通信
Intranet
Extranet 安全性
Internet
ASP.NET 安全性
企业服务安全性
Web 服务安全性
远程处理安全性
数据访问安全性
安全问题疑难解答
如何做(How to)文章集锦
附录:
工作原理
ASP.NET 标识矩阵
基本配置
配置存储和工具
密钥和证书
.NET Web 应用程序安全性
术语表
参考中心
身份验证、授权和安全通信
J.D. Meier、Alex Mackman、Michael Dunner 和 Srinath Vasireddy
Microsoft Corporation
2002 年 10 月
概览
本节概要介绍本指南各章节的大致内容和范围。
第 1 章 — 简介
本章着重说明了本指南的目标,介绍了关键术语并且提出了后面章节指导所遵循的中心原则。
第 2 章 — .NET Web 应用程序安全模型
本章从安全角度介绍了 .NET Web 应用程序的共同特征,并介绍了 .NET Web 应用程序安全模型,还介绍了在构建安全的 .NET Web 应用程序时将要用到的核心实施技术。
同时,本章还介绍了可用于开发纵深防御安全策略的各种网关守卫程序,解释了使用主体对象和标识对象进行基于主体的授权的概念。
本章将帮助您解答以下问题:
.NET Web 应用程序通常采用什么样的部署模式?
用于构建 .NET Web 应用程序的各种技术提供了哪些安全功能?
我该了解哪些网关守卫?如何使用它们提供纵深防御安全策略?
什么是主体对象和标识对象?为什么它们非常重要?
.NET 安全性与 Windows 安全性之间存在什么样的关系?
第 3 章 — 身份验证和授权
设计一种跨应用程序多层的一致的身份验证和授权策略是一项很关键的任务。本章提供有关的指导,以帮助您为特定的应用程序方案开发合适的策略,还将帮助您选择最适合的身份验证和授权技术,并以正确的方式应用于您的应用程序。
阅读本章可以了解到如何执行以下任务:
选择适当的身份验证机制识别用户。
开发有效的授权策略。
选择适当的基于角色的安全类型。
比较和对比 .NET 角色与 Enterprise Services (COM+) 角色。
使用数据库角色。
在受信任的子系统资源访问模型与模拟/委派模型之间做出选择,后者用于在操作系统级别让原调用方安全上下文通过应用程序的多个层。
图 1 和图 2 显示这两个核心资源访问模型。
图 1 受信任的子系统模型
在受信任的子系统模型中:
使用固定的受信任 标识和安全上下文执行下游资源访问。
下游资源管理器(例如,数据库)委托上游应用程序对调用方进行适当的身份验证和授权。
资源管理器向应用程序授予资源访问权限。原调用方没有资源管理器的直接访问权限。
下游与上游组件之间存在信任界线。
原调用方标识(用于审核)在应用程序(而非操作系统)级别传递。
图 2 模拟/委派模型
在模拟/委派模型中:
使用原调用方的安全上下文执行下游资源访问。
下游资源管理器(例如,数据库)向各个调用方授权。
原调用方标识在操作系统级别传递,可供进行平台级别审核和进行按调用方授权使用。
第 4 章 — 安全通信
本章介绍了两项核心技术,它们能在 Internet 和公司 Intranet 上,为客户端和服务器间的网络数据流提供消息机密性和消息完整性保障,这就是 SSL 和 IPSec。本章还讨论了 RPC 加密技术,这种技术可用来保障与远程服务组件通信的安全。
阅读本章可以了解到如何执行以下任务:
在应用程序的各层上应用安全通信技术。
在 SSL 和 IPSec 之间选择。
配置安全通信。
使用 RPC 加密。
本章讲解在应用程序的各物理层之间提供安全通信信道的需要,如图 3 所示。
图3 能够安全通信的典型 Web 部署模型
第 5 章 — Intranet
本章介绍一组常用的 Intranet 应用程序方案,并针对每种方案介绍了推荐的安全配置。同时,本章还介绍了构建每种安全解决方案所需的配置步骤,对每种方案的分析,以及其他相关但具体情况不同的方案。
本章介绍的应用程序方案如下:
ASP.NET 到 SQL Server .图 4 中显示了此方案。
ASP.NET 到 Enterprise Services 到 SQL Server
ASP.NET 到 Web 服务到 SQL Server
ASP.NET 到 Remoting 到 SQL Server
将原调用方传递到数据库.它包括多层 Kerberos 委派方案,如图 5 所示。
图4 ASP.NET 到远程 SQL Server 方案的安全配置
图5 ASP.NET 到远程 Enterprise Services 到远程 SQL Server Kerberos 委派方案的安全配置
阅读本章可以了解到如何执行以下任务:
使用本地 ASPNET 帐户从 ASP.NET Web 应用程序调用远程 SQL Server 数据库。
使用 Windows 身份验证与 SQL Server 之间建立受信任的数据库连接。
使用 SQL Server 用户定义的数据库角色授予数据库访问权限。
避免在应用程序中存储凭据。
使用 SSL 和 IPSec 的组合保护机密数据。
实施 Kerberos 委派,以便将原调用方的安全上下文通过应用程序的多个层传递到后端数据库。
使用基本身份验证传递原调用方的安全上下文。
联合使用 ASP.NET 文件授权、URL 授权、.NET 角色和 Enterprise Services (COM+) 角色向用户授权。
在 ASP.NET Web 应用程序中有效地使用模拟。
第 6 章 — Extranet
本章介绍一组常用的 Extranet 应用程序方案,并针对每种方案提供了推荐的安全配置、配置步骤及分析。
本章介绍的 Extranet 方案如下:
公开 Web 服务(B2B 合作伙伴交换)
图 6 中显示了此方案。
公开Web 应用程序(合作伙伴应用程序门户)
图 6 Web 服务 B2B 合作伙伴交换方案的安全配置
阅读本章可以了解到如何执行以下任务:
对照专用的 Extranet Active Directory 使用客户端证书身份验证,以此验证合作伙伴公司的身份。
将证书映射到 Windows 帐户。
使用 ASP.NET 文件授权和 .NET 角色向合作伙伴公司授权。
使用 ASPNET 标识访问位于公司 Intranet 上的远程 SQL Server 数据库。
第 7 章 — Internet
本章介绍一组常用的 Internet 应用程序方案,并针对每种方案介绍了推荐的安全配置、配置步骤及分析。
本章介绍的 Internet 应用程序方案如下:
ASP.NET 到 SQL Server
ASP.NET 到远程 Enterprise Services 到 SQL Server
图 7 中显示了此方案。
图 7 ASP.NET 到远程 Enterprise Services 到 SQL Server 的安全配置
阅读本章可以了解到如何执行以下任务:
通过 SQL Server 凭据数据库使用表单身份验证。
避免在凭据数据库中存储密码。
使用 URL 授权和 .NET 角色向 Internet 用户授权。
从 ASP.NET Web 应用程序通过防火墙对 SQL Server 使用 Windows 身份验证。
使用 SSL 和 IPSec 的组合保护机密数据。