Google OAuth flow - передача полученных токенов через строку запроса - PullRequest
1 голос
/ 13 марта 2019

Я рассматриваю код, использующий поток OAuth OpenIdConnect в ядре asp.net для аутентификации пользователя в Google. Как только аутентификация установлена, в OnTicketRecieved есть обработчик, который получает полученный токен доступа и токен обновления и передает его другой конечной точке в приложении:

OnTicketReceived = context =>
{
    string returnUrl = "/Somewhere/else";

    string refreshToken = context.Properties.Items.ContainsKey(".Token.refresh_token") ? context.Properties.Items[".Token.refresh_token"] : "none";
    string accessToken = context.Properties.Items.ContainsKey(".Token.access_token") ? context.Properties.Items[".Token.access_token"] : "none";
    var email = context.Principal.Claims.Where(c => c.Type == ClaimTypes.Email).Select(c => c.Value).SingleOrDefault();
    returnUrl += $"?refreshToken={refreshToken}&accessToken={accessToken}&email={email}";

    context.ReturnUri = returnUrl + WebUtility.UrlEncode(returnUrl);
    return Task.CompletedTask;
},

Мой вопрос - насколько это безопасно? Это эффективно просачивающиеся токены обновления, которые можно увидеть - хотя возможности того, что вы можете с ними сделать, очень ограничены, так как Google OAuth мы привязаны к конечным точкам, с которыми мы можем взаимодействовать, и секрет приложения также должен быть известен в чтобы сделать что-нибудь вредоносное с этими токенами

Спасибо

Мэтт

...