2014-12-14 4 views
4

구글은 현재 다음 인증서 값구글 OAuth2를 API JWS는 적합성

I 오류

DeSerializationNotPossible: Not base64url encoded 

에게 oicjwkest를 사용하여 Google API에 액세스하고 얻으려고

{ 
"keys": [ 
    { 
    "kty": "RSA", 
    "alg": "RS256", 
    "use": "sig", 
    "kid": "90adc60c0f9f503265a5ebc2c404c88e59882083", 
    "n": "u_EOLEKRMNuTA_UPh9R-LTQkF1TNGE6XRVbgvh081A5VtKNFe8b2CmoGvgrm_ochjX0robr8LwpOUSHO779yJANgvwuATHJ4SKYHzN2Gr0yBsC7MyL9CI_eXik4RGiNlEU6mgoy7GGnLtY5-A6OPo-I-4HEttP81LJrmSYh6Y2k=", 
    "e": "AQAB" 
    }, 
    { 
    "kty": "RSA", 
    "alg": "RS256", 
    "use": "sig", 
    "kid": "5886590f72b8e40668c55fa366c19efb2a22d635", 
    "n": "x9mePRk3StM-Tg32S_E8OyBYD8uIHhPPa6U8jkHbpnRf2jEImk1ndIwIoJQCrHl1IsKpY1j81fyQKul0u1Frvb-LFGFVY3L7zSR4hnwzuU_05JtKZRfK-87Kj8JVMJbt34SKRmUitPH4QA23b6g-ORUMYjqWgNWufV6OPy8GYNE=", 
    "e": "AQAB" 
    } 
] 
} 

, https://www.googleapis.com/oauth2/v2/certs에서 노출 두 키의 n 매개 변수가 = 문자로 끝나기 때문에 문제가 발생합니다. IIUC의 경우 JSON Web Algorighms draft에 따라 Base64URL로 인코딩되고 JSON Web Signature draft에 따라 Base64URL이 = 자로 스트립됩니다.

내가 사용하고있는 Python 라이브러리에서이 오류가 발생 했습니까? 아니면 실제로 Google이 사양을 준수하지 않았습니까? 후자의 경우 : 어디에서 신고 할 수 있습니까?

+0

음. 공식적인 유형의 기술 답변을 얻는 데 가장 좋은 장소는 Google+의 Google Oauth2 커뮤니티입니다. https://plus.google.com/u/0/communities/107137198518854169493 내가 들었던 것에서는 실제로 개발자가 아닙니다. Oauth2 팀은 현재 안정적이라고 생각합니다. 보고서 발행처를 찾지 못했습니다. G + 누군가가 도움을 줄 수 있다면 시도해보십시오. 그렇지 않으면 Google에서 누군가를 찾을 수 있는지 알 수 있습니다. – DaImTo

+0

좋은 찾기; 나는 지금까지 문제를 경험하지 못했다. 왜냐하면 패딩 메서드를 구현 한 클라이언트를 사용하기 때문에 문제가 발생하지 않는다. 그것은 확실히 나에게 순응하지 않는 것처럼 보입니다 –

+0

jwkest의 저자는 이제 그의 구현에서 유효성 검사를 생략했습니다. 따라서 다음 릴리스에서는 실제 문제가 없어야합니다. –

답변

0

Google이 (현재 RFC 인) JWAJWS을 base64url보다는 일반 base64를 사용하는 것이 맞지 않습니다. 그러나 나는 이미이 문제를 알고 있고 JWKS 엔드 포인트의 새 버전 인 https://www.googleapis.com/oauth2/v3/certs으로 수정했다고 생각합니다.이 버전은 v2와 동일한 키를 가지고 있지만 스펙별로 올바르게 인코딩되어 있습니다. 사용중인 라이브러리로 v3 엔드 포인트를 사용할 수 있어야합니다.