2.5. 身份验证的客户端身份

RESTCONF服务器必须验证客户端对任何受保护资源的访问。如果RESTCONF客户端没有通过认证,那么服务器应该发送一个HTTP响应,其中包含一个“401 Unauthorized”状态行,如[RFC7235]第3.1节所定义。在这种情况下使用错误标签值“access-denied”。

为了验证客户端,RESTCONF服务器应该要求基于TLS客户端证书的验证(RFC5246第7.4.6节)。如果基于证书的认证不可行(例如,因为不能为客户建立所需的PKI),则可以使用HTTP认证。在后一种情况下,务必使用“超文本传输​​协议(HTTP)认证方案注册管理机构”(RFC7235第5.1节)中定义的HTTP认证方案之一。

服务器也可以支持客户端证书和HTTP客户端认证方案的组合,并确定如何处理这个组合作为实现的决定。

从所使用的认证机制派生的RESTCONF客户端标识在下文中被称为“RESTCONF用户名”,并且受到NETCONF访问控制模型(NACM)[RFC6536]的约束。当客户端证书被提交时,RESTCONF用户名必须使用[RFC7589]第7节中定义的算法派生。对于所有其他情况,使用HTTP身份验证时,RESTCONF用户名必须由所使用的HTTP身份验证方案提供。