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的标识提供者。 |
确保联合元数据包含“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 地址。 |
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 服务限制。 |