在大学网络中保留Google云端硬盘会话数据

时间:2012-08-07 19:14:39

标签: python windows oauth enterprise google-drive-api

这似乎是一个问题,我一直看到有多个人遇到问题而且还没有得到有效解决。如何在企业级别维护Google云端硬盘?

我是我大学的学生程序员,他们刚刚切换到Google Apps for Education,并希望使用Google云端硬盘让学生随时随地访问校园计算机数据。

我们的校园系统称为Labnet,它使用iSCSI和逻辑卷管理器引导Windows 7的全新副本。每次学生启动一个盒子,它都是完全相同的新PC味道。正因为如此,oAuth关键谷歌驱动器添加到注册表是在重新启动被吹走驱动器文件夹和应用程序数据文件夹,所有这些都喜欢在C驱动器上。

我们为初次使用的用户构建了一个包装器,用于在校园中设置Drive,将默认安装位置重定向到网络驱动器,并将包含sync_config.db和snapshot.db文件的app Data文件夹复制到网络备份并导出驱动器密钥到网络驱动器。登录时,我们对备份进行脚本检查,将它们全部恢复到C:\ users \ admin \ appdata \ local \ drive,然后将oAuth令牌导入注册表。

从理论上讲,它运作良好。在实践中,它是如此。该设置在一个实验室中正常运行,其中所有机器运行完全相同的硬件并启动相同的映像文件。当我们尝试将密钥和appdata导入到运行略有不同的硬件和软件的实验室时,我们会获得Error -2146893813 CryptUnprotectData, 'Key not valid for use in specified state'.invalid data

我认为oAuth无论如何都与机器的硬件或软件有关,但它似乎就是这样。

是否有人知道如何以这样的方式保留此数据,以便用户无需在登录时不断设置驱动器即可访问数据?

我会在这里附上完整的代码。它不仅仅是标准的代码块,所以这里有一个链接。

GoogleDriveLabnetConfig.py是自定义包装器,可将默认驱动器位置更改为H:驱动器。 https://www.dropbox.com/s/fb27936jmm87w0l/GoogleDriveLabnetConfig.py

MUNGoogleDriveDaemon.py是一个包装器,可以在C:和H:之间来回复制用户的Appdata,并实际启动Google Drive。我们不允许用户独立于此守护程序启动Google云端硬盘,因为不会备份快照。

https://www.dropbox.com/s/z32t3bjluwl0wf5/MUNGoogleDriveDaemon.py

如果有人可以帮忙解决此问题,请随意在您自己的设置中重复使用该代码。

编辑:可以在启动时检查每台计算机的硬件和软件,并导入为特定硬件/软件配对生成的密钥,但这会导致用户每次更改实验室时都必须租​​用凭据如果我们改变图像,再次在旧实验室。不是很优雅的解决方案。

1 个答案:

答案 0 :(得分:0)

远景,但尝试检查机器上的系统时间。 Oauth要求所有客户端和服务器都有同步时间。