Oauth 2.0 OpenID提供者如何认证最终用户?
OpenID Connect 1.0使客户端能够基于授权服务器执行的身份验证来验证最终用户的身份,并提供访问令牌交换声明。访问令牌被提供给Oauth 2.0 OpenID提供者如何认证最终用户?,oauth-2.0,openid-connect,openid-provider,Oauth 2.0,Openid Connect,Openid Provider,OpenID Connect 1.0使客户端能够基于授权服务器执行的身份验证来验证最终用户的身份,并提供访问令牌交换声明。访问令牌被提供给/user\u info或/me端点,以获得请求的声明作为回报 规范的这一部分解释了对最终用户进行身份验证的过程。但是,它明确指出 授权服务器用于验证最终用户身份的方法(例如用户名和密码、会话cookie等)超出了本规范的范围 这些方法的实施正是我的问题。另外,该规范也没有提供有关实现的任何信息 我的疑问是我们如何认证最终用户?我能想到的可能案例有: 我们在授
/user\u info
或/me
端点,以获得请求的声明作为回报
规范的这一部分解释了对最终用户进行身份验证的过程。但是,它明确指出
授权服务器用于验证最终用户身份的方法(例如用户名和密码、会话cookie等)超出了本规范的范围
这些方法的实施正是我的问题。另外,该规范也没有提供有关实现的任何信息
我的疑问是我们如何认证最终用户?我能想到的可能案例有:
POST
请求以及用户凭据来验证用户凭据我试图遍历库的代码库,但库没有对用户进行身份验证,并跳过了该部分。如果有人能在这方面提供一些建议,那将是非常有帮助的。最佳实践应该是什么?任何其他OpenID提供程序都在使用什么方法?从关于 由于身份验证及其要求是通过完全不同的方式实现的,因此明确说明身份验证机制超出范围是有原因的。这完全可以通过您选择的任何类型的身份验证机制来完成,唯一的要求是身份验证实现对OpenID/OAuth请求的正确响应 假设您想让页面根据Active Directory进行身份验证。您所要做的就是使用适当的OAuth和OpenID插件(假设有)扩展现有的Active Directory系统,配置它们,在这些协议可用于身份验证和授权后,您可以将AD指定为OpenID/OAuth提供程序,提供给准备接受它们的人 早在OpenID早期,LiveJournal等网站第一次允许任意OpenID提供者进行身份验证,为了测试这一想法,我在我的hobby Web服务器上制作了一个模拟OpenID页面,该页面仅具有足够的OpenID支持,可以根据我在那里手动指定的密码对单个用户进行身份验证。效果不错,但可能是一个极端的例子。如今,使用Google OpenID connect或类似工具进行集中配置文件管理变得更容易 在何处存储授权信息的问题同样非常模糊,但通常将其存储在所使用的身份验证机制附近是有意义的,因为您正在使用此身份验证机制进行授权,因此,跟踪使用此特定身份验证授权的内容是有意义的 注意,OAuth允许经过身份验证的用户坐在驾驶座上,这通常是公共WebApp的情况 在非公共资源的情况下,资源持有者通常只订阅OpenID或其他联合身份条款,但会根据用户的来源和/或在特定身份方案中的身份自行决定用户可以访问哪些资源
例如,大学A图书馆系统可能允许大学B的学生基于B的联邦身份验证服务器登录,但不授予他们与自己的学生通过大学A认证系统进行认证相同的图书馆权利。如您所知,用户身份验证完全超出OpenID Connect或OAuth的范围。所以你基本上可以随心所欲,这正是我要问的。我怎么做?最佳实践是什么?在实现它时,我需要考虑哪些事情?好吧,因为它与OpenID Connect或OAuth无关,所以您的问题基本上变成了“如何对用户进行身份验证?”,这有点宽泛。不过有一件事:在资源服务器上实现身份验证完全违背了使用OpenID Connect的目的。因此,这就取消了第二点,即使用RESTAPI在资源服务器上进行身份验证。