如何知道我的 Spring Boot 应用程序是不是正在使用 OIDC?
Posted
技术标签:
【中文标题】如何知道我的 Spring Boot 应用程序是不是正在使用 OIDC?【英文标题】:How to know if my spring boot app is using OIDC?如何知道我的 Spring Boot 应用程序是否正在使用 OIDC? 【发布时间】:2021-05-31 18:42:09 【问题描述】:如果我的 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
我有安全配置器、控制器等。它工作得很好。当我尝试使用端点时,我可以登录 google,然后我会从我的 spring boot 应用程序中获取响应。
我的问题是,如果有人问我:“你确定这个项目使用的是 OIDC 吗?”
如何回答?我怎样才能证明它确实如此? (如果有人在 IT 工作但不是 OAuth2/OpenID Connect 的主人)
【问题讨论】:
【参考方案1】:查看一些解释什么是 OAuth 及其与 OpenID Connect 的区别的资源,例如:https://curity.io/resources/webinars/course-getting-started-with-oauth-and-openid-connect
很高兴知道它们有何不同 - OAuth 和 OIDC。简而言之 - 如果您使用 OAuth 流从授权服务器(在 OIDC 中称为 OpenID 提供程序)接收 ID 令牌,那么您使用的是 OIDC。如果您只获得访问令牌,那么您只使用 OAuth,没有 OIDC。 ID 令牌是 JWT,它为您的应用程序提供有关经过身份验证的用户的信息——这就是 OIDC 的意义所在,告诉您的应用程序用户是谁。 OAuth 是一种授权用户的方式 - 使用访问令牌,您可能不是现在的用户,但您可以使用访问令牌访问 API,并代表用户执行一些操作。
如果您想证明您在应用程序中使用了 OIDC,请尝试挖掘用户的数据并打印他们用于登录 Google 的电子邮件 - 这将证明您可以访问有关经过身份验证的用户,您通过 ID 令牌从 Google 获得。
【讨论】:
以上是关于如何知道我的 Spring Boot 应用程序是不是正在使用 OIDC?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot 中明确检查请求内容类型是不是与实际内容匹配?
Vaadin Flow 是不是支持 Spring-Boot Native