【问题标题】: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 的主人)

【问题讨论】:

    标签: spring-boot spring-security oauth-2.0 openid-connect spring-security-oauth2


    【解决方案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 获得。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2011-10-14
      相关资源
      最近更新 更多