Мы используем аутентификацию службы приложений для защиты веб-API и использования Google в качестве поставщика аутентификации. Он работает, как ожидалось, когда огонь запрос из браузера (когда информация о сеансе связи в куки) журналаАутентификация службы сервиса Azure с помощью Google Token 2.0 Token Token
IIS:
2016-05-29T13: 51: 19 PID [3600] Многословный Поступила запрос: GET https://XXXXXX.azurewebsites.net/api/user 2016-05-29T13: 51: 19 PID [3600] Подробный поиск 'AppServiceAuthSession' cookie для сайта 'XXXXXX.azurewebsites.net'. Длина: 728. 2016-05-29T13: 51: 19 PID [3600] Verbose Authenticated [email protected] успешно с использованием аутентификации Session Cookie.
Но когда мы используем API инструмент для тестирования, такой как Почтальон и установить авторизацию заголовка с однонаправленными маркерами, это всегда приводит к перенаправлению.
журналIIS:
2016-05-29T13: 53: 38 PID [3600] Многословный Получен запрос: POST https://XXXXX.azurewebsites.net/api/user 2016-05-29T13: 53: 38 PID [3600] Информация Перенаправление: https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=XXXXXXX-XXXXX7attpunn9smo4.apps.googleusercontent.com&redirect_uri=https%3A%2F%2FXXXXXX.azurewebsites.net%2F.auth%2Flogin%2Fgoogle%2Fcallback&scope=openid+profile+email&state=nonce%3De5f4aabe11cb4544bf18d00920940d47_20160529135838%26redir%3D%2Fapi%2Fuser
мы также попытались установить X-ZUMO-AUTH заголовок с тем же самым на предъявителя, мы видим ошибку, как маркер не в ожидаемом формате. По-видимому, он ожидает кодированный токен JWT.
журналIIS:
016-05-29T13: 51: 52 ПИД [3600] Многословный Получен запрос: POST https://XXXXXX.azurewebsites.net/api/user 2016-05-29T13: 51: 52 ПИД [3600] Предупреждение проверки JWT не удались: IDX10708: 'System.IdentityModel.Tokens.JwtSecurityTokenHandler' не может прочитать эту строки: 'однонаправленного ya29.XXXXXXXXXX_RDrX_zsuvMx49e_9QS5ECz9F1yhDHe5j4H9gRN6opkjLXvN1IJZjHXa_Q'. Строка должна быть в компактном формате JSON, который имеет вид: '..' .. 2016-05-29T13: 51: 52 ПИД-регулятора [3600] Информация Перенаправление: https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=XXXXXXX-k5nj6dkf987attpunn9smo4.apps.googleusercontent.com&redirect_uri=https%3A%2F%2FXXXXXX.azurewebsites.net%2F.auth%2Flogin%2Fgoogle%2Fcallback&scope=openid+profile+email&state=nonce%3De15b0915406142378XXXXX_20160529135652%26redir%3D%2Fapi%2Fuser
Примечание : Знак жетона, полученный от Google, действителен, так как мы можем проверить детали, позвонив по телефону https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=[token]
Пожалуйста, предложите.
Крис, мы никогда не добираемся до шага №3, потому что сервер возвращает внутреннюю ошибку сервера. –
С помощью Google мы сначала получаем auth_code, а затем используем его для получения id_token в последующих запросах. https://developers.google.com/identity/protocols/OpenIDConnect#server-flow Журнал IIS: Предупреждение Вызов на конечную точку HTTP https://www.googleapis.com/oauth2/v4/token failed: 400 (Плохой запрос). Частичный ответ: { «error»: «invalid_grant», «error_description»: «Код уже был погашен». } .. Это может произойти и при повторном использовании ранее использованного кода аутентификации. –
Ошибка имеет смысл. Можете ли вы использовать поток авторизации с Google, который возвращает вам код авторизации и id_token в одном ответе? Например, "response_type = code id_token"? https://developers.google.com/identity/protocols/OpenIDConnect#authenticationuriparameters. Или, если вы используете Android, можно ли самостоятельно использовать auth_code и id_token через некоторые вызовы Android API? –