ACS 服务限制

更新时间:2015 年 6 月 19 日

适用于:Azure

本主题介绍Microsoft Azure Active Directory 访问控制 (也称为访问控制服务或 ACS) 允许服务的方方面面的最大值。

Google 标识提供程序支持

ACS 命名空间可以将其 Google 标识提供程序配置从 OpenID 2.0 迁移到 OpenID Connect。 迁移必须在 2015 年 6 月 1 日之前完成。 有关详细指导,请参阅将 ACS 命名空间迁移到 Google OpenID 连接

为每个输入令牌执行规则八次

每当 ACS 收到信赖方应用程序的输入令牌时,ACS 规则引擎就会同时执行与该信赖方应用程序关联的所有规则。 如果规则输出的附加声明在输入令牌中不存在,则会将这些声明作为输入值重新执行所有规则。 在执行完成后,如果未颁发新的声明或已完成八次执行(不管先满足哪个条件),将停止执行规则。

管理服务限制查询结果

当使用管理服务在规则组中查询规则时,该服务将查询结果限制为不超过 100 条规则。 这是因为管理服务使用开放式数据 (OData) 协议,而一次(分页)返回 100 个对象是 OData 终结点的标准行为。

每个 ACS 实体的结果大小如下所示:

  • 规则:100

  • 其他所有内容:50

更大的结果集只能通过在管理服务客户端代码中实现分页来进行处理。 有关分页示例,请参阅“如何:加载分页结果” (WCF Data Services) (https://go.microsoft.com/fwlink/?LinkID=193452) 。

传入声明限制

为了使 ACS 能够处理并成功颁发安全令牌,传入令牌中的声明数必须等于或不超过 80。 如果传入声明的数目大于 80,则生成以下错误消息: 输入声明 (#) 超出限制, (80)

令牌请求速率限制

为了提高所有用户的 ACS 可用性和性能,ACS 为每个命名空间实现了每秒 30 个令牌请求的持续速率限制。 此针对命名空间实施的速率限制以数分钟为时限,按每分钟平均值来度量,因此它不会由偶然的峰值触发。 如果令牌请求速率超过每秒 30 个请求持续很长时间,ACS 会在间隔期间拒绝命名空间中的过多令牌请求,并返回 HTTP 429“请求过多”错误,并返回 ACS90055 错误代码。

当 ACS 资源被来自所有命名空间的高令牌请求速率暂时使用时,ACS 也会拒绝令牌请求。 在这种情况下,ACS 返回 HTTP 503“服务不可用”错误,ACS90046 (ACS 忙碌) 或 ACS60021 (数据文件忙) 错误代码。

收到 HTTP 429 或 503 错误时,请使用退让计时器重试请求,如 ACS 重试指南中所述。 如果重试时不逐渐延长间隔时间,则不断重试可能会使问题恶化,而拒绝令牌请求的时间也会越来越长。 如果由于命名空间超过了令牌请求速率限制而重复出现 ACS90055-HTTP 429 错误,则可以考虑将单个命名空间替换为多个较小的命名空间,以便重新分配工作负荷。

另请参阅

概念

ACS 重试指导原则
ACS 错误代码