首页 > 解决方案 > 如何知道我的 Spring Boot 应用程序是否正在使用 OIDC?

问题描述

如果我的 application.properties 中有这个:

security.oauth2.resource.user-info-uri=https://www.googleapis.com/userinfo/v2/me

security.oauth2.client.client-id=clientid.apps.googleusercontent.com
security.oauth2.client.client-secret=client-secret
security.oauth2.client.user-authorization-uri=https://accounts.google.com/o/oauth2/v2/auth
security.oauth2.client.access-token-uri=https://oauth2.googleapis.com/token
security.oauth2.client.scope=openid

我有安全配置器、控制器等。它工作得很好。当我尝试使用端点时,我可以登录谷歌,然后我会从我的 spring boot 应用程序中获取响应。

我的问题是,如果有人问我:“你确定这个项目使用的是 OIDC 吗?”

如何回答?我怎样才能证明它确实如此?(如果有人在 IT 工作但不是 OAuth2/OpenID Connect 的主人)

标签: spring-bootspring-securityoauth-2.0openid-connectspring-security-oauth2

解决方案


看看一些解释什么是 OAuth 以及它与 OpenID Connect 有什么区别的资源,例如:https ://curity.io/resources/webinars/course-getting-started-with-oauth-and-开放式连接

很高兴知道它们有何不同 - OAuth 和 OIDC。简而言之 - 如果您使用 OAuth 流从授权服务器(在 OIDC 中称为 OpenID 提供者)接收 ID 令牌,那么您使用的是 OIDC。如果您只获得访问令牌,那么您只使用 OAuth,没有 OIDC。ID 令牌是 JWT,它为您的应用程序提供有关经过身份验证的用户的信息——这就是 OIDC 的意义所在,告诉您的应用程序用户是谁。OAuth 是一种授权用户的方式 - 使用访问令牌,您现在可能不是用户,但您可以使用访问令牌访问 API,并代表用户执行一些操作。

如果您想证明您在应用程序中使用了 OIDC,请尝试挖掘用户的数据并打印他们用于登录谷歌的电子邮件 - 这将证明您可以访问有关经过身份验证的用户的信息,您从 Google 获得的 ID 令牌。


推荐阅读