OAuth框架要求向授权和资源服务器注册客户端。在OAuth中没有发现类似于Open中的发现。
事实上,如果您尝试在不使用任何库的情况下实现OAuth客户端,那么在验证redirect_uri和客户端应用程序的身份方面,谷歌授权服务器是更严格的服务器之一。
然而,当您使用Microsoft Owin Google身份验证提供程序时,它可以使用谷歌对用户进行身份验证,而无需客户端注册、客户端Id和客户端机密,以及将由谷歌验证的适当redirect_uri。
这是如何工作的呢?微软自己的实现是如何做到这一点的呢?
发布于 2015-08-04 10:37:44
实际上,OWIN/Katana 3中有两个不同的Google提供商:
GoogleOAuth2AuthenticationHandler:顾名思义,它是基于OAuth2的。从历史上看,这是最近的一次,并在2015年7月得到了支持。GoogleAuthenticationHandler:基于OpenID 2.0,当谷歌开始反对支持OpenID 2.0:https://developers.google.com/identity/sign-in/auth-migration#timetable时,它被标记为Obsolete。此提供程序不再工作,您将被谷歌重定向到一个帮助页面,解释OpenID 2.0支持已被删除。提供程序是由Katana根据您在代码中使用的扩展“自动”选择的:https://github.com/jchannon/katanaproject/blob/master/src/Microsoft.Owin.Security.Google/GoogleAuthenticationExtensions.cs。
只有OpenID 2.0提供程序允许您通过谷歌进行身份验证,而不必先注册应用程序:如果您尝试使用OAuth2提供程序而不指定client_id和client_secret,则会引发异常。
https://stackoverflow.com/questions/31789132
复制相似问题