我已经构建了一个hyperledger-composer应用程序(angular前端,连接到composer-rest-server),到目前为止,它缺少身份验证。
我的理解是:
1.)需要为网络中的每个参与者颁发身份
2.)需要为步骤1中创建的身份创建名片。)
3.)需要将名片添加到rest服务器的钱包中
4.)第1步。)和3.)可以通过调用REST服务器提供的REST端点来完成
我不明白的是:
假设REST服务器的钱包中有一张"John Doe“的名片。名片包含参与者ID和关联的身份。
使用Google OAuth2.0进行身份验证。
当John Doe想要登录hyperledger-composer应用程序时,他被重定向到google,在那里他被要求输入他的google帐户的电子邮件+密码。
如果业务网卡包含John Doe的google帐户电子邮件(或其google帐户密码),则可以在业务网卡和尝试登录的用户(John Doe)之间建立连接。但名片上没有任何来自无名氏谷歌账户的信息(既没有电子邮件也没有密码)。
那么,应用程序如何知道尝试登录的用户拥有商务网卡,从而有资格登录呢?据我所知,该应用程序所能知道的是,试图登录的用户拥有google帐户-但这并不意味着他/她也有商务网卡,因此有资格使用该应用程序。
换句话说:我不明白OAuth2.0如何帮助身份验证,因为OAuth2.0提供者不保存来自hyperledger-app的任何数据(例如参与者id或身份),而hyperledger-app也不保存来自OAuth2.0提供者的任何数据(例如Facebook用户名或Google帐户电子邮件)。
发布于 2018-08-01 02:31:32
启用OAth2.0只需要您在访问REST服务器之前首先通过您的帐户登录,但实际上并不连接到任何钱包或参与者。所以它在当前状态下没有太多用处(在我看来)。
我所做的变通办法是使用Passport构建一个Node.js应用程序,并添加所需的身份验证策略,然后当通过Passport创建用户时,它还会在composer-rest-server上创建一个参与者并将他们链接起来。
https://stackoverflow.com/questions/51618533
复制相似问题