Gaia-2-Authentication and Gaia
2019-07-25 本文已影响1人
空乱木
FROM : https://docs.blockstack.org/storage/authentication.html
Blockstack认证是一种基于承载令牌的认证系统。从应用程序用户的角度来看,登录类似于他们熟悉的第三方认证技术。对于应用程序开发人员,该流不同于集中式登录服务(如OAuth)的典型客户机-服务器流。使用Blockstack,身份验证流程完全在客户端进行。
在本节中,您将获得身份验证系统的概述,并了解Gaia如何适应它。
身份验证和Gaia
分布式应用程序(DApp)和blockstack浏览器在身份验证流期间通过来回传递两个令牌进行通信。请求应用程序向blockstack浏览器发送一个authRequest令牌。一旦用户批准登录,blockstack浏览器就会使用authResponse令牌响应应用程序。这些令牌是JSON Web令牌,它们通过URL查询字符串传递。
当用户选择在DApp上“使用Blockstack登录”时,redirectToSignIn()方法将用户发送到Blockstack浏览器。浏览器使用身份验证令牌和应用程序私钥进行响应。
image应用程序私钥是特定于应用程序的。它使用appDomain作为输入,从用户的标识地址私钥生成。这个密钥是确定的,这意味着对于给定的blockstack ID和域名,每次都会生成相同的私钥。应用程序的私钥在每次身份验证时与应用程序安全共享,并由blockstack浏览器加密。钥匙有三个功能:
- 是否用于创建凭据,使应用程序能够访问特定应用程序的Gaia hub存储桶
- 是否用于存储在用户的Gaia hub上的应用程序文件的端到端加密
- 作为一个密码秘密,应用程序可以用来执行其他密码功能
当应用程序写入到Gaia Hub时,身份验证令牌、密钥和数据被传递到Gaia Hub。
image令牌确保DApp具有代表用户向hub写入的授权。