【问题标题】:Oauth2 Spring Security Resource Server and Independent Auth ServerOauth2 Spring Security 资源服务器和独立认证服务器
【发布时间】:2018-07-08 12:48:47
【问题描述】:

大家! 我是 Oauth2 的新手,我有不同的方法。

我有一个疑问。我实际上正在使用 Spring Security 构建一个提供程序服务器,并且我有一个外部访问令牌提供程序(Google 和 AWS Cognito)。

我知道在代码授权流程之后获取访问令牌的过程(这是我想要实现的)。我构建了一个 Android 应用程序,它获取代码并更改它以获取访问令牌。

我的问题是: 如何使用 Spring Security 验证我发送到 Provider Server 的令牌是否有效,以访问服务器拥有的受保护资源?

提前谢谢你。

【问题讨论】:

    标签: spring spring-security oauth-2.0 jwt aws-cognito


    【解决方案1】:

    我认为有两种选择,要么你获取公钥并自己验证令牌,要么他们有一个端点,你可以发送令牌并知道它是否有效。

    像这样的

    GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
        // Specify the CLIENT_ID of the app that accesses the backend:
        .setAudience(Collections.singletonList(CLIENT_ID))
        // Or, if multiple clients access the backend:
        //.setAudience(Arrays.asList(CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3))
        .build();
    
    // (Receive idTokenString by HTTPS POST)
    
    GoogleIdToken idToken = verifier.verify(idTokenString);
    if (idToken != null) {
      Payload payload = idToken.getPayload();
    
      // Print user identifier
      String userId = payload.getSubject();
      System.out.println("User ID: " + userId);
    
      // Get profile information from payload
      String email = payload.getEmail();
      boolean emailVerified = Boolean.valueOf(payload.getEmailVerified());
      String name = (String) payload.get("name");
      String pictureUrl = (String) payload.get("picture");
      String locale = (String) payload.get("locale");
      String familyName = (String) payload.get("family_name");
      String givenName = (String) payload.get("given_name");
    
      // Use or store profile information
      // ...
    
    } else {
      System.out.println("Invalid ID token.");
    }
    

    链接:https://developers.google.com/identity/sign-in/web/backend-auth

    【讨论】:

      猜你喜欢
      • 2016-01-18
      • 2013-12-21
      • 2017-04-13
      • 2018-05-01
      • 2013-08-24
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 2017-03-25
      相关资源
      最近更新 更多