如何:使用 ACS 创建我的第一个声明感知 ASP.NET 应用程序

更新时间:2015 年 6 月 19 日

适用于:Azure

重要

ACS 命名空间可以将其 Google 标识提供程序配置从 OpenID 2.0 迁移到 OpenID Connect。 迁移必须在 2015 年 6 月 1 日之前完成。 有关详细指导,请参阅将 ACS 命名空间迁移到 Google OpenID 连接。 执行迁移之后,可以使用另一个标识提供程序(例如 Facebook)完成本教程。

应用于

  • Microsoft Azure Active Directory 访问控制(也称为访问控制服务或 ACS)

概述

本主题介绍将 ACS 与 ASP.NET 信赖方应用程序集成的方案。 通过将 Web 应用程序与 ACS 集成,可以考虑代码中身份验证和授权的功能。 换句话说,ACS 提供了对用户进行身份验证和授权 Web 应用程序的机制。

在此实践方案中,ACS 使用 Google 标识对用户进行身份验证,并将其作为信赖方应用程序的测试 ASP.NET。

将 ACS 与 ASP.NET 信赖方应用程序集成的步骤

重要

在执行以下步骤之前,请确保系统满足 ACS 先决条件中汇总的所有 .NET Framework 和平台要求。

若要将 ACS 与 ASP.NET 信赖方应用程序集成,请完成以下步骤:

  • 步骤 1 - 创建 Access Control 命名空间

  • 步骤 2 – 启动 ACS 管理门户

  • 步骤 3 – 添加标识提供程序

  • 步骤 4 – 添加信赖方应用程序

  • 步骤 5 - 创建规则

  • 步骤 6 - 查看应用程序集成信息

  • 步骤 7 - 创建 ASP.NET 信赖方应用程序

  • 步骤 8 – 配置 ACS 和 ASP.NET 信赖方应用程序之间的信任

  • 步骤 9 – 测试 ACS 和 ASP.NET 信赖方应用程序之间的集成

步骤 1 - 创建 Access Control 命名空间

有关如何创建访问控制命名空间的详细说明,请参阅如何:创建访问控制命名空间

步骤 2 – 启动 ACS 管理门户

ACS 管理门户允许你通过添加标识提供者、配置信赖方应用程序、定义规则和规则组以及建立信赖方应用程序信任的凭据来配置访问控制命名空间。

启动 ACS 管理门户

  1. 转到Microsoft Azure管理门户 (https://manage.WindowsAzure.com) 登录,然后单击“Active Directory”。 (故障排除提示: “Active Directory”项缺失或不可用)

  2. 若要管理访问控制命名空间,请选择该命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)

步骤 3 – 添加标识提供程序

本部分介绍如何添加信赖方应用程序用来进行身份验证的标识提供程序。 有关标识提供者的详细信息,请参阅 标识提供者

添加标识提供程序

  1. 在 ACS 管理门户中,单击左侧树中的标识提供者,或单击“入门”部分下的“标识提供者”链接。

  2. 在“标识提供程序”页上,单击“添加”,选择“Google”作为标识提供程序,然后单击“下一步”

  3. “添加 Google 标识提供程序”页将提示你输入登录链接文本(默认为“Google”)和映像 URL。 此 URL 指向可以用作此标识提供程序的登录链接的映像文件。 编辑这些字段是可选操作。 对于本练习,请不要编辑,直接单击“保存”即可

步骤 4 – 添加信赖方应用程序

本部分介绍如何添加并配置一个信赖方应用程序。 有关信赖方应用程序的详细信息,请参阅 信赖方应用程序

设置信赖方应用程序

  1. 在 ACS 管理门户中,单击左侧树中的信赖方应用程序,或单击“入门”部分下的“信赖方应用程序”链接。

  2. 在“信赖方应用程序”页上,单击“添加”

  3. 在“添加信赖方应用程序”页上执行以下操作

    • 在“名称”中键入信赖方应用程序的名称。 对于本练习,请键入 TestApp

    • 在“模式”中选择“手动输入设置”

    • Realm 中,键入 ACS 颁发的安全令牌适用的 URI。 对于本练习,请键入 https://localhost:7777/

    • “返回 URL”中,键入 ACS 将安全令牌返回到的 URL。 对于本练习,请键入 https://localhost:7777/

    • “错误 URL” (可选) 中,输入 ACS 在登录期间发生错误时可以帖子的 URL。 对于本练习,请将此字段留空。

    • 令牌格式中,选择 ACS 在向此信赖方应用程序颁发安全令牌时要使用的令牌格式。 对于本练习,请选择“SAML 2.0”。 有关令牌和令牌格式的详细信息,请参阅信赖方应用程序中ACS 支持的令牌格式和“令牌格式”。

    • 令牌加密策略中,为 ACS 为此信赖方应用程序颁发的令牌选择加密策略。 对于本练习,请接受默认值“无”。 有关令牌加密策略的详细信息,请参阅 信赖方应用程序中的“令牌加密策略”。

    • 在“令牌生存期(秒)”中,指定 ACS 颁发的安全令牌保持有效的时间长度。 对于本练习,请接受默认值 600。 有关详细信息,请参阅 信赖方应用程序中的“令牌生存期”。

    • 在“标识提供程序”中,选择要用于此信赖方应用程序的标识提供程序。 对于本练习,请接受选中的默认值 (GoogleWindows Live ID) 。

    • 在“规则组”中,选择此信赖方应用程序在处理声明时使用的规则组。 对于本练习,请接受默认选中的“新建规则组”。 有关规则组的详细信息,请参阅 规则组和规则

    • “令牌签名设置”部分中,选择是使用访问控制命名空间的证书或特定于此应用程序的自定义证书对 SAML 令牌进行签名。 对于本练习,请接受默认值“使用服务命名空间证书(标准)”。 有关令牌签名的详细信息,请参阅 信赖方应用程序中的“令牌签名”。

  4. 单击“ 保存”。

步骤 5 - 创建规则

本部分介绍如何通过定义规则来确定将声明从标识提供程序传递到信赖方应用程序的方式。 有关规则和规则组的详细信息,请参阅 规则组和规则

创建规则

  1. ACS 管理门户主页上,单击左侧树中的规则组,或单击“入门”部分下的“规则组”链接。

  2. 在“规则组”页上,单击“TestApp 的默认规则组”(因为你已将信赖方应用程序命名为 TestApp)。

  3. 在“编辑规则组”页上,单击“生成”

  4. “生成规则:TestApp 的默认规则组”页上,接受本练习中默认 (选择的标识提供者,GoogleWindows Live ID) ,然后单击“生成”按钮。

  5. 编辑规则组页捼,单击麋擹

步骤 6 - 查看应用程序集成信息

可以在 ACS 管理门户 的应用程序集成 页上找到修改信赖方应用程序以使用 ACS 所需的所有信息和代码。

查看应用程序集成信息

  • ACS 管理门户主页上,单击左侧树中的应用程序集成,或单击“入门”部分下的“应用程序集成”链接。

    应用程序集成页上显示的 ACS URI 对访问控制命名空间是唯一的。

    对于本练习,建议使此页面保持打开状态,以便快速执行剩余步骤。

步骤 7 - 创建 ASP.NET 信赖方应用程序

本部分介绍如何创建最终要与 ACS 集成的 ASP.Net 信赖方应用程序。

创建 ASP.NET 信赖方应用程序

  1. 若要运行 Visual Studio 2010,请单击"开始"菜单,单击“运行”,键入以下文本,然后按 Enter
    devenv.exe

  2. 在 Visual Studio 中,单击“文件”,然后单击“新建项目”

  3. 在“新建项目”窗口中,选择“Visual Basic”或“Visual C#”模板,然后选择“ASP.NET MVC 2 Web 应用程序”

  4. 在“名称”中键入以下文本,然后单击“确定”
    TestApp

  5. 在“创建单元测试项目”中,选择“否,不创建单元测试项目”,然后单击“确定”

  6. 在“解决方案资源管理器”中,右键单击“TestApp”,然后选择“属性”

  7. 在“TestApp 属性”窗口中,选择“Web”选项卡,在“使用 Visual Studio 开发服务器”下,单击“特定端口”,然后将值更改为 7777

  8. 若要运行和调试刚刚创建的应用程序,请按 F5。 如果未发现错误,你的浏览器会呈现一个空 MVC 项目。

    让 Visual Studio 2010 保持打开状态以完成下一步骤。

步骤 8 – 配置 ACS 和 ASP.NET 信赖方应用程序之间的信任

本部分介绍如何将 ACS 与在上一步中创建的 ASP.NET 信赖方应用程序集成。

配置 ASP.NET 信赖方应用程序和 ACS 之间的信任

  1. 在 Visual Studio 2010 的 TestApp 的“解决方案资源管理器”中,右键单击“TestApp”,然后选择“添加 STS 引用”

  2. 在“联合身份验证实用工具”向导中执行以下操作

    1. 在“欢迎使用联合身份验证实用工具向导”页上的“应用程序 URI”中,输入应用程序 URI,然后单击“下一步”。 在此演示中,应用程序 URI 为 https://localhost:7777/.

      注意

      尾部斜杠很重要,因为它与信赖方应用程序的 ACS 管理门户中输入的值匹配。 有关详细信息,请参阅步骤 4 – 添加信赖方应用程序。

    2. 弹出警告: ID 1007:应用程序未托管在安全的 https 连接上。是否继续? 对于此演示,请单击“ ”。

      注意

      在生产环境中,这条有关 SSL 使用的警告反映了实际情况,不应将它关闭。

    3. “安全令牌服务 ”页上,选择 “使用现有 STS”,输入 ACS 发布的WS-Federation元数据 URL,然后单击“ 下一步”。

      注意

      可以在 ACS 管理门户 的应用程序集成 页上找到WS-Federation元数据 URL 的值。 有关详细信息,请参阅步骤 6 - 查看应用程序集成信息。

    4. 在“STS 签名证书链验证错误”页上,单击“下一步”

    5. 在“安全令牌加密”页上,单击“下一步”

    6. 在“提供的声明”页上,单击“下一步”

    7. “概要”页上,单击“完成”

    在你成功完成运行“联合身份验证实用工具”向导后,该向导将添加对 Microsoft.IdentityModel.dll 程序集的引用,并将值写入到在 ASP.NET MVC 2 Web 应用程序 (TestApp) 中配置 Windows Identity Foundation 的 Web.config 文件中。

  3. 打开 Web.config 并找到 system.web 主元素。 该元素可能类似于:

    <system.web>
        <authorization>
          <deny users="?" />
        </authorization>
    

    通过在 system.web 主元素下面添加以下代码,修改 Web.config 以启用请求验证:

        <!--set this value-->
        <httpRuntime requestValidationMode="2.0"/>
    
    

    执行更新后,上述代码片段必须类似于:

    
       <system.web>
        <!--set this value-->
        <httpRuntime requestValidationMode="2.0"/>
        <authorization>
        <deny users="?" />
        </authorization>
    

步骤 9 – 测试 ACS 和 ASP.NET 信赖方应用程序之间的集成

本部分介绍如何测试信赖方应用程序和 ACS 之间的集成。

测试 ASP.NET 信赖方应用程序和 ACS 之间的集成

  1. 保持 Visual Studio 2010 为打开状态,按 F5 开始调试你的 ASP.NET 信赖方应用程序。

    如果未找到任何错误,而不是打开默认 MVC 应用程序,浏览器会重定向到 ACS 托管的主 领域发现 页面,要求你选择标识提供者。

  2. 选择“Google”

    然后,浏览器将会加载 Google 登录页。

  3. 输入你的测试 Google 凭据,并接受 Google 网站上显示的许可条款 UI。

    然后浏览器发回 ACS,ACS 颁发令牌,并将该令牌发布到 MVC 站点。

另请参阅

概念

ACS 操作指南