Chrome自定义标签初始Okta身份验证未重定向回

SBe*_*413 6 redirect android single-sign-on okta chrome-custom-tabs

我正在Android应用程序上实施SSO,在开发过程中,我们使用Okta进行身份管理。我们已设置Okta,以便在成功进行用户/密码身份验证之后,用户仅需在后续登录时验证其密码即可。

我正在使用Chrome自定义标签打开浏览器网址,并在AndroidManifest中设置了正确的意图过滤器配置。

我遇到的问题是,初始身份验证屏幕未重定向回应用程序,并且出现ERR_UNKOWN_URL_SCHEME错误页面。但是,从密码验证屏幕进行身份验证时,会识别应用方案,并将用户重定向回该应用。

另请注意:在ERR_UNKOWN_URL_SCHEME错误页面上,如果我选择“在Chrome中打开”,则应用会选择重定向并将我放回到应用中。这使我相信这可能是“自定义标签”问题。

启动Chrome自定义标签的代码如下所示:

    CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(mCTSession)
            .setToolbarColor(ContextCompat.getColor(mContext, R.color.colorPrimary))
            .setStartAnimations(context, R.anim.slide_in_right, R.anim.slide_out_left)
            .setExitAnimations(context, android.R.anim.slide_in_left, android.R.anim.slide_out_right)
            .build();
    customTabsIntent.intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_TASK);

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {
        String referrer = Intent.URI_ANDROID_APP_SCHEME + "//" + packageNameToUse;
        customTabsIntent.intent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(referrer));
    }

    customTabsIntent.launchUrl(context, Uri.parse(fixedUrl));
Run Code Online (Sandbox Code Playgroud)

我知道在较旧版本的CCT中报告了类似的问题,但该问题似乎已得到修复。

还有其他人遇到过此特定问题吗?

添加实际身份验证页面的图像以供参考...

初始用户/密码屏幕(不起作用)

Okta初始用户/密码屏幕

仅密码验证屏幕(工作!):

在此处输入图片说明

小智 1

即使问题看起来不同,也可以按照此处的说明解决: https: //github.com/iainmcgin/AppAuth-Demo

相关部分是使用“插页式页面”作为身份验证流程中的重定向 URI。该页面的代码是https://appauth.demo-app.io/oauth2redirect,您必须将redirectUri js变量更改为您的应用程序uri(应用程序拦截的原始重定向URI)

作为参考,我最初在这里找到了解决方案:“当从 Chrome 自定义选项卡重定向到 Android 应用程序时,导航被阻止”