与zendesk的Android应用程序的SSO

时间:2015-06-25 14:14:57

标签: single-sign-on jwt zendesk android-applicationinfo

我需要一些帮助,使用Zendesk的Android应用程序单点登录。它使用JSON Web令牌,我没有任何想法如何在我的Android项目中实现它们。 Zendesk团队提供了一些不同语言的jwt示例,但我不知道如何使用它们并执行它们。

1 个答案:

答案 0 :(得分:2)

首先,如果您想使用JWT身份验证,您必须拥有用户数据库的项目后端。并且在这个后端必须实现JWT端点。它是您的应用程序用于验证用户的URL。

所以,如果你有这些东西,那么去Zendesk管理面板。在左侧选择"移动SDK"然后创建新的移动应用程序它会生成您的应用程序初始化Zendesk的代码。像这样:

ZendeskConfig.INSTANCE.init(this, "https://yoursite.zendesk.com",  "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "mobile_sdk_client_xxxxxxxxxxxxxxxxx", new ZendeskCallback<String>() {


@Override
  public void onSuccess(String result) {

  }

  @Override
  public void onError(ErrorResponse error) {

  }

});

在初始化之后,您可以使用匿名识别用户:

Identity anonymousIdentity = new AnonymousIdentity.Builder()
                        .withEmailIdentifier(authManager.getClient().email)
                        .withNameIdentifier(authManager.getClient().firstName)
                        .build();

                ZendeskConfig.INSTANCE.setIdentity(anonymousIdentity);

但是,在管理员面板中输入JWT端点之前,JWT身份验证将无效。您可以看到哪种类型的授权使用权限正好在我们在Zendesk中添加新应用的位置,但稍微低一点。

所以你选择身份验证方法 - JWT。在您的网站上输入端点,用于验证用户身份。哪里有这样的URL?在你的后端人员中询问它。这不是安全可能性。

经过这么长时间的操作后,您可以使用现在的JWT认证:

Identity jwtUserIdentity = new JwtIdentity("JWT User Identifier");
ZendeskConfig.INSTANCE.setIdentity(jwtUserIdentity);

删除&#34; JWT用户标识符&#34;例如,使用用户的电子邮件。但zendesk不建议使用可预测的东西,如电子邮件或用户ID。最好在用户登录后使用应用程序将拥有的用户访问令牌。但是在zendesk的测试示例中,他们使用的确是电子邮件=)

如果我解释了一些不太清楚的东西,你可以在这里阅读文档并查看android app的例子:

How to configure app

How to configure it in zendesk

Example app