代码示例:使用联合注销 ASP.NET MVC 4
更新时间:2015 年 6 月 19 日
适用于:Azure
此示例演示如何将Microsoft Azure Active Directory 访问控制 (也称为访问控制服务或 ACS) 与 ASP.NET MVC 4 应用程序集成。 通过 ACS 集成,可为 ASP.NET MVC 4 应用程序中受支持的标识提供程序启用单一登录和单一注销功能。
此示例的代码位于 MICROSOFT AZURE ACTIVE DIRECTORY 访问控制 (ACS) 代码示例包的 ASPNETSimpleMVC4 (C#\Websites\ASPNETSimpleMVC4) 子目录中。
有关 ACS 中的单一注销功能的详细信息,请参阅 单一注销。
先决条件
若要运行此示例,需要:
Azure 门户 () https://go.microsoft.com/fwlink/?LinkID=275081 和访问控制命名空间中的帐户。 此示例使用名为 acssamples 的访问控制命名空间。 你的命名空间名称可能与此不同。
有关创建访问控制命名空间的详细信息,请参阅如何:创建访问控制命名空间。
Visual Studio 2012
适用于 2012 Visual Studio () https://msdn.microsoft.com/library/hh545418.aspx 的标识和访问工具
有关详细信息,请参阅 ACS 先决条件。
配置示例
可以使用 ACS 管理门户或 ACS 管理服务来配置此示例。 本主题介绍了这两个选项。
选项 1:使用 ACS 管理门户
选项 2:使用 ACS 管理服务
选项 1:使用 ACS 管理门户
使用 ACS 管理门户配置示例
转到Microsoft Azure管理门户 (https://manage.WindowsAzure.com) 登录,然后单击“Active Directory”。 (故障排除提示: “Active Directory”项缺失或不可用)
若要创建访问控制命名空间,请依次单击“新建”、“应用程序服务”和“访问控制”,然后单击“快速创建”。 (或者,先单击“访问控制命名空间”,然后单击“新建”。)
若要管理访问控制命名空间,请选择该命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)
这会打开 ACS 管理门户。
若要允许用户使用其 Google 或 Yahoo! 标识登录,请单击 “标识提供者”,单击“ 添加” ,然后添加 Google 和 Yahoo!。
有关说明,请参阅 Google 作为 ACS 标识提供者 ,将 Yahoo! 视为 ACS 标识提供者。 默认情况下, (Microsoft 帐户) 添加实时 ID Windows,无法删除。
若要向 ACS 注册应用程序,请单击 “信赖方应用程序”,单击“ 添加”,在窗体中输入以下信息,然后单击“ 保存”。
在“名称”字段中,输入 ASPNETMVC4Sample。
在 “领域 ”字段中,输入 https://localhost:65000/
在 “返回 URL ”字段中,输入 https://localhost:65000/
在 “错误 URL ”字段中,输入 https://localhost:65000/Error
在“令牌格式”字段中,选择“SAML 2.0”。
在“令牌签名”字段中,选择“使用服务命名空间证书(标准)”。
有关“添加信赖方应用程序”页上的字段和值的信息,请参阅 信赖方应用程序。
若要创建一个用于将标识提供程序颁发的所有声明发送到信赖方应用程序的规则组,请依次单击“规则组”、“ACS 简单 MVC4 示例的默认规则组”、“生成”和“保存”。
ACS 门户的“规则组”部分创建用于确定 ACS 发送到应用程序的声明的规则。 通过选择所有生成的规则,将 ACS 配置为将标识提供者颁发的所有声明发送到信赖方应用程序。
示例现已配置并准备好在 Visual Studio 2012 中运行。
选项 2:使用 ACS 管理服务
Visual Studio示例解决方案具有名为 ConfigureSample 的控制台应用程序,该应用程序使用 ACS 管理服务和 Common 类库中定义的常见帮助程序。 可以使用此应用程序配置访问控制命名空间,以便与此示例一起使用。
使用 ACS 管理服务配置示例
若要配置本示例,请打开 SamplesConfiguration.cs (acs\Management\ManagementService\Common)。 将 Common 类库中 SamplesConfiguration 类中的占位符替换为有关访问控制命名空间的信息。 可以在 ACS 管理门户中找到信息。
若要导航到 ACS 管理门户:转到Microsoft Azure管理门户 (https://manage.WindowsAzure.com) 登录,然后单击“Active Directory”。 (故障排除提示:“Active Directory”项缺失或不可用) 若要管理访问控制命名空间,请选择命名空间,然后单击“管理”。 (或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)
ServiceNamespace - 输入访问控制命名空间的名称。
ManagementServiceIdentityName - 输入 ACS 管理服务帐户的名称。 默认值为 ManagementClient。
若要查找管理服务帐户名称,请在 ACS 管理门户中单击 “管理服务”。 帐户已按名称列在“管理服务帐户”下面。
ManagementServiceIdentityKey - 输入与管理服务帐户关联的密码。
若要查找管理服务帐户密码,请在 ACS 管理门户中单击 “管理服务”。 单击管理服务帐户的名称,然后在“凭据”下面单击“密码”。 密码将显示在“密码”字段中。 若要复制密码,请单击“显示密码”。
在 Visual Studio 中运行 ConfigureSample 应用程序。 应用程序使用 SamplesConfiguration.cs 中的数据来配置 ACS 以运行示例。
运行示例
运行示例
在 Visual Studio 2012 中打开示例 ASPNETSimpleMVC4.sln (C#\Websites\ASPNETSimpleMVC4\) 的解决方案文件。
右键单击项目,然后从上下文菜单中选择“标识和访问”。
选择“使用 Azure 访问控制服务”。
在“选择一个或多个提供程序...”旁边,单击“配置”。
输入访问控制命名空间和管理服务帐户密码。
从列表中选择一个或多个标识提供程序。
在 ACS 门户或 ACS 管理服务中配置示例时,显示的标识提供者是添加的标识提供者。
现在,你的信赖方应用程序已配置为使用 ACS。
按 F5 运行该应用程序。 浏览器将定向到 ACS 主页发现页面。
单击“Google”。 浏览器将重定向到 Google 登录页。
输入 Google 帐户的凭据,并拒绝用户许可窗体中的条款。
你的浏览器将重定向到 https://localhost:65000/。 可以看到,你的 Google 用户名已显示在页的左上角。 这表示你已登录到信赖方应用程序。若要从信赖方应用程序中注销,请单击“注销”链接。 你会发现,该应用程序已不再对你进行身份验证。