Web应用程序代理是YARN的一部分。默认情况下,它将作为资源管理器(RM)的一部分运行,但可以配置为以独立模式运行。使用代理的原因是为了减少通过YARN进行基于Web的攻击的可能性。
在YARN中,Application Master(AM)负责提供Web UI并将该链接发送到RM。这带来了许多潜在的问题。RM以受信任的用户身份运行,访问该网址的人会将其视为可信任的链接,并将其提供给他们的链接视为受信任的,而实际上AM是以不受信任的用户身份运行的,因此它提供给RM的链接可以指向任何恶意或其他方式。Web应用程序代理通过警告不拥有给定应用程序的用户正在连接到不受信任的站点来减轻这种风险。
除此之外,代理还试图减少恶意AM可能对用户的影响。它主要是通过从用户剥离cookie并将其替换为提供已登录用户的用户名的单个cookie来实现的。这是因为大多数基于Web的身份验证系统都会基于Cookie来识别用户。通过将此cookie提供给不受信任的应用程序,它为潜在的利用打开了机会。如果cookie的设计正确,那么潜在的可能性应该很小,但这只是为了减少潜在的攻击媒介。