我一直在读https://docs.truevault.com/的文档,但我有点困惑。我在真正的金库网站上读到了这个:
如果您计划使用任何服务器端库的,请确保您使用的任何托管环境都符合HIPAA。
我认为这意味着TrueValut可以支持独立的(客户端)移动应用程序架构。其中,TrueVault API是唯一的服务器端交互。
然而,我对这些文件的理解是:
API_KEY。API_KEY都提供对存储在TrueVault中的所有数据库和JSON文档的完全访问。如果这两个假设都是正确的,那就意味着不可能直接从客户端应用程序注册新用户,迫使我使用一个昂贵且资源密集的HIPPA辅助web服务器。解决这一问题的唯一方法是将API_KEY硬编码到应用程序中,如果API_KEY可以访问我所有的TrueVault数据,这显然是不成功的。
对于我的用例,我对TrueVault有以下要求,以便能够考虑使用它(我可以想象,对于任何只想开发客户端医疗应用程序的人来说,这些需求都是一样的):
TrueVault能够提供这三个基本需求吗?
如果对此的回答是“否”,我建议您在您的网站上更新此文本,因为没有任何可行的HIPPA辅助应用程序可以由TrueVault支持,而没有独立的服务器端接口。
发布于 2018-01-12 04:49:16
我目前正在使用AWS Lambda作为解决方案。Lambda是HIPPA兼容,更多的信息这里。兰卜达也是一个低成本的解决方案。
下面是我使用Node.js在Lambda上运行的代码示例。
var request = require('request-promise');
var _ = require('lodash');
function encodeBase64(str) {
return (new Buffer(str)).toString('base64');
}
var baseUrl = 'https://api.truevault.com/v1/';
var headers = {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
};
var req = request.defaults({
baseUrl: baseUrl,
headers: _.extend({
Authorization: 'Basic ' + encodeBase64('your api key:')
}, headers),
transform: function(body) {
return JSON.parse(body);
}
});
exports.handler = function(event, context) {
req.post('users', {
form: {
username: event.email,
password: event.password,
attributes: encodeBase64(JSON.stringify({
name: event.name
}))
}
}).then(function() {
context.succeed({user: user});
}).catch(context.fail);
}发布于 2021-03-06 23:07:41
一般来说,如果在用户和TrueVault之间包含了零个服务器端处理,那么API键将是公开的。至少,我不知道有什么办法可以避免这种情况。
尽管如此,跳到“任何API_KEY都可以完全访问存储在TrueVault中的所有数据库和JSON文档”是不正确的。
TrueVault API密钥可以在很大程度上缩小范围。将密钥限制为只对{Vault#1}写入权限,第二个键仅对{Vault#2}进行读取权限,第三个键允许上传{Vault#1,}中的博客,有相当多的变体,第四个键用于删除{Vault#2}中的信息,并根据需要打开。您还可以将权限限制在API键(例如用户专用密钥) 这里有完整的文件。所拥有的内容上。
也有有限的作用域密钥(设置过期时间、使用计数、对任何先前权限范围的限制)。医生来了。
TrueVault还提供独立于API密钥的用户登录,如果用户使用登录凭据,这可能更适合。医生来了。
我自己还在计算TrueVault (至少在写文章的时候),所以一定要为您的需要进行更多的研究和复习。如果有限的作用域对我的需求“足够好”,我仍然感到困惑--我倾向于使用AWS (或类似的)作为一个符合HIPAA的中间层,如果只是为了更好地隐藏我的访问令牌生成,并隐藏我的数据将到TrueVault,并添加一些“服务器端-服务器端”数据验证的类型。
https://stackoverflow.com/questions/28401670
复制相似问题