Google chrome extension Chrome扩展能否从重定向uri窃取OAuth令牌?
我正在Chrome扩展和Google云平台之间使用auth,并尝试将Google chrome extension Chrome扩展能否从重定向uri窃取OAuth令牌?,google-chrome-extension,oauth-2.0,google-oauth,amazon-cognito,openid-connect,Google Chrome Extension,Oauth 2.0,Google Oauth,Amazon Cognito,Openid Connect,我正在Chrome扩展和Google云平台之间使用auth,并尝试将id\u令牌JWT发送到AWS服务器以检索用户数据(和/或建立会话?) 我的问题是——如何防止具有选项卡权限的chrome扩展读取GET请求或具有完全验证用户JWT的重定向URI JWT确认用户是谁,但我如何知道我的Chrome扩展是向我的后端发出请求的扩展 我有一些想法: 也许我可以创建一个只有我的扩展才能控制的私有窗口 也许我可以先使用nonce或从服务器获取nonce 也许我的chrome扩展有一个私钥,或者用我的后端(有
id\u令牌
JWT发送到AWS服务器以检索用户数据(和/或建立会话?)
我的问题是——如何防止具有选项卡权限的chrome扩展读取GET请求或具有完全验证用户JWT的重定向URI
JWT确认用户是谁,但我如何知道我的Chrome扩展是向我的后端发出请求的扩展
我有一些想法:
也许我可以创建一个只有我的扩展才能控制的私有窗口
也许我可以先使用nonce或从服务器获取nonce
也许我的chrome扩展有一个私钥,或者用我的后端(有公钥)来验证自己
任何帮助都将不胜感激,很难研究这个特定场景
AFAIK唯一的方法是API,尤其是launchWebAuthFlow方法。@wOxxOm相同,但它只返回一个API访问\u令牌,这需要钱,而不是OpenID\u令牌。在什么方面相同?我的猜测是,它不能被窃取,因为该URL不应该报告给其他扩展。
var url = 'https://accounts.google.com/o/oauth2/v2/auth' +
'?client_id=' + encodeURIComponent(chrome.runtime.getManifest().oauth2.client_id) +
'&response_type=id_token' +
'&redirect_uri=' + encodeURIComponent(chrome.identity.getRedirectURL()) +
'&scope=' + encodeURIComponent(chrome.runtime.getManifest().oauth2.scopes.join(' ')) +
'&nonce=' + Math.floor(Math.random() * 10000000);
chrome.windows.create({ url: 'about:blank' }, function ({ tabs }) {
chrome.tabs.onUpdated.addListener(
function googleAuthorizationHook(tabId, changeInfo, tab) {
if (tab.id === tabs[0].id) {
if (tab.title !== 'about:blank') {
console.log(url);
if (tab.title.startsWith(chrome.identity.getRedirectURL())) {
const id_token = tab.title.split('#')[1];
console.log(id_token);
} else {
console.error(tab.title)
}
chrome.tabs.onUpdated.removeListener(googleAuthorizationHook);
chrome.tabs.remove(tab.id);
}
}
}
);
chrome.tabs.update(tabs[0].id, { 'url': url });
});