Я использую Google's OpenIDConnect authentication, и я хочу проверить JWT id_token
, возвращенный из Google. Однако документация кажется непоследовательной в отношении того, какое значение Google возвращает для претензии iss
(эмитента) в токене идентификатора.Могу ли я получить согласованное значение «iss» для id_token Google OpenIDConnect?
One page говорит, «ISS: всегда accounts.google.com», но another page говорит: «Значение ISS в ID маркера равно accounts.google.com
или https://accounts.google.com
» и комментарий в коде примера далее поясняет:
// If you retrieved the token on Android using the Play Services 8.3 API or newer, set
// the issuer to "https://accounts.google.com". Otherwise, set the issuer to
// "accounts.google.com". If you need to verify tokens from multiple sources, build
// a GoogleIdTokenVerifier for each issuer and try them both.
У меня есть приложение на стороне сервера, а не приложение для Android, поэтому я не использую Службы Play.
Для дальнейшего мутить воду, the OpenIDConnect specification itself содержит примечание, что:
реализаторов могут быть в курсе, что, по состоянию на момент написания этой статьи, Google, развернутого OpenID Connect вопросов реализации ID лексемы, опускает требуемое https: // префикс схемы от iss (эмитента). Значение претензии. Таким образом, реализация сторонних сторонников, желающих работать с Google, должна иметь код, чтобы обойти это, до тех пор, пока их реализация не будет обновлена. Любой такой обходной код должен быть написан таким образом, который не будет прерываться в такой момент. Google добавляет недостающий префикс к своим значениям эмитента.
Этот документ от 8 ноября 2014 г. В то время с тех пор, уже Google стандартизировано iss
значение, или мне действительно нужно, чтобы проверить их обоих? Вышеприведенный комментарий указывает, что только Play Services> = 8.3 получает iss
с https://
, а везде еще значение будет accounts.google.com
. Это правда?
И на этой странице в настоящий момент говорится: «Значение iss в токене ID равно« accounts.google.com »или' https: // accounts.google.com'. " –
согласовано; если вы спуститесь по этому пути, вам, вероятно, придется проверять обе возможности. –
Спасибо, это не совсем ответит на мой вопрос, потому что вы вообще говорите, как проверить идентификатор Google id_token. Я специально спрашиваю о поле «iss». Похоже, вы говорите: «Нет, нет никакого способа получить постоянную ценность, вам нужно просто проверить обе возможности». – bjmc