本文档已存档,并且将不进行维护。

ACS 错误代码

发布时间: 2011年4月

更新时间: 2015年6月

应用到: Azure

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

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

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

 

ACS 错误 HTTP 状态代码 Message 补救措施

ACS10000

400

处理 SOAP 消息时出错

消息中提供了详细信息。

ACS10001

400

处理 SOAP 标头时出错

消息中提供了详细信息。

ACS10002

400

处理 SOAP 主体时出错

消息中提供了详细信息。

ACS10003

400

处理安全标头时出错

消息中提供了详细信息。

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

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

若要自定义 WS 联合身份验证元数据,请使用 Microsoft.IdentityModel.Protocols.WSFederation.Metadata 命名空间中的类。

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

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

 

错误 HTTP 状态代码 Message 补救措施

ACS20000

400

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

消息中提供了详细信息。

ACS20001

400

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

消息中提供了详细信息。

ACS20002

400

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

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

ACS20003

400

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

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

ACS20004

无法从元数据中检索实体

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

ACS20005

不支持多个元数据实体

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

ACS20006

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

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

ACS20007

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

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

ACS20008

400

只能导入支持 WS 联合身份验证的标识提供程序。
或者
只能导入支持 WS 联合身份验证的信赖方。

确保联合元数据包含“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 Notepad 2007 中的工具。

 

错误 HTTP 状态代码 Message 补救措施

ACS30000

400

处理 OpenID 登录响应时出错。

消息中提供了详细信息。

ACS30001

400

无法验证 OpenID 响应签名。

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

 

错误 HTTP 状态代码 Message 补救措施

ACS40000

400

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

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

ACS40001

400

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

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

 

错误 HTTP 状态代码 Message 补救措施

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 验证失败。(消息中可能提供了更多详细信息。)

确保传入令牌中的 Audience 已设置为 https://yournamespace.accesscontrol.windows.net

ACS50011

400

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

若要使用 WS 联合身份验证,必须为信赖方至少配置一个 ReplyTo 地址。
这可以在 ACS 管理门户中使用“返回 URL”字段进行配置。
如果传入的消息指定了 ReplyTo 地址,请确保该地址与已配置的 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

包含使用者“<证书使用者名称>”和指纹“<证书指纹>”的 X509 证书与任何配置的证书都不匹配。

确保已将请求的证书上载到 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 状态代码 Message 补救措施

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 重试指导原则

 

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

ACS70000

401

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

消息中提供了详细信息。

ACS70001

401

客户端未经授权。

ACS70002

401

客户端无效。

ACS70003

401

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

 

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

ACS80001

404

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

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

 

错误 HTTP 错误代码 Message 补救措施

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

未填写必填字段“<字段>”。

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

ACS90015

403

未授权:限制此用户使用服务密钥。

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

ACS90016

400

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

ACS90046

503

服务不可用

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

ACS90055

429

请求太多

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

显示: