spring-boot - 如何知道我的 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 的主人)
解决方案
看看一些解释什么是 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 令牌。
推荐阅读
- javascript - 将js数组转换为另一种js数组格式
- django - form.is_valid() 在 Django 中总是返回 False
- reactjs - 将表单数据从子组件发送到父组件
- redis - 如何使用 JMeter 从 Redis 的 Hash 数据结构中获取数据
- websocket - Socket.io 是否支持 WSO2 API Manager Websocket?
- sql - 这些查询的 Oracle 旧语法连接等价物是什么?
- python - 我在处理数据时无法查看数据
- docusignapi - Docuisgn 嵌入式签名和电子邮件
- python - 如何从 MacOS Catalina 10.15.4 中删除多个版本的 python
- java - Spark - dataset.persist():如何检查数据集是否持续存在?