3.2.2.2 元素<StatusCode>

本博客采用知识共享署名 4.0 国际许可协议进行许可

<StatusCode>元素指定了一个编码或者一组嵌套的编码,用它们来代表相应请求的状态。<StatusCode>元素有下列的元素和属性:

  • Value [必须]

状态码的值。该属性包含一个URI引用。最顶层的<StatusCode>元素的值必须来自本节提供的顶级列表。

  • <StatusCode> [可选]

一个下级的状态码,用来提供关于错误条件的更详细的信息。注意,响应者可能会省略下级的状态码,以防止试图通过故意发出错误请求来探查额外信息的攻击。

被许可的顶级<StatusCode>的值如下:

  • urn:oasis:names:tc:SAML:2.0:status:Success

请求是成功的。额外的信息可以在<StatusMessage>或<StatusDetail>元素中返回。

  • urn:oasis:names:tc:SAML:2.0:status:Requester

由于请求者出错,无法执行请求。

  • urn:oasis:names:tc:SAML:2.0:status:Responder

由于响应者或SAML机构出错,无法执行请求。

  • urn:oasis:names:tc:SAML:2.0:status:VersionMismatch

SAML响应者无法处理请求,因为请求信息的版本不正确。额外的二级状态代码可能在SAML规范的未来版本中定义。系统实体可以通过定义适当的URI引用来自由定义更具体的状态代码。

  • urn:oasis:names:tc:SAML:2.0:status:AuthnFailed

响应提供方不能成功认证委托人的身份。

  • urn:oasis:names:tc:SAML:2.0:status:InvalidAttrNameOrValue

在<saml:Attribute>或<saml:AttributeValue>元素中出现了违法的或不期待的内容。

  • urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy

响应提供方不能支持所请求的名称标识符策略。

  • urn:oasis:names:tc:SAML:2.0:status:NoAuthnContext

指定的认证上下文需求没有被SAML响应者满足。

  • urn:oasis:names:tc:SAML:2.0:status:NoAvailableIDP

被中间层所使用,用来指示<IDPList>中支持的<Loc>元素没有一个能被解析,或者说支持的身份提供商没有一个是可用的。

  • urn:oasis:names:tc:SAML:2.0:status:NoPassive

指示响应提供方无法按照请求被动验证主体。

  • urn:oasis:names:tc:SAML:2.0:status:NoSupportedIDP

被中间层所使用,用来指示<IDPList>中的身份提供商,没有一个是被中间层支持的。

  • urn:oasis:names:tc:SAML:2.0:status:PartialLogout

会话机构向会话参与者指示它无法将注销传播给所有其他会话参与者。

  • urn:oasis:names:tc:SAML:2.0:status:ProxyCountExceeded

指示响应提供程序无法直接对主体进行身份验证,并且不允许进一步代理请求。

  • urn:oasis:names:tc:SAML:2.0:status:RequestDenied

SAML响应者有能力处理请求但是选择不进行响应。当担忧请求消息的安全上下文或从特定请求者接收的请求消息序列时,可以使用该状态代码。

  • urn:oasis:names:tc:SAML:2.0:status:RequestUnsupported

SAML响应者不支持这个请求。

  • urn:oasis:names:tc:SAML:2.0:status:RequestVersionDeprecated

SAML响应者无法处理请求中指定的协议版本的任何请求。

  • urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooHigh

SAML响应者无法处理请求,因为请求消息中指定的协议版本比SAML响应者能支持的最高版本还高。

  • urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooLow

SAML响应者无法处理请求,因为请求消息中指定的协议版本太低了。

  • urn:oasis:names:tc:SAML:2.0:status:ResourceNotRecognized

请求消息中的资源值是违法的或者无法识别。

urn:oasis:names:tc:SAML:2.0:status:TooManyResponses

响应消息将包含比SAML响应者能够返回的元素更多的元素。

  • urn:oasis:names:tc:SAML:2.0:status:UnknownAttrProfile

一个不了解特定属性配置文件的实体在显示时却使用了该配置文件中的属性。

  • urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal

响应提供者无法识别请求中要进行验证的身份主体。

  • urn:oasis:names:tc:SAML:2.0:status:UnsupportedBinding

SAML响应者无法使用请求中指定的协议绑定来正确的完成请求。

下列的schema片段定义了<StatusCode>元素和它的 StatusCodeType复杂类型:

<element name="StatusCode" type="samlp:StatusCodeType"/>
<complexType name="StatusCodeType">
    <sequence>
        <element ref="samlp:StatusCode" minOccurs="0"/>
    </sequence>
    <attribute name="Value" type="anyURI" use="required"/>
</complexType>

Last updated

Was this helpful?