

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用第三方 SAML 2.0 身份提供商的基于属性的应用程序授权
<a name="application-entitlements-saml"></a>

应用程序授权控制对应用程序堆栈中特定 WorkSpaces 应用程序的访问权限。这是通过使用第三方 SAML 2.0 身份提供商的 SAML 2.0 属性断言来实现的。当用户身份联合到 Applications 2.0 SAML WorkSpaces 应用程序时，断言与值匹配。如果授权为真，并且属性名称和值匹配，则用户身份有权访问堆栈中的一个或多个应用程序。

使用第三方 SAML 2.0 身份提供商的基于属性的应用程序授权不适用于以下情况。换句话说，在以下情况下，该授权将被忽略：
+ WorkSpaces 应用程序用户池身份验证。有关更多信息，请参阅 [Amazon WorkSpaces 应用程序用户池](user-pool.md)。
+ WorkSpaces 应用程序流式传输 URL 身份验证。有关更多信息，请参阅 [流式传输 URL](use-client-start-streaming-session-streaming-URL.md)。
+ 将 WorkSpaces 应用程序队列配置为 “**桌面流” 视图时的桌面**应用程序。有关更多信息，请参阅 [创建 Amazon WorkSpaces 应用程序队列和堆栈](set-up-stacks-fleets.md)。
+ 使用动态应用程序框架的堆栈。动态应用程序框架提供单独的应用程序授权功能。有关更多信息，请参阅 [使用动态应用程序框架从动态应用程序提供程序进行应用程序授权](dynamic-app-framework.md)。
+ 当用户联合到应用程序 WorkSpaces 应用程序目录时，应用程序授权将仅显示用户有权使用的应用程序。应用程序不受限制在 WorkSpaces 应用程序会话中运行。例如，在为桌面流视图配置的实例集中，用户可以直接从桌面启动应用程序。

## 创建应用程序授权
<a name="manage-application-entitlements"></a>

在创建应用程序授权之前，您必须执行以下操作：
+ 创建 WorkSpaces 应用程序队列并使用包含一个或多个应用程序（Always-On 或按需队列）或分配的应用程序（Elastic 队列）的映像进行堆栈，以满足您的需求。有关更多信息，请参阅 [创建 Amazon WorkSpaces 应用程序队列和堆栈](set-up-stacks-fleets.md)。
+ 使用第三方 SAML 2.0 身份提供商为用户提供对堆栈的访问权限。有关更多信息，请参阅 [亚马逊 WorkSpaces 应用程序与 SAML 2.0 集成](external-identity-providers.md)。如果您使用的是之前设置的现有 SAML 2.0 身份提供商，[步骤 2：创建 SAML 2.0 联合身份验证 IAM 角色](external-identity-providers-setting-up-saml.md#external-identity-providers-grantperms)请参阅，了解向您的 IAM 角色信任策略添加 sts: TagSession 权限的步骤。有关更多信息，请参阅[在 AWS STS中传递会话标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html)。使用应用程序授权需要此权限。

**创建应用程序授权**

1. [打开 WorkSpaces 应用程序控制台](managing-image-builders-connect-console.md)。

1. 在左侧导航窗格中，选择**堆栈**，然后选择要为其管理应用程序授权的堆栈。

1. 在**应用程序授权**对话框中，选择**创建**。

1. 为您的授权输入**名称**和**描述**。

1. 为您的授权定义属性名称和值。

   映射属性时，以 At https://aws.amazon.com/SAML/ tributes/PrincipalTag: \$1TagKey\$1 格式指定属性，其中 \$1TagKey\$1 是以下属性之一：
   + roles
   + department
   + organization
   + groups
   + title
   + costCenter
   + userType

   您定义的属性用于在堆栈中的应用程序联合到应用程序会话时将这些 WorkSpaces 应用程序授权给用户。授权是通过将属性名称与联合身份验证期间创建的 SAML 断言中的键值名称进行匹配来实现的。有关更多信息，请参阅 [SAML PrincipalTag 属性](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html#saml_role-session-tags.html)。
**注意**  
任何受支持的属性中均可包含一个或多个值，并以冒号（:）分隔。  
例如，可以在值为 “group1: group2: group3” 的 SAML https://aws.amazon.com/SAML/ 属性名称属性/: Groups中传递群PrincipalTag组信息，并且您的授权可以允许基于单个组值（即 “group1”）的应用程序。有关更多信息，请参阅 [SAML PrincipalTag 属性](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html#saml_role-session-tags.html)。

1. 在堆栈中配置应用程序设置以授权所有应用程序或所选应用程序。选择**所有应用程序(\$1)** 将应用堆栈中所有可用的应用程序，包括将来添加的应用程序。选择**所选应用程序**将根据特定的应用程序名称进行筛选。

1. 审核设置并创建授权。您可以重复该过程并创建其他授权。堆栈中应用程序的授权将是基于属性名称和值与用户匹配的所有授权的组合。

1. 在您的 SAML 2.0 身份提供商中，配置您的 WorkSpaces 应用程序 SAML 应用程序属性映射以发送您的授权中定义的属性和值。当用户联合到应用程序 WorkSpaces 应用程序目录时，应用程序授权将仅显示用户有权使用的应用程序。

## SAML 2.0 多堆栈应用程序目录
<a name="saml-application-catalog"></a>

借助使用第三方 SAML 2.0 身份提供商的基于属性的应用程序授权，您可以允许从单个中继状态 URL 访问多个堆栈。从中继状态 URL 中移除堆栈和应用程序（如果存在）参数，如下所示：

```
https://relay-state-region-endpoint?accountId=aws-account-id-without-hyphens
```

当用户联合到 WorkSpaces 应用程序目录时，他们将看到应用程序授权已将一个或多个应用程序与用户匹配的所有堆栈，这些堆栈的账户 ID 和中继状态端点与您的堆栈所在区域关联的中继状态端点。当用户选择目录时，应用程序授权将仅显示该用户有权使用的应用程序。有关更多信息，请参阅 [步骤 6：配置您的联合身份验证的中继状态](external-identity-providers-setting-up-saml.md#external-identity-providers-relay-state)。

**注意**  
要使用 SAML 2.0 多堆栈应用程序目录，您需要为 SAML 2.0 联合身份验证 IAM 角色配置内联策略。有关更多信息，请参阅 [步骤 3：为 IAM 角色嵌入内联策略](external-identity-providers-setting-up-saml.md#external-identity-providers-embed-inline-policy-for-IAM-role)。