这个问题涉及到了Google OpenID的使用和认证过程。Google OpenID是一种基于OpenID的认证协议,允许用户使用Google账号在不同的网站和应用程序中进行登录。
在这个问题中,提到了同一用户的不同客户端计算机接收到了不同的Google OpenID。这可能是由于以下原因:
为了解决这个问题,用户可以尝试以下方法:
如果问题仍然存在,用户可以联系应用程序的支持团队,以获取进一步的帮助和支持。
采用这种方法的一个好处是将用户凭据管理等复杂的安全操作从应用程序中外部化。 通常,开发人员在集成社交登录时首次接触到 OAuth 。...这通常涉及将一个库插入应用程序中,然后编写几行代码将用户重定向到诸如 Google 或 Facebook 之类的 Provider ,之后令牌将返回到应用程序: 与旧的网站架构相比,这似乎是一个更有吸引力的选项...然而,简单的用户登录只是应用程序端到端安全生命周期的一小部分。 在使用社交登录时,存在一些架构和安全风险。因此,在本文中,我将指出最常见的问题。然后,我将展示如何以最佳方式实现社交登录解决方案。...快速的社交登录实现可能会使用一个公共客户端,该客户端接收没有 OAuth 客户端凭据的令牌,并将其暴露给浏览器。这与 OAuth 针对基于浏览器的应用程序的最新建议不符。...另一个困难是,每个社交 Provider 将在其令牌的主题声明中为用户的身份发行不同的值。如果用户通过多种方式进行认证,存在风险会导致业务数据中出现重复的身份。
—— 典型的情况是针对同一用户存储。...这就是为什么业务应用程序/端点本身不实现这些基本的安全功能的,宁愿外包给安全令牌服务。这将有了下列安全体系结构: 这对安全的需求分为两个部分。...OAuth2 是允许应用程序从安全令牌服务请求访问令牌并使用它们与Api通信的一个协议。它减少了客户端应用程序,以及 Api 的复杂性,因为可以进行集中身份验证和授权。...OpenID解决跨站点的认证问题,OAuth解决跨站点的授权问题。认证和授权是密不可分的。而OpenID和OAuth这两套协议出自两个不同的组织,协议上有相似和重合的之处,所以想将二者整合有些难度。...客户可以是不同类型的应用:桌面或移动的,基于浏览器的或基于服务器的应用。OpenID 连接和 OAuth2 描述 (也称为流程)不同客户端如何请求令牌模式。检查的规格为有关流程的详细信息。
我们这里所说的身份认证就是指它可以告诉应用程序当前的用户是谁, 还有这些用户是否正在使用你的应用程序....所以, 无论客户端是如何得到的access token, 它都无法从access token里得到最终用户的信息以及最终用户的身份认证状态....OpenID Connect会通过一种安全的方式从服务器把身份认证的结果返回给客户端, 这样客户端就可以依赖于它了. 也是因为这个原因, 客户端被称为了依赖方(RP). ..., 同时带着授权码 客户端使用授权码向Token端点请求一个响应 客户端接收到响应, 响应的body里面包含着ID Token 和 Access Token 客户端验证ID Token, 并获得用户的一些身份信息...客户端使用授权码向Token端点请求一个响应 客户端接收到响应, 响应的body里面包含着ID Token 和 Access Token 客户端验证ID Token, 并获得用户的一些身份信息.
URL client_uri——客户端应用程序主页的URL policy_uri——依赖方客户端应用程序提供的URL,以便最终用户可以读取其配置文件数据的使用方式 tos_uri—依赖方客户端提供的URL...您甚至不能创建新的用户-只允许管理员创建新帐户,它还实现了OpenID动态客户端注册协议,并支持注册客户端OAuth应用程序,尽管此功能仅从管理面板中引用,但实际的"/register"端点根本不会检查当前会话...并向其泄漏令牌 但是有一些警告:用户必须批准任何"受信任"的客户端,如果他们之前已经批准了同一个客户机,服务器可能只是重定向我们,而不要求确认,为了方便起见,OpenID规范为我们提供了一个"prompt...OpenID端点,因为它是由OpenID客户端应用程序使用的,并且这些请求不是从浏览器端发送的,规范规定"rel"参数的静态值应为"http://openid.net/specs/connect/1.0...从攻击者的角度来看,可以使用LDAP过滤器访问LDAP中存储的用户对象的不同字段,攻击场景之一可能是枚举有效的用户名: /openam/.well-known/webfinger?
(身份信息也属于资源,但是OAuth2.0中没有对身份信息包含哪些内容以及认证过程做完整定义)举个例子:我有一个google账号,我会使用许多google系的应用,如Gmail、Chrome等。...通过ODIC(可能是定制版本),我可以使用同一个google账号去登录这些google系应用(以及以google作为身份提供商的第三方应用)。...甚至这些应用间可以以Goolge账号系统提供的ID Token来认证是不是同一个用户。...资源服务器-Resource Server: 托管受保护资源的服务器,能够接受并使用访问令牌响应受保护的资源请求。客户端-client: 代表资源所有者在其授权下,发起受保护资源请求的应用程序。...在互联网系统场景下:资源拥有者通常是网站的最终用户资源服务器和授权服务器通常是同一个网站/应用里的子系统/模块,如微信中的数据库模块和认证模块。
它允许客户端基于授权服务器或者身份提供商(IdP)来进行用户的身份认证,并获取到用户的基本信息。...Authorization Code流程的步骤如下: 客户端准备身份认证请求,请求里包含所需要的参数 客户端发送请求到授权服务器 授权服务器对最红用户进行身份认证 授权服务得最终用户的统一/授权 授权服务器把最终用户发送回客户端...,同时带着授权码 客户端使用授权码向Token端点请求一个响应 客户端接收到响应,响应的Body里面包含在和ID Token和Access Token 客户端验证ID Token,并获得用户的一些身份信息...passport模块支持很多种Strategy,包括openID,Local,BrowserID,Facebook,Google,Twitter等。我们可以使用它来适配不同的认证服务。...本文作者:flydean程序那些事 本文链接:http://www.flydean.com/openid-connnect-with-onelogin/ 本文来源:flydean的博客 欢迎关注我的公众号
快应用中心允许用户对快应用进行收藏,并在服务端记录了用户的收藏列表,通过用户账号标识OpenID来关联收藏的快应用包名。...为了使用户在快应用中心的收藏列表能够与快应用Menubar的收藏状态打通,我们同时也记录了用户账号标识OpenID与客户端本地标识local_identifier的绑定关系。...在具体实现上,我们是在用户启动快应用中心的时候触发一次同步操作,由客户端将OpenID和客户端本地标识提交到服务端进行绑定。...服务端的绑定逻辑是:判断OpenID是否已经存在,如果不存在则插入数据库,否则更新对应数据行的local_identifier字段(因为用户可能先后在两个不同的手机上登录同一个vivo账号)。...我们模拟了客户端对接口的并发调用,确实出现了重复插入数据的现象,进一步证实了这个猜测的合理性。但是,明明客户端的逻辑是每个用户在启动的时候进行一次同步,为什么会出现同一个OpenID并发请求呢?
/或授权-经常针对同一用户存储。...通常,这些应用程序代表该用户管理数据,并且需要确保该用户只能访问允许其访问的数据。最常见的示例是(经典)Web应用程序,但是本机和基于JS的应用程序也需要身份验证。...API访问 应用程序有两种与API通信的基本方式-使用应用程序身份或委派用户身份。有时两种方法需要结合。 OAuth2是一种协议,允许应用程序从安全令牌服务请求访问令牌并使用它们与API通信。...对于相同的角色,不同的文献将使用不同的术语 —— 你可能也发现了安全令牌服务(Security Token Service),身份提供程序(Identity Provider),授权服务器(Authorization...客户端 客户端是软件中从 IdentityServer 请求令牌(Token)的部分 —— 既可以是为了认证一个用户(即请求的是 身份令牌),也可以是为了访问一个资源(即请求的是 访问令牌)。
前言 了解什么是 OAuth,什么是 SSO, SSO 下不同策略 OAuth 和 SAML 的不同,以及 OAuth 与 OpenID 的不同,更重要的是区分 authorisation和 authentication...关于Token Token 即使是在计算机领域中也有不同的定义,这里我们说的 token,是指 访问资源 的凭据。...一方面是用户从 IDP 返回 客户端 的方式,也是通过 URL 重定向,这里的 URL 允许 自定义 schema,所以即使在 手机 上也能 拉起应用; 另一方面因为 IDP 向 客户端 传递的是 authorization...OAuth VS OpenId 如果你有留心的话,你会在某些站点看到允许以 OpenID 的方式登陆,其实也就是以 Facebook 账号或者 Google 账号登陆站点: ?...OpenID 和 OAuth 很像。但本质上来说它们是截然不同的两个东西: OpenID: 只用于 身份认证( Authentication),允许你以 同一个账户 在 多个网站登陆。
OpenID Connect 允许所有类型的客户,包括基于浏览器的 JavaScript 和本机移动应用程序,启动登录流动和接收可验证断言对登录用户的身份。 如我们熟知的微信就是使用了这种机制。...在OpenID Connect中,常见的身份提供者包括Google、Microsoft等大型身份服务提供商。 客户端 客户端是用户要访问的应用或服务。...它通过OpenID Connect与身份提供者进行通信,获取用户的身份认证信息。 用户 用户是终端用户,通过客户端访问受保护资源。...客户端注册 OpenID Connect允许客户端在身份提供者处注册,获得客户端标识和密钥,确保通信的安全性和可信度。 实现方案 OpenID Connect认证流程 用户访问客户端并请求身份验证。...结论 基于OpenID Connect的统一身份认证方案通过标准化的身份认证协议,为用户和客户端之间提供了安全可靠的身份验证机制。
然后需要添加资源和客户端, 按照官方文档的做法, 我添加一个Config类: ? 这里我首先添加了一个GetUsers()方法, 里面有两个最终用户....它会为用户提供一个唯一的ID, 也叫做subject id. 它的出现也就是告诉授权服务器客户端发出的是OpenID Connect 请求. 它同时也要求返回ID Token....那么这些claims是从用户信息端点(UserInfo Endpoint)返回的....第五行 scope=openid profile email, 这就是客户端所请求的scopes. 再看一遍这张图: ? 为什么要返回两次ID Token呢?...但是如果同一个服务器上有很多应用的话, 这个Scheme的名字不能重复.
因此,OAuth上下文中的授权可以说是用户向客户端应用程序授予权限的过程。 下图描绘了到目前为止所解释的概念。 此图说明了授权页面(用户授予客户端应用程序权限的页面)中的哪些部分用于身份验证和授权。...以下小节是我对客户应用程序属性的个人意见。 6.1 客户类型 我担心定义规范是一种错误2. OpenID Connect动态客户端注册1.0的客户端元数据不包含“客户端类型”。...访问令牌删除 为防止数据库无限增长,应定期从数据库中删除过期的访问令牌。 请求授权服务器不必要地发出访问令牌的客户端应用程序是麻烦制造者。...相关规范中描述了如何处理重定向URI,但很难正确实现它,因为有许多事情要关注,例如,(a)RFC 6749的要求和OpenID Connect的要求是不同的(b) )必须考虑客户端应用程序的application_type...如果没有方言,则为每种计算机语言提供一个通用OAuth 2.0 / OpenID Connect库就足够了。但是,在现实世界中,违反规范的授权服务器需要自定义客户端库。
联合网关 支持Azure Active Directory,Google,Facebook等外部身份提供商。这可以保护您的应用程序免受如何连接到这些外部提供商的详细信息的影响。...这样,OAuth可以允许用户授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。 OAuth是OpenID的一个补充,但是完全不同的服务。...,以及获取基本的用户信息;它支持包括Web、移动、JavaScript在内的所有客户端类型去请求和接收终端用户信息和身份认证会话信息;它是可扩展的协议,允许你使用某些可选功能,如身份数据加密、OpenID...客户端(Client) 客户端是从IdentityServer请求令牌的应用 - 用于验证用户(请求身份令牌)或访问资源(请求访问令牌)。...它假定 Resource Owner 和 Client 应用程序运行在不同的设备上,Access Token 始终不会传输到「用户代理应用程序」 Device Flow 用于类似 TV 等硬件设备,或仅仅运行一个
如果使用网关进行集中身份认证,微服务如果没有设置了额外的安全性来验证消息,就必须确保微服务在没有经过网关的时候,不能直接被访问。从图中也可看到,用户信息是由网关进行转发请求时增加的。...第三方应用程序需要知道当前操作的用户身份,就需要身份验证,这时OAuth协议应运而生,OAuth2.0引入了一个授权层,分离两种不同的角色: 客户端 资源所有者(用户) 只有用户同意以后,服务器才能向客户端颁发令牌...” 当应用程序需要知道当前用户的身份时,就需要进行身份认证。通常,这些应用程序代表该用户管理数据,并需要确保该用户只能访问允许他访问的数据。...OpenID Connect是三者中最新的一个,但是却被认为是未来的发展方向,因为它对现代应用程序具有最大的潜力。它从一开始就为移动应用场景而构建,并被设计为对API友好。...在不同的文献对可能会同一角色使用不同的术语,所以IdentityServer又可称为安全令牌服务(STS)、身份提供者(IDP)、授权服务器(AuthServer)、IP-STS等等。
state:存储与客户端应用程序上当前会话关联的唯一的、不可访问的值,OAuth服务应该在响应中返回这个精确的值,以及授权代码,通过确保对/callback端点的请求来自发起OAuth流的同一个人,此参数充当客户端应用程序的...隐式授权类型 隐式授权类型要简单得多,客户端应用程序不是首先获取授权码然后将其交换为访问令牌,而是在用户同意后立即接收访问令牌,您可能想知道为什么客户端应用程序不总是使用隐式授予类型,答案相对简单——安全性要低得多...对于OAuth身份验证机制,基本OAuth流程基本上保持相同,主要区别在于客户端应用程序如何使用其接收数据,从用户的角度来看,OAuth身份验证的结果在很大程度上类似于基于SAML的单点登录(SSO),...接收访问令牌后,客户端应用程序通常从专用/userinfo端点向资源服务器请求此数据 接收到数据后,客户端应用程序将使用它代替用户名来登录用户,从授权服务器接收到的访问令牌通常用于代替传统密码 在下面的实验中...例如,假设攻击者的恶意客户端应用程序最初使用openid email作用域请求访问用户的电子邮件地址。用户批准此请求后,恶意客户端应用程序将收到授权代码。
=openid profile email, 这就是客户端所请求的scopes.再看一遍这张图:图片为什么要返回两次ID Token呢?...这个流程的授权码和tokens是通过跳转来传递到浏览器的URI上面的, 所以我需要一个URI来接收这些东西, 而RedirectUris里面的URI就是允许做这个工作的URI.下面继续配置MVC客户端...当用户需要登陆的时候, 将使用的是OpenId Connect Scheme.然后的AddCookie, 其参数是之前配置的DefaultScheme名称, 这配置了Cookie的处理者, 并让应用程序为我们的...Identity Provider的控制台看到, MVC客户端通过后端通道向Token端点发出了Token请求, 这个过程用户是不会发现的:图片这个过程就和前面图示的一样, 最后从token端点请求到新的..., 但是由于id token是从URI进行传输的, 而浏览器会有URI的长度限制, 所以尽量让token小点, 以免超限.为了获得用户其他的claims, 客户端应用可以使用用户信息端点, 这需要用access
): https://www.cnblogs.com/laozhang-is-phi/p/10483922.html (一) OpenID 和 OAuth 的区别 (以下的介绍来自google和 OAuth...官网) 1,OpenID 是一个以用户为中心的数字身份识别框架,它具有开放、分散性。...OAuth 2.0致力于简化客户端开发人员的工作,同时为Web应用程序,桌面应用程序,移动电话和客厅设备提供特定的授权流程。...它允许客户端基于授权服务器执行的身份验证来验证最终用户的身份,并以可互操作且类似于REST的方式获取有关最终用户的基本配置文件信息。...OpenID Connect允许所有类型的客户端(包括基于Web的客户端,移动客户端和JavaScript客户端)请求并接收有关经过身份验证的会话和最终用户的信息。
实际上,如果你说“我有OAuth2,并且我需要身份认证”,那么请继续阅读。 什么是认证(Authentication)?...几乎在所有的这些情况下,OAuth的核心功能都将保持不变,而发生的事件是用户将他们的身份委派给他们正在尝试登录的应用程序。然后,客户端应用程序成为身份API的消费者,从而找出先前授权给客户端的用户。...事实上,有一些众所周知的配方可以与特定的供应商进行合作,比如Facebook Connect、使用Twitter登录以及OpenID Connect(为Google的登录系统提供了支持)。...如果应用程序在不同的组件中传递 access token以“共享”访问权限的时候,也会发生此问题。...动态服务发现以及客户端注册 OAuth2为了允许各种不同的部署而编写,但是这样的设计并没有指定这些部署如何设置以及组件之间如何互相了解,在OAuth自己的世界中这是没问题的。
OpenID Connect允许所有类型的客户端(包括基于Web的移动和JavaScript客户端)请求和接收关于认证会话和最终用户的信息。...我们都知道OAuth2是一个授权协议,它无法提供完善的身份认证功能,OpenID Connect 使用OAuth2的授权服务器来为第三方客户端提供用户的身份认证,并把对应的身份认证信息传递给客户端,且可以适用于各种类型的客户端...你应该看到重定向到IdentityServer的登录页面。 ? 成功登录后,用户将看到同意画面。 在这里,用户可以决定是否要将他的身份信息发布到客户端应用程序。...可以使用客户端对象上的RequireConsent属性以每个客户端为基础关闭同意询问。 ? 最后浏览器重定向到客户端应用程序,该应用程序显示了用户的声明。 ?...这是因为签名密钥信息是即时创建的,并且只保存在内存中。 当客户端和IdentityServer不同步时,会发生此异常。 只需在客户端重复操作,下次元数据已经追上,一切都应该正常工作。
OAuth2 OAuth1 OAuth 1,它与 OAuth2 非常不同,而且更复杂,因为它直接包含了关于如何加密通信的规范 它现在不是很流行或常用 OAuth2 没有指定如何加密通信,它希望您的应用程序使用...例如,Google 登录使用 OpenID Connect(其底层使用 OAuth2) 但是 Facebook 登录不支持 OpenID Connect,它有自己的 OAuth2 风格 OpenID...cookie http 标准的 HTTP 认证系统,包括 Bearer:一个 header Authorization,值为 Bearer 加上一个 token,这是从 OAuth2 继承的 HTTP...基本身份验证 HTTP 摘要 oauth2 处理安全性的所有 OAuth2 方法(称为“流”) 其中一些流程适用于构建 OAuth 2.0 身份验证提供程序(如 Google、Facebook、Twitter...、GitHub 等) implicit clientCredentials authorizationCode 但是有一个特定的“流程”可以完美地用于直接在同一应用程序中处理身份验证 password
领取专属 10元无门槛券
手把手带您无忧上云