具有多个AuthnContextClassRef和Response的SAML请求,指示每个的状态

时间:2015-02-23 20:40:46

标签: saml

考虑我有一个n因素身份验证:

  

SAML:AuthnContextClassRef   urn:oasis:names:tc:SAML:2.0:ac:classes:Password ...   saml:AuthnContextClassRef urn:oasis:names:tc:SAML:2.0:ac:classes:TimesyncToken

如何在响应中指明每个结果? 我需要断言吗?我不想依靠单个StatusCode来表示最终结果。

1 个答案:

答案 0 :(得分:0)

  •   

    编辑:这个答案是错误的,因为一个响应只能有一个   AuthnContextClassRef元素在注释中指出。一会儿   必须包含AuthnContextDecl嵌套元素和值   这是SP和IDP之间达成的协议。谢谢@Patrick

您可以在SAML响应中包含多个AuthnContextClassRef元素,作为AuthnStatementAssertion的一部分,例如:

<AuthnContext>
    <AuthnContextClassRef>
        urn:oasis:names:tc:SAML:2.0:ac:classes:Password
    </AuthnContextClassRef>
    <AuthnContextClassRef>
        urn:oasis:names:tc:SAML:2.0:ac:classes:TimesyncToken
    </AuthnContextClassRef>
</AuthnContext>

那些代表“背景”wrt。身份验证事件。如果某些因素是可选的,那么您只会包含成功的因素,而忽略那些未成功或未触发的因素。

StatusCode实际上与此无关,表明整体身份验证成功/失败。