导出 (0) 打印
全部展开
展开 最小化

操作方法:使用 ACS 创建我的第一个声明感知 ASP.NET 应用程序

发布时间: 2011年4月

更新时间: 2014年6月

应用到: Azure

Important重要提示
从 2014 年 5 月 19 日开始,新的 ACS 命名空间无法使用 Google 作为标识提供程序。使用 Google 并且在此日期之前注册的 ACS 命名空间不受影响。有关详细信息,请参阅发行说明。可以使用另一个标识提供程序(例如 Facebook)完成本教程。

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

本主题介绍将 ACS 与 ASP.NET 信赖方应用程序相集成的方案。将 Web 应用程序与 ACS 集成后,便可以在代码中区分身份验证和授权的功能。换而言之,ACS 将为 Web 应用程序提供用于对用户进行身份验证和授权的机制。有关详细信息,请参阅Web 应用程序和 ACS

在本练习方案中,ACS 将在一个测试 ASP.NET 信赖方应用程序中对使用 Google 标识的用户进行身份验证。

有关如何创建 “访问控制”命名空间的详细说明,请参阅How to: Create an Access Control Namespace

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

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

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

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

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

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

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

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

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

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

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

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

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

    • 在“领域”中,键入 ACS 颁发的安全令牌所应用到的 URI。对于本练习,请键入 http://localhost:7777/

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

    • 在“错误 URL (可选)”中,输入在登录过程中发生错误时 ACS 可以向其发布消息的 URL。对于本练习,请将此字段保留为空。

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

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

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

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

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

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

  4. 单击“保存”

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

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

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

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

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

  5. 在“编辑规则组”页上,单击“保存”。

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

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

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

    对于本练习,建议你让此页保持打开状态,以快速执行余下的步骤。

本部分介绍如何创建一个最终要与 ACS 集成的 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 保持打开状态以完成下一步骤。

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

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

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

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

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

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

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

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

      note备注
      你可以在 ACS 管理门户的“应用程序集成”页上找到 WS 联合身份验证元数据 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>
    

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

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

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

  2. 选择“Google”。

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

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

    然后,浏览器返回到 ACS,而 ACS 将会颁布一个令牌,并将该令牌发布到你的 MVC 站点。

另请参阅

社区附加资源

添加
显示:
© 2014 Microsoft