导出 (0) 打印
全部展开

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

发布时间: 2011年4月

更新时间: 2011年5月

应用到: Windows Azure

适用于

  • Microsoft® Windows Azure™ AppFabric Access Control Service (ACS)

概述

本主题介绍将 ACS 与 ASP.NET 信赖方应用集成起来的情形。通过将 Web 应用程序与 ACS 集成,可以在代码之外实现身份验证和授权功能。换而言之,ACS 为 Web 应用程序提供了对用户进行身份验证和授权的机制。有关详细信息,请参阅 Web 应用程序和 ACS

在此练习方案中,ACS 会将具有 Google 标识的用户验证为测试 ASP.NET 信赖方应用。

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

步骤 1 - 创建服务命名空间

有关如何创建服务命名空间的详细说明,请参阅How to: Create a Windows Azure AppFabric Service Namespace

步骤 2 – 启动 ACS 管理门户

可以使用 ACS 管理门户配置 ACS 服务命名空间,方法是添加标识提供者,配置信赖方应用,定义规则和规则组,以及建立信赖方应用信任的凭据。

启动 ACS 管理门户

  1. 打开 Internet 浏览器并访问 Windows Azure AppFabric 管理门户 (http://go.microsoft.com/fwlink/?LinkID=129428)。

  2. 使用 Windows Live ID 登录到 Web 站点。如果没有 Windows Live ID,则单击“注册”自行创建一个 ID。

  3. 在使用您的 Live ID 登录之后,您会被重定向到“管理门户”页。在此页面的左下侧,单击“服务总线和访问控制”

  4. 要启动 ACS 管理门户,单击左侧树中的“访问控制”,选择您希望配置的 ACS 服务命名空间,然后在页面顶端单击工具栏中的“访问控制服务”按钮。

步骤 3 – 添加标识提供者

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

添加标识提供者

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

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

  3. “添加 Google 标识提供者”页面提示您输入登录链接文本(默认的是“Google”)和图像 URL。此 URL 指向可以用作此标识提供者的登录链接的图像文件。编辑这些字段是可选操作。对于此练习,请勿编辑,单击“保存”

步骤 4 – 添加信赖方应用

此部分介绍如何添加和配置信赖方应用。有关信赖方应用的详细信息,请参阅信赖方应用

设置信赖方应用

  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。有关详细信息,请参阅信赖方应用中的“令牌生存期”。

    • “标识提供者”中,选择用于此信赖方应用的标识提供者。对于此练习,接受默认选中(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 BasicVisual 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 是 http://localhost:7777/

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

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

      note注意
      在生产环境中,关于使用 SSL 的警告有效且应该不被关闭。

    3. “安全令牌服务 (STS)”页面上,选择“使用现有 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>
    

步骤 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 站点。

另请参见

显示:
© 2014 Microsoft