0

我正在使用 IAP 来保护 Web API 应用程序。我已启用服务帐户以通过id_token. 我可以id_token通过使用以下断言签署 JWT(使用我的服务帐户的密钥)来获得(JWT)

{
  "iss": "xx.iam.gserviceaccount.com",
  "sub": "xx.iam.gserviceaccount.com",
  "aud": "https://oauth2.googleapis.com/token",
  "target_audience": "my_application_client_id",
  "iat": 1598702078,
  "exp": 1598705593
}

然后发布到令牌服务如下

curl --location --request POST 'https://oauth2.googleapis.com/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'assertion=<JWT obtained at the previous step>’
--data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer' \
--data-urlencode 'scope=openid’

现在我也想获得一个refresh_token,已经不可能了。我试过了,scope=openid offline_access但没有运气。是offline_access在 Google Auth Server 中实现的吗?还有其他获取 refresh_token 的机制吗?

4

1 回答 1

0

根据此处的文档,对于 OpenID 服务器流程,您需要将其access_type用作设置为离线的参数才能使其工作。这里有更多细节。

于 2020-09-01T18:51:44.957 回答