如何:使用规则实现令牌转换逻辑

更新时间:2015 年 6 月 19 日

适用于:Azure

应用于

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

总结

本主题介绍如何使用 ACS 管理门户创建将输入声明转换为输出声明的规则。

目录

  • 目标

  • 概述

  • 步骤摘要

  • 步骤 1 – 导航到管理门户的“规则组”页

  • 步骤 2 – 自动生成新规则

  • 步骤 3 – 创建传递规则

  • 步骤 4 – 创建高级转换规则

  • 步骤 5 – 检查可用规则组

  • 步骤 6 – 配置用于特定规则组的信赖方

目标

  • 熟悉与声明转换规则相关的访问控制管理门户部分。

  • 创建基本规则。

  • 创建高级规则。

  • 基于标识提供程序声明创建规则。

  • 基于 ACS 声明创建规则。

概述

声明规则描述将 ACS 输入声明转换为输出声明的逻辑。 规则包含于与信赖方应用程序程序相关的规则组中。 每当向 ACS 颁发给信赖方应用程序的令牌时,将执行这些规则。 如果规则组不包含任何规则,ACS 不会向信赖方应用程序颁发令牌。

步骤摘要

若要为令牌声明转换创建规则,请使用以下步骤。 请注意,在某些情况下,有些步骤是可选的。

  • 步骤 1 – 导航到管理门户的“规则组”页

  • 步骤 2 – 自动生成新规则

  • 步骤 3 – 创建传递规则

  • 步骤 4 – 创建高级转换规则

  • 步骤 5 – 检查可用规则组

  • 步骤 6 – 配置用于特定规则组的信赖方

步骤 1 – 导航到管理门户的“规则组”页

此步骤说明如何导航到管理门户的“规则组”页,你可以在该页中创建规则并将其添加到规则组

导航到管理门户的“规则组”页

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

  2. 若要创建访问控制命名空间,请依次单击“新建”、“应用程序服务”和“访问控制”,然后单击“快速创建”。 (或者,先单击“访问控制命名空间”,然后单击“新建”。)

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

  4. 在“访问控制服务”页上,单击“规则组”

步骤 2 – 自动生成新规则

此步骤说明如何生成基本的默认规则。

自动生成基本规则

  1. 单击“规则组”

  2. 若要创建新的规则组,请在“规则组”页上单击“添加”

  3. 键入新规则组的名称,然后单击“保存”

  4. 若要自动生成基本规则,请单击“生成规则”

  5. 在“生成规则”页上,通过要生成的规则旁边的复选框指定标识提供程序,然后单击“生成”

  6. 检查自动生成的规则。 例如,为 Google 和 Windows Live ID (Microsoft 帐户生成的规则) 类似于下表的结果。) 如果出现了该标识提供程序,请单击“保存”

    输出声明 声明颁发者 规则说明

    emailaddress

    Google

    将来自 Google 的“emailaddress”声明传递为“emailaddress”

    name

    Google

    将来自 Google 的“name”声明传递为“name”

    NameIdentifier

    Google

    将来自 Google 的“nameidentifier”声明传递为“nameidentifier”

    NameIdentifier

    Windows Live ID

    将来自 Windows Live ID 的“nameidentifier”声明传递为“nameidentifier”

  7. 如果你未看到所需的标识提供程序,则应返回到管理门户的“标识提供程序”页,并指定该标识提供程序

  8. 若要添加标识提供程序,请执行以下操作方法主题中概述的步骤:

步骤 3 – 创建传递规则

此步骤说明如何创建传递规则。 传递规则是传出声明与传入声明完全相同的规则。

创建传递规则

  1. 单击“规则组”

  2. 在“规则组”页上,单击所需的规则组,然后单击“添加”

  3. 在“添加声明规则”页上,指定以下属性:

    • 声明颁发者 - 从下拉列表中选择所需的标识提供程序(如 Google 或 Windows Live ID),或者单击“访问控制服务”单选按钮

    • (以及)输入声明类型 - 为所有传入声明指定“任何”,或者从下拉列表中选择特定声明类型

    • (以及)输入声明值 - 为要传递的所有声明值指定“任何”,或者在“输入值”框中指定特定声明值以仅传递指定的声明值

    • 输出声明类型 - 通过选择“传递输入声明类型”单选按钮指定特定声明类型

    • 输出声明值 - 通过选择“传递输入声明值”单选按钮指定特定声明值

    • (建议)可以选择性地为规则添加说明,然后单击“保存”

步骤 4 – 创建高级转换规则

此步骤说明如何创建高级转换规则,而不是自动生成的规则和传递规则。

创建高级转换规则

  1. 单击“规则组”

  2. 在“规则组”页上,单击所需的规则组,然后单击“添加”

  3. 在“添加声明规则”页上,指定以下属性:

    • 声明颁发者 - 如果要从标识提供程序(如 Windows Live ID、Google、Facebook 和 Yahoo!)转换声明,请选择特定的“标识提供程序”单选按钮。 如果要转换服务标识的声明(对于 Web 服务)或从其他规则输出的声明,请选择“访问控制服务”

    • (以及)输入声明类型 - 从下拉框中选择要转换的声明类型;如果此处未列出该类型,请在“输入类型”文本框中输入声明类型

    • (以及)输入声明值 - 如果只想要转换与特定值匹配的声明,请在“输入值”文本框中指定该值

    • 输出声明类型 - 选择要映射到传入声明的输出声明类型;如果此处未列出该类型,请在“输入类型”文本框中输入声明类型

    • 输出声明值 - 如果要在输出声明中生成常量值,请在“输入值”文本框中指定特定值

步骤 5 – 检查可用规则组

此步骤说明如何检查包含声明转换规则的规则组。 规则组直接与信赖方应用程序关联。 一个规则组可由多个信赖方应用程序使用,并且一个信赖方应用程序可以引用多个规则组。 若要查看可用的规则组,请按照前面在步骤 1 中概述的步骤进行操作 - 导航到管理门户的规则组页。

步骤 6 – 配置用于特定规则组的信赖方

此步骤说明如何为信赖方(Web 应用程序或 RESTful Web 服务)设置特定的规则组。

配置用于特定规则组的信赖方的步骤

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

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

  3. 单击“信赖方应用程序”

  4. 在“信赖方应用程序”页上,单击所需的信赖方

  5. 向下滚动到“规则组”部分,然后选中要为此信赖方应用的所有规则组

  6. 单击“保存” 。