代码之家  ›  专栏  ›  技术社区  ›  simonalexander2005

如果我的应用服务器通过spnego验证访问,那么我的应用程序代码对用户了解多少?

  •  0
  • simonalexander2005  · 技术社区  · 6 年前

    我要做的是使用应用服务器(WAS)对SPNEGO单点登录服务的身份验证在网页级别对用户进行身份验证。

    一旦用户在那里通过了身份验证,我希望能够限制用户可以执行的操作,基于他们所在的组,在active directory中。

    我不知道的是,如果用户已经通过sso进行了身份验证,那么应用程序代码本身可以了解用户以及他们所在的组是什么?它是如何得到这些信息的?

    1 回复  |  直到 6 年前
        1
  •  0
  •   simonalexander2005    6 年前

    来自@gas的评论

    Spnego与此事无关。你可以正常登录,效果也一样。从用户注册表读取用户组(很可能是AD)。要限制操作,可以在应用程序中创建安全角色,将角色映射到组,然后通过isuserinrole('abc')签入应用程序。这是非常简短的总结。查找JavaEE认证/授权文章。

    因此,应用程序不需要知道要授权的用户的姓名。您需要访问经过身份验证的用户的用户名,可以使用request.getremoteuser()方法。请参阅此处的详细信息 https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getRemoteUser()