Authentication 如果我的应用程序服务器通过SPNEGO验证访问权限,我的应用程序代码对该用户了解多少?

Authentication 如果我的应用程序服务器通过SPNEGO验证访问权限,我的应用程序代码对该用户了解多少?,authentication,jakarta-ee,authorization,websphere,single-sign-on,Authentication,Jakarta Ee,Authorization,Websphere,Single Sign On,我要做的是使用应用服务器(WAS)针对SPNEGO单点登录服务的身份验证在网页级别对用户进行身份验证 一旦用户在那里经过身份验证,我希望能够限制用户在Active Directory中可以执行的操作,这取决于用户所在的组 我不知道的是,如果用户已经通过SSO进行了身份验证,那么应用程序代码本身对用户以及用户所在的组了解多少?它是如何获得这些信息的?来自@Gas的评论 SPNEGO与此无关。你可以正常登录,效果也一样。从用户注册表读取用户组(很可能是AD)。要限制操作,您可以在应用程序中创建安全角

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

一旦用户在那里经过身份验证,我希望能够限制用户在Active Directory中可以执行的操作,这取决于用户所在的组

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

来自@Gas的评论


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


因此,应用程序不需要知道授权用户的姓名。您需要访问经过身份验证的用户的userid,您可以使用request.getRemoteUser()方法。请参见此处的详细信息

SPNEGO与此无关。你可以正常登录,效果也一样。从用户注册表读取用户组(很可能是AD)。要限制操作,您可以在应用程序中创建安全角色,将角色映射到组,然后通过isUserInRole(“abc”)签入应用程序。这是一个非常简短的总结。查找JavaEE身份验证/授权文章。啊,很有趣-因此应用程序不需要知道授权用户的名称。这就是我遗漏的一点——应用程序如何获得用户名(不需要)。如果你写下来作为回答,我会给你的信用。感谢您迟来的回复(繁忙时间),我将在几天内总结一下。仅供参考-如果需要访问经过身份验证的用户的用户ID,可以使用
request.getRemoteUser()
方法。请参见此处的详细信息。