首页 > 解决方案 > Android 的 Keycloak 如何使用 SAML 协议工作?

问题描述

我已经使用 SSO 的 keycloak openid-connect 协议配置在 Android 中成功创建了一个演示。现在我想使用 SAML 协议。

我在 openid-connect 中使用的详细信息:

client_id

用户名

密码

授予类型

client_secret

现在,当我在 keycloak 仪表板中从 openid-connect 更改为 SAML 时,客户端秘密选项变得不可见。

因此,在 android 中,我删除了该变量,并将 URL 从 openid-connect 更改为 SAML。但是得到错误Page not found

我看到了很多示例,也搜索并导入了 github 项目,但是我将使用 openid-connect 获得演示,或者我将在不使用 keyclaok 的情况下获得演示。

我不明白还需要什么。

顺便说一句,我按照这个示例进行 openid-connect 并且它也可以正常工作:https ://github.com/thomasdarimont/android-openid-connect/tree/feature/keycloak-oidc-demo

我将分享一些代码:

protected Boolean doInBackground(String... args) {
            String authToken = args[0];
            IdTokenResponse response;

            showLog("Requesting ID token.");

            try {
                response = OIDCUtils.requestTokens(Config.tokenServerUrl,
                        Config.redirectUrl,
                        Config.clientId,
                      
                        authToken);
            } catch (IOException e) {
                Log.e(TAG, "Could not get response.");
                e.printStackTrace();
                return false;
            }

            if (isNewAccount) {
                createAccount(response);
            } else {
                setTokens(response);
            }

            return true;
        }

看看,关于这件事的例子真的很少。不知道为什么!

标签: androidkeycloaksaml

解决方案


SAML 主要用于基于浏览器的身份验证(包括身份验证请求、重定向等)。所以这并不适合Android应用程序。

您是否有充分的理由使用 SAML 而不是坚持使用您的(已经工作的)OIDC 解决方案?


推荐阅读