使用 Junos XML 协议服务器对明文或 SSL 连接进行身份验证
使用明文或 SSL 协议的客户端应用程序必须通过 Junos XML 协议服务器进行身份验证。(使用 SSH 或 Telnet 协议的应用程序在发出初始化标记元素之前使用该协议的内置身份验证机制,如 连接到 Junos XML 协议服务器中所述。
请参阅以下部分:
提交身份验证请求
客户端应用程序通过发出 <rpc>
包含元素的 <request-login>
标记来开始身份验证过程。在元素中 <request-login>
,它包含元素 <username>
以指定用于建立连接的 Junos OS 帐户(用户名)。必须已在 Junos XML 协议服务器设备上配置帐户,如 满足与 Junos XML 协议服务器建立连接的先决条件中所述。您可以选择应用程序是否提供帐户密码作为初始标记序列的一部分。
从 Junos OS 版本 13.3R7、14.1R6、14.2R4、15.1R2 和 16.1R1 开始,必须对 RPC 请求的 <request-login>
用户名或密码元素中的任何 XML 特殊字符进行转义。以下五个符号被视为特殊字符:大于 (>)、小于 (<)、单引号 (')、双引号 (“) 和与号 (&)。实体引用和字符引用都是可接受的转义序列格式。例如, &
和 &
是与号的有效表示形式。
使用用户名提供密码
为了提供密码和用户名,应用程序会发出以下标记序列:
<rpc> <request-login> <username>username</username> <challenge-response>password</challenge-response> </request-login> </rpc>
如果应用程序自动访问路由、交换或安全平台信息,并且不与用户交互,或者在开始身份验证过程之前从用户处获取密码,则此标记序列适用。
仅提供用户名
若要省略密码并仅指定用户名,应用程序将发出以下标记序列:
<rpc> <request-login> <username>username</username> </request-login> </rpc>
如果应用程序在身份验证过程开始之前未获取密码,则此标记序列是合适的。在这种情况下,Junos XML 协议服务器返回 <challenge>
元素中的 <rpc-reply>
标记,以请求与用户名关联的密码。该元素将字符串括起来 Password:
,客户端应用程序可以将该字符串作为用户的提示转发到屏幕。 echo="no"
开始 <challenge>
标记中的属性指定用户键入的密码字符串不会在屏幕上回显。标签序列如下:
<rpc-reply xmlns:junos="URL"> <challenge echo="no">Password:</challenge> </rpc-reply>
客户端应用程序获取密码并发出以下标记序列,以将其转发到 Junos XML 协议服务器:
<rpc> <request-login> <username>username</username> <challenge-response>password</challenge-response> </request-login> </rpc>
解释身份验证响应
收到用户名和密码后,Junos XML 协议服务器会发出该 <authentication-response>
元素,以指示身份验证尝试是否成功。
身份验证成功时的服务器响应
如果密码正确,则身份验证尝试成功,Junos XML 协议服务器发出以下标记序列:
<rpc-reply xmlns:junos="URL"> <authentication-response> <status>success</status> <message>username</message> <login-name>remote-username</login-name> </authentication-response> </rpc-reply>
该 <message>
元素包含用于建立连接的 Junos 用户名。
该 <login-name>
元素包含客户端应用程序提供给身份验证实用程序(如 RADIUS 或 TACACS+)的用户名。仅当用户名与元素中包含的 <message>
用户名不同时,才会显示此元素。
Junos XML 协议会话开始,如 启动 Junos XML 协议会话中所述。
身份验证失败时的服务器响应
如果密码不正确或 <request-login>
元素格式不正确,身份验证尝试将失败,Junos XML 协议服务器将发出以下标记序列:
<rpc-reply xmlns:junos="URL"> <authentication-response> <status>fail</status> <message>error-message</message> </authentication-response> </rpc-reply>
error-message元素中的<message>
字符串解释了身份验证尝试失败的原因。Junos XML 协议服务器在拒绝身份验证尝试并关闭连接之前,最多再发出<challenge>
两次标记。
<request-login>
用户名或密码元素中的任何 XML 特殊字符进行转义。