Google app engine 使用承载令牌访问受Google Cloud IAP保护的资源时出现错误代码13
我正在尝试从iOS应用程序访问受Google Cloud IAP保护的资源 我可以从应用程序登录到我的Google帐户并收到一个ID令牌,但是当在我想要请求的资源的授权头中将ID令牌设置为承载令牌时,我收到以下带有HTTP错误代码401的响应 “您的请求有问题。错误代码13” 我试图与邮递员一起发送请求,但这也导致了相同的错误 我使用以下代码从下载的credentials.plist文件中设置客户端IDGoogle app engine 使用承载令牌访问受Google Cloud IAP保护的资源时出现错误代码13,google-app-engine,google-iap,Google App Engine,Google Iap,我正在尝试从iOS应用程序访问受Google Cloud IAP保护的资源 我可以从应用程序登录到我的Google帐户并收到一个ID令牌,但是当在我想要请求的资源的授权头中将ID令牌设置为承载令牌时,我收到以下带有HTTP错误代码401的响应 “您的请求有问题。错误代码13” 我试图与邮递员一起发送请求,但这也导致了相同的错误 我使用以下代码从下载的credentials.plist文件中设置客户端ID if let path = Bundle.main.path(forResource: "c
if let path = Bundle.main.path(forResource: "credentials", ofType: "plist") {
let nsDictionary = NSDictionary(contentsOfFile: path)
let clientId = nsDictionary!["CLIENT_ID"] as? String
GIDSignIn.sharedInstance().clientID = clientId
GIDSignIn.sharedInstance().delegate = self
GIDSignIn.sharedInstance().uiDelegate = self;
}
之后我登录谷歌
if GIDSignIn.sharedInstance().hasAuthInKeychain() {
GIDSignIn.sharedInstance().signInSilently()
} else {
GIDSignIn.sharedInstance().signIn()
}
登录后,我获取idToken并将其发送到受Google Cloud IAP保护的资源
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
let token = user.authentication.idToken
var request = URLRequest(url: URL(string: url)!)
request.httpMethod = httpMethod
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
URLSession.shared.dataTask(with: request, completionHandler: { data, response, error -> Void in
}).resume()
}
我希望响应会成功,但目前我收到HTTP错误代码401以及前面提到的错误消息。更新:从7月11日起,当令牌出现问题时,IAP用户现在应该会收到比“错误代码13”更具描述性的错误 一些例子:
$ curl -H 'Authorization: bearer schmearer' $IAP_URL
Invalid IAP credentials: Expected JWT to have 3 parts separated by a '.' but there are 1 parts
$ curl -H 'Authorization: bearer a.b.c' $IAP_URL
Invalid IAP credentials: Base64 decode failed on token: a.b.c
> ^C
msachs@msachs-ubi:~$ curl -H 'Authorization: bearer [real token]' $IAP_URL
Invalid IAP credentials: JWT signature is invalid
msachs@msachs-ubi:~$ curl -H 'Authorization: bearer [real token]' $IAP_URL
Invalid IAP credentials: JWT audience doesn't match this application ('aud' claim (5939454960-[...]) doesn't match expected value (1042451928015-[...]))
“错误代码13”表示IAP不喜欢您的令牌。在这种情况下,我认为问题在于您需要将设置为IAP应用程序使用的客户端ID。您可以通过转到,找到要连接的资源,并从该资源的表行的溢出菜单中选择“Edit OAuth Client”来找到它
好像错过了那一步,我会处理好的。(感谢您对此进行标记!)这一点现在记录在。