Google OAuth流-通过查询字符串传递结果令牌

时间:2019-03-13 15:00:26

标签: security asp.net-core oauth google-oauth oidc

我正在查看一些代码,这些代码使用asp.net核心中的OpenIdConnect OAuth流来针对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,我们被锁定在可以与之交互的终结点上,并且还需要在为了对这些令牌进行任何恶意的攻击

谢谢

马特

0 个答案:

没有答案