Passport 身份验证提供程序

Passport 身份验证是由 Microsoft 提供的集中身份验证服务,该服务为成员站点提供单一登录和核心配置文件服务。Passport 之所以让用户受益匪浅,原因在于用户不必登录访问受到限制的新资源或站点。如果希望您的站点与 Passport 身份验证及授权兼容,则应该使用该提供程序。该主题提供有关 Microsoft .NET Passport 和 ASP.NET 对其支持的介绍性资料。有关更多信息,请参见 .NET Passport Web site(.NET Passport 网站)。要访问该文档,必须获取 Passport 并注册。

Passport 是基于 Cookie 的身份验证服务。使用 Passport 身份验证的示例事务对话的工作方式如下:

  1. 客户端向受到保护的资源(如 https://www.contoso.com/default.aspx)发出 HTTP GET 请求。

  2. 检查客户的 Cookie 是否具有现有的 Passport 身份验证票。如果站点找到有效的凭据,则站点对该客户进行身份验证。如果请求不包括有效的身份验证票,则服务器返回状态代码 302 并将客户重定向到 Passport 登录服务。响应在查询字符串中包含一个 URL,该 URL 被发送到 Passport 登录服务以便将客户定向回原始站点。

  3. 客户端执行重定向操作,再向 Passport 登录服务器发出 HTTP GET 请求,然后传输来自原始站点的查询字符串信息。

  4. Passport 登录服务器向客户提供登录窗体。

  5. 客户端填写窗体,并使用安全套接字层 (SSL) 将 POST 发送回登录服务器。

  6. 登录服务器对用户进行身份验证并将客户重定向回原始 URL (https://www.contoso.com/default.aspx)。响应在查询字符串中包含一个加密的 Passport Cookie。

  7. 客户遵循重定向并再次请求原始的受保护资源,这一次使用 Passport Cookie。

  8. 起始服务器上的 PassportAuthenticationModule 会检测是否存在 Passport Cookie,并测试身份验证。如果成功,则该请求通过身份验证。

对于站点上访问受到限制的资源,后续的请求使用提供的票证进行身份验证。Passport 还会制定有关票的到期及在其他成员站点上重复使用票的条款。

Passport 使用“三重 DES”加密方案。当成员站点注册到 Passport 服务时,将被授予站点特定的密钥。Passport 登录服务器使用该密钥对站点间传递的查询字符串进行加密和解密。

备注

若要使用 Passport 身份验证,在使用前,必须将站点注册到 Passport 服务,然后接受许可协议并安装 .NET Passport SDK。有关设置 ASP.NET 应用程序以使用 Passport 身份验证的更多信息,请参见 .NET Passport Service Guide Kit Web site(.NET Passport Service Guide Kit 网站)

请参见

概念

ASP.NET Web 应用程序安全性

ASP.NET 身份验证

如何:在 ASP.NET 应用程序中实现 Passport 身份验证

参考

IIdentity

PassportAuthenticationModule

PassportIdentity