如何使用firebase或Quickblox对IdentityServer进行身份验证

时间:2017-05-02 22:09:13

标签: asp.net firebase jwt quickblox identityserver3

我设计了一个依赖于大型生态系统的移动应用程序(现在是Android)。

我的一个主要组件是Auth系统,我使用IdentityServer3构建它。

现在,对于用户通过移动应用程序登录,我使用了OAuth2隐式流程,因此我打开了服务器端网页,该网页获取并验证用户凭据,然后生成id_token和access_token,因此我不知道用户密码是否为客户端侧。

现在,我想实现另一个功能,即用户之间的实时聊天。

我检查了很多解决方案,但是每个人都有一个安全漏洞,这可能导致该功能出现在不需要的场景中。

例如:

  • QuickBlox:

QuickBlox云彩服务(我不了解企业on-primes one)创建用户然后使用用户使用用户名和密码登录创建会话所需。

    QBAuth.createSession(new QBUser("user", "pass"), new QBEntityCallback<QBSession>() {
    @Override
    public void onSuccess(QBSession session, Bundle params) {
        // success
    }

    @Override
    public void onError(QBResponseException error) {
        // errors
    }
});

所以它有自己的UserStore,它与我的中心Auth服务是分开的,所以我考虑创建一个带有一层安全性的虚拟密码,比如创建一个定义明确的密码

UserName@ServerSideSecretKey 

但这不是我应该继续的方式,因为我应该依赖我的Central Auth服务并且只生成令牌,然后将其传递给QuickBlox以通过我的Auth UserInfo端点识别我的用户。

是否允许我将QuickBlox与我的Auth服务集成?

我在文档中找到了这一行:

  

也可以使用现有的QuickBlox初始化SDK   令牌。在构建大型系统的情况下,这可能很有趣   你有一个生成QuickBlox令牌的自定义服务器端:

try {
    QBAuth.createFromExistentToken("31ed199120fb998dc472aea785a1825809ad5c04", date);
} catch (BaseServiceException e) {
    e.printStackTrace();
}

但我不明白这将如何运作或如何允许QuickBlox验证我生成的OAuth2令牌。

  • 火力地堡:

在Firebase中,我知道我可以生成JWT令牌,然后根据我的firebase服务验证它,所以我应该将我的IdentityServer令牌生成行为更改为JWT,然后根据我应用的Firebase密钥验证它?

那么如何在隐式流的身份服务器中做到这一点呢?或者还有其他解决方案吗?

0 个答案:

没有答案