ACS 错误代码

更新时间:2015 年 6 月 19 日

适用于:Azure

本主题包括使用Microsoft Azure Active Directory 访问控制 ((也称为访问控制服务或 ACS) )时可能会遇到的最常见错误消息,以及修复错误所需的操作(如果适用)。 有关如何根据错误代码提供自定义错误处理的信息,请参阅 如何:对自定义错误处理使用错误 URL

重要

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

重要

请不要在应用程序逻辑中使用 ACS 错误代码或说明。 在编写错误处理代码时,请使用 HTTP 状态和错误代码的值。 ACS 错误代码和错误说明随时会发生更改且不发出警告。 有关详细信息,请参阅 ACS 重试指南ACS 服务限制

活动的联合身份验证协议错误,包括 SOAP 和 WS 信任

ACS 错误 HTTP 状态代码 消息 纠正方法

ACS10000

400

处理 SOAP 消息时出错

消息中提供了详细信息。

ACS10001

400

处理 SOAP 标头时出错

消息中提供了详细信息。

ACS10002

400

处理 SOAP 主体时出错

消息中提供了详细信息。

ACS10003

400

处理安全标头时出错

消息中提供了详细信息。

WS 联合身份验证协议错误,包括联合元数据

本部分中的错误与 WS 联合身份验证协议和 WS 联合身份验证元数据相关。

若要生成有效的WS-FederationMetadata.xml文件,请使用 FedUtil 或 2012 Visual Studio中的标识和访问工具。 ACS 管理门户还会为每个访问控制命名空间生成WS-Federation元数据文档。 若要查看它,请在 ACS 管理门户中单击 “应用程序集成”。

若要自定义WS-Federation元数据,请使用 Microsoft.IdentityModel.Protocols.WSFederation.Metadata 命名空间中的类。

有关 OASIS 标准WS-Federation元数据 XML 架构规范,请参阅 Web 服务联合语言 (WS 联合身份验证) 版本 1.2 标准 http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#_Toc223174942的第 3 部分。

有关特定错误及其解决方案的详细信息,请参阅下表中的条目。

错误 HTTP 状态代码 消息 纠正方法

ACS20000

400

处理 WS 联合身份验证登录请求时出错

消息中提供了详细信息。

ACS20001

400

处理 WS 联合身份验证登录响应时出错

消息中提供了详细信息。

ACS20002

400

尝试生成联合元数据时出错

消息中可能提供了更多详细信息。 验证访问控制命名空间中是否存在主令牌签名证书。

ACS20003

400

尝试导入联合元数据时出错

消息中可能提供了更多详细信息。 确保元数据 URL 或元数据文件有效。

ACS20004

无法从元数据中检索实体

确保元数据文件包含实体 ID。

ACS20005

不支持多个元数据实体

确保联合元数据只包含一个实体。

ACS20006

找不到安全令牌服务描述符

确保联合元数据只包含一个安全令牌服务描述符。

ACS20007

不支持多个安全令牌服务描述符

确保联合元数据只包含一个安全令牌服务描述符。

ACS20008

400

只能导入支持WS-Federation的标识提供者。

只能导入支持WS-Federation的信赖方。

确保联合元数据包含“fed:SecurityTokenServiceType”类型的 RoleDescriptor。

ACS20009

400

读取 WS 联合身份验证元数据文档时出错

ACS 无法分析提供的元数据文档,因此可能无效。 你可以通过 Microsoft.IdentityModel.Protocols.WSFederation.Metadata.MetadataSerializer.ReadMetadata() 运行你的文档,从而对它进行验证。

ACS20010

找不到应用程序服务描述符

确保元数据文件包含应用程序服务描述符。

ACS20011

不支持多个应用程序服务描述符

确保元数据文件只包含一个应用程序服务描述符。

ACS20012

400

传入的请求不是有效的 WS 联合身份验证请求

确保该请求是有效的 WS 联合身份验证登录请求或登录响应,并且包含所需的全部参数。

ACS20014

400

WS 联合身份验证元数据文档中的 XML 格式不正确

当 WS 联合身份验证元数据文档中的 XML 语法不正确时(例如,该文档中的括号或标记多余或者缺失),就会发生此错误。 尝试手动创建或编辑WS-FederationMetadata.xml文档时,通常会发生这种情况。 此错误与元数据 XML 架构的符合性无关。

若要解决此错误,请使用 XML 验证程序工具,例如 Visual Studio 或 XML 记事本 2007 中的工具。

OpenID 协议错误

错误 HTTP 状态代码 消息 纠正方法

ACS30000

400

处理 OpenID 登录响应时出错。

消息中提供了详细信息。

ACS30001

400

无法验证 OpenID 响应签名。

OpenID 签名无效或者被标识提供程序拒绝。 请确保消息未被篡改。

Facebook 图表协议错误

错误 HTTP 状态代码 消息 纠正方法

ACS40000

400

处理 Facebook 登录响应时出错。 原因可能是 Facebook 应用程序的配置无效。

验证 ACS 上配置的应用程序 ID 和机密是否与 Facebook 开发人员门户中的相同值匹配。

ACS40001

400

尝试从 Facebook 获取访问令牌时出错。

确保通过 ACS 配置的应用程序 ID 和应用程序机密有效。

常规安全令牌服务错误,包括标识提供程序元数据

错误 HTTP 状态代码 消息 纠正方法

ACS50000

颁发令牌时出错。

消息中提供了详细信息。

ACS50001

400

请求的信赖方领域“领域 URL>”<未知。

令牌请求中提供的 AppliesTo 与 ACS 中配置的领域不匹配。 检查是否为 1。 你的信赖方正确配置了其领域。 你可以通过管理门户或使用管理服务查看 RelyingParty.RelyingPartyAddresses 条目,以执行此项检查。2. 你的信赖方已与标识提供程序相关联。 你也可以通过管理门户或使用管理服务查看 RelyingPartyIdentityProviders 条目,以执行此项检查。

ACS50002

400

服务配置无效。 (消息中提供了详细信息。)

消息中提供了详细信息。

ACS50003

400

未配置主对称签名密钥。 SWT 需要对称签名密钥。

如果所选信赖方使用 SWT 作为其令牌类型,请验证是否为信赖方或访问控制命名空间配置了对称密钥,并且密钥已设置为主密钥,并在其有效期内进行配置。

ACS50004

400

未配置主 X.509 签名证书。 SAML 需要一个签名证书。

如果所选信赖方使用 SAML 作为其令牌类型,请确保为信赖方或访问控制命名空间配置有效的 X.509 证书。 该证书必须已设置为主证书且在其有效期内。

ACS50005

400

需要令牌加密,但未为信赖方配置加密证书。

为选定的信赖方禁用令牌加密,或上载要用于令牌加密的 X.509 证书。

ACS50006

403

签名验证失败。 (消息中可能包含了更多详细信息。)

确保通过 ACS 配置的验证密钥有效。

ACS50007

400

找不到签名。

确保传入的令牌已签名且有效。

ACS50008

401

SAML 令牌无效。 (消息中可能包含了更多详细信息。)

有关详细信息,请参阅 如何修复错误 ACS50008

ACS50009

401

SWT 令牌无效。 (消息中可能包含了更多详细信息。)

消息中提供了详细信息。

ACS50010

403

受众 URI 验证失败。 (消息中可能包含了更多详细信息。)

确保传入令牌的受众设置为 https://yournamespace.accesscontrol.windows.net

ACS50011

400

ReplyTo 地址不存在或与领域不匹配。

若要使用 WS 联合身份验证,必须为信赖方至少配置一个 ReplyTo 地址。
这可以在 ACS 管理门户中使用“返回 URL”字段进行配置。
如果传入消息指定 ReplyTo 地址,请确保它与配置的 ReplyTo 匹配,或者它是一个 (后缀,例如,对于配置的 ReplyTo http://example.com/path1/, http://example.com/path1/index.aspx 将是一个有效的请求 ReplyTo,但 http://example.com/path2/index.aspx 不会) 。

ACS50012

401

身份验证失败。 (消息中可能包含了更多详细信息。)

当多租户应用程序尝试获取令牌以访问最近同意该应用程序的 Azure AD 租户的 Graph API 时,令牌请求可能会暂时失败,并出现 ACS50012 错误。 若要解决该问题,请等待几分钟,然后重试。 或者,让提供同意信息的租户管理员在同意之后登录应用程序。

ACS50013

400

URI 值中的段数大于路径段的最大可接受数。

确保 URI 值中的段数等于或小于 32。

ACS50014

400

服务和管理标识不允许使用自断言的声明。

确保服务标识身份验证令牌不包含任何声明或仅包含名称标识符声明。

ACS50015

400

尝试获取标识提供程序元数据时出错。

消息中可能提供了更多详细信息。 确保元数据 URL 或文件有效。

ACS50016

400

具有使用者“证书使用者名称>”和指纹“<<证书指纹>”的 X509Certificate 与任何配置的证书不匹配。

确保已将请求的证书上载到 ACS。

ACS50017

401

使用者为“证书使用者名称>”<和颁发者“颁发者名称>”<的证书验证失败。

确保该证书是自签名证书或者已链接到受信任的根证书颁发机构。 另外,该证书还必须未被吊销,并且在其有效期内。 有关详细信息,请参阅 如何修复错误 ACS50017

ACS50018

400

缺少领域。 未指定信赖方的名称。

确保请求包含一个领域。

ACS50019

401

用户取消了登录。

ACS50020

401

用户未经授权。

ACS50022

400

回调参数值“函数名称>”<不是有效的 JavaScript 函数名称。

确保指定的回调参数名称是有效的 JavaScript 函数名称。 有效的 JavaScript 函数名称只能包含字母、数字以及“$”和“_”字符,并且不能以数字开头。 不支持在函数名称中使用 Unicode 字符。

ACS50026

具有名称“name”的主体不是有效的主体。

此错误指示尝试按指定名称查找实体失败,因为 ACS 不知道该实体。 此实体可能是服务标识、信赖方应用程序或标识提供程序,具体取决于方案。

验证此实体是否存在于访问控制命名空间中。

ACS50042

401

生成成对标识符所需的 salt 不存在。 如果刚刚注册了此应用程序,请等待几分钟再重试。

如果在将某个应用程序添加到 Azure AD 后立即尝试登录该应用程序,在同步成对密钥之前登录尝试可能会失败。 请等待几分钟再重试登录。 有关详细信息,请参阅 ACS 重试指南

规则引擎、数据和管理服务错误

错误 HTTP 状态代码 消息 纠正方法

ACS

60000

403

策略引擎错误

消息中提供了详细信息。

ACS60001

在处理规则期间未生成任何输出声明。

与所选的信赖方关联的规则组中没有任何规则适用于你的标识提供程序生成的声明。 请在与信赖方关联的规则组中配置一些规则,或使用规则组编辑器生成传递规则。

ACS60002

403

已达到令牌请求数的配额,不能请求更大的配额。

ACS60003

403

无法修改只读属性。

某些内置 ACS 对象无法修改或删除。

ACS60004

409

版本冲突

尝试将某个信赖方、标识提供程序、服务标识或颁发者更新为与另一个信赖方、标识提供程序、服务标识或颁发者同名时,可能会收到版本冲突错误。 若要解决该错误,请选择一个不同的唯一名称。

ACS60005

400

尝试添加的子对象具有无效的父对象或缺少父对象。

对于子对象(例如地址),请确保父对象或对象 ID 有效且类型正确。

ACS60006

400

尝试插入的新的对象副本在数据库中已存在。

尝试插入的对象违反了唯一性约束。 请确保对象的属性(例如名称和地址)是唯一的(如果需要)。

ACS60007

400

X.509 证书无效

确保提供的字节是有效的 X.509 证书。

ACS60008

找不到此 <对象类型>的唯一名称。

ACS60012

输入声明的数量 (#) 超出了限制 (80)。

传入令牌中的声明数量不能超过 80,只有这样,ACS 才能处理这些声明并成功颁发传出令牌。

ACS60021

503

服务不可用

令牌请求被拒绝,因为 ACS 数据服务器正在忙于响应来自所有命名空间的令牌请求。 请等待几秒,然后按不断增加的时间间隔重试请求。 有关详细信息,请参阅 ACS 重试指南

OAuth 2.0 协议错误

错误 HTTP 状态代码 消息 修复错误所要执行的操作

ACS70000

401

提供的访问授权无效或者已过期或吊销。

消息中提供了详细信息。

ACS70001

401

客户端未经授权。

ACS70002

401

客户端无效。

ACS70003

401

授权服务器不支持包含的访问授权。

ACS 管理门户错误

错误 HTTP 错误代码 消息 修复错误所要执行的操作

ACS80001

404

此规则是为了使用管理门户并不支持的声明颁发者类型而配置的。 请使用管理服务来查看并编辑此规则。

如果将规则使用的颁发者配置为非标识提供程序或访问控制服务“本地颁发机构”颁发者,则会发生此错误。 有关如何使用 ACS 管理服务的详细信息,请参阅 ACS 管理服务

其他错误数

错误 HTTP 错误代码 消息 纠正方法

ACS90002

404

URL 中的服务命名空间名称无效。

验证请求访问控制命名空间是否存在。

ACS90004

400

请求的格式不正确。

ACS90005

502

外部服务器错误。 (消息中可能提供了更多详细信息。)

与外部服务器(例如标识提供程序)通信时出错。

ACS90006

504

外部服务器超时。

与外部服务器(例如标识提供程序)通信时发生通信超时。

ACS90007

405

请求方法不受允许。

确保该终结点支持所用的 HTTP 方法(例如 GET 和 POST)。

ACS90008

403

租户已被禁用。

请确保访问控制命名空间处于活动状态。

ACS90009

404

找不到 <给定 ID 的对象> 。

消息中提供了详细信息。

ACS90010

400

不支持。 (消息中可能提供了更多详细信息。)

消息中提供了详细信息。

ACS90011

400

请求无效。 (消息中可能提供了更多详细信息。)

消息中提供了详细信息。

ACS90012

408

对服务器的请求已超时。

消息中提供了详细信息。

ACS90013

400

用户输入无效。 (消息中可能提供了更多详细信息。)

消息中提供了详细信息。

ACS90014

400

缺少必需的字段“<Field>”。

请确保对 ACS 的请求包含所使用的协议所需的所有参数。

ACS90015

403

未授权:此租户的服务密钥受到限制。

ACS 不会显示属于 ServiceBus 和缓存命名空间的密钥。 若要查看这些密钥,请使用 ServiceBus 或缓存门户。

ACS90016

400

“密钥大小>”<位是无效的密钥大小。 密钥大小必须大于 0 且是 8 的倍数。

ACS90046

503

服务不可用

令牌请求被拒绝,因为 ACS 正在忙于响应来自所有命名空间的令牌请求。 请等待几秒,然后按不断增加的时间间隔重试请求。 有关详细信息,请参阅 ACS 重试指南

ACS90055

429

请求过多

令牌请求被拒绝,因为此命名空间长时间超出了最大令牌请求速率(每秒 30 个令牌)。 请等待几秒,然后按不断增加的时间间隔重试请求。 如果该错误重复发生,请考虑将工作负载重新分散到多个命名空间。 有关详细信息,请参阅 ACS 服务限制