julianchen 发表于 2018-6-8 17:24:27

【小目标,一个“译”】+ 以太坊与智能合约之身份认证(4)

取移动身份验证的应用程序现在该设置你的辅助地址和登录帮助程序了。此应用程序将被作为身份验证的因子,用来确认你的登录请求。当你想要登录一些网站的时候,你将收到一个来自该应用程序的通知。此通知将允许你接受或拒绝身份验证的请求。1.获取应用程序进入Android Play商店,下载我们的Auth0 PoC应用程序(https://play.google.com/store/apps/details?id=block.chain.auth.zero)。2.注册打开该应用程序并输入你的电子邮件地址。然后选择屏幕解锁图案。当你想登录到网站时,你会被要求输入此相同的图案。然后单击Register。你将被要求在移动应用程序上单击Sign来予以确认。移动应用程序现在就设置好了,让我们来为登录启用你的以太坊帐户吧。为登录启用你的以太坊地址这一步,和以前一样只需执行一次,完成你的主地址和登录地址之间的映射设置。换句话说,它将把你的Metamask帐户连接到你智能手机的移动应用程序上。1.获得你的移动应用程序(辅助)地址如果你现在查看你的电子邮件(请注意检查那些垃圾、促销类邮件),你就会发现你以太坊的辅地址了。这就是通过你的智能手机来管理的帐户地址。请将它复制到剪贴板中。2.调用合约 !如果你是以太坊用户,且有你自己的钱包,你完全可以手动执行此步骤。然而为简单起见,我们已经建立了网站,为你分担了那些繁复的工作。同样使用你已安装了Metamask的Chrome实例,导航到我们PoC钱包(http://auth0-ethereum.com:3002/wallet/)。这个网站是一个简单本地的、钱包类型的应用程序,它创建了调用合约所必须的以太坊事务。该网站与Metamask交互,因此你不必手动输入你的帐户详细信息。一旦你进入该网站,请将你从上一步电子邮件里复制的以太坊地址粘贴进来,单击Register,会弹出一个Metamask的窗口。这是一个对于你将使用主帐户里的以太币来进行一笔交易的确认,因此请单击Sign。过一会儿后,你主账户和辅助帐户就连接上了,其花费的时间完全取决于以太坊的网络状态。一般也就是几秒钟而已。考虑你可能已经对以太坊很熟悉了,而且想要自己手动执行此步骤。那么请调用Mapper合约里位于 0x5e24bf433aee99227737663c0a387f02a9ed4b8a的mapAddress方法吧。你也可以通过链接:https://github.com/auth0/ethereum-auth-client/blob/master/config/abi.json来获取JSON API。其唯一的参数就是你在电子邮件里获得的地址。至此,一切都以完成!登录到我们的测试网站你现在可以运用你的电子邮件地址或是你的主以太坊地址作为凭据,登录到支持该身份验证方法的任何第三方网站了。请进入我们的示例网站:https://auth0-ethereum.com/authzero,填写你的电子邮件地址,然后单击Login。同时注意查看你的智能手机所弹出的通知,以批准你的登录信息。你会注意到一个标注着TrustlessAuthentication的复选框。如前文所述,第三方可能选用不同的安全级别。当被告知登录为有效(信任类型的身份验证)时,它们可以选择信任身份验证服务器;或者它们可能会选择不信任身份验证服务器,而是自己内部去验证签名。在这种情况下,第三方网站必须自己去验证辅助地址的签名,它们首先使用Mapper合约(这是公开可以获得的)来查询辅助地址,然后通过辅助地址的返回数据来验证签名,以查找到辅助地址所对应的公共密钥。这提供的是最高的安全级别,而只是用到身份验证服务器来传递消息。      如果你有兴趣仔细了解我们的PoC是如何工作的话,这里是所有的资源库:l身份验证服务器:https://github.com/auth0/ethereum-authentication-serverl移动应用程序:https://github.com/auth0/ethereum-authenticator-app-publicl第三方web应用程序的示例:https://github.com/auth0/ethereum-sample-webl使用Metamask来注册钱包:https://github.com/auth0/ethereum-browser-walletl简单测试的各种docker脚本:https://github.com/auth0/ethereum-docker-deployment      上述的资料库也用到了一些针对此PoC开发的帮助库:l以太坊加密的帮助库:https://github.com/auth0/ethereum-cryptol此PoC用到的、进行身份验证所需的JavaScript库:https://github.com/auth0/ethereum-user-db-servicel简单的数据库抽象帮助:https://github.com/auth0/ethereum-user-db-servicel为此PoC预配置的以太坊客户端节点:https://github.com/auth0/go-ethereum
页: [1]
查看完整版本: 【小目标,一个“译”】+ 以太坊与智能合约之身份认证(4)