在我的应用之间共享具有一个签名的KeyPair,而无需与用户交互(SSO扩展)

时间:2018-11-22 09:30:57

标签: android security single-sign-on keychain android-keystore

我有一家公司的多个应用程序。对于SSO问题,我需要在每个应用程序中使用相同的KeyPair集(包括私钥)。如果是IOS,KeyChain可以在一个证书的所有应用之间共享密钥,而无需用户参与。但是在android的情况下,我们必须以以下方式安装此KeyChain:

BufferedInputStream bis = new BufferedInputStream(getAssets().open(
                PKCS12_FILENAME));
        byte[] keychain = new byte[bis.available()];
        bis.read(keychain);

        Intent installIntent = KeyChain.createInstallIntent();
        installIntent.putExtra(KeyChain.EXTRA_PKCS12, keychain);
        installIntent.putExtra(KeyChain.EXTRA_NAME, DEFAULT_ALIAS);
        startActivityForResult(installIntent, INSTALL_KEYCHAIN_CODE);

系统应用程序使用InstallIntent并与用户交互以询问密码并显示其他几个对话框。这种方式是不可接受的。还有其他共享KeyPair的方法吗?或者,也许您在SSO方面拥有类似的经验,不仅与令牌共享有关,而且与privateKey有关?我将不胜感激任何建议

0 个答案:

没有答案