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
身份验证方案提供。