[keycloak-dev] [Android] KeyCloak Authenticator

Bill Burke bburke at redhat.com
Mon Sep 15 11:21:32 EDT 2014


Pretty cool.  How do we proceed?  What are next steps?

On 9/15/2014 10:38 AM, Summers Pittman wrote:
> <tldr>DEVELOPERS WILL NEVER HAVE TO WRITE ANOTHER LINE OF AUTH LOGIC
> AGAIN!</tldr>
>
> Over the weekend I tried my hand at writing a Android Account
> Authenticator for KeyCloak.  This lets Android manage the KeyCloak
> account, fetch tokens, provide tokens to other apps etc.  KeyCloak
> Authenticator let's you drop your keycloak.json file into an apk and
> access your KeyCloak Account with one line of code from any application
> on your Android device.
>
> Right now this is very much in the "I have an itch needing scratching"
> phase.  It doesn't do any robust error handling, hasn't been testing off
> the golden scenario, has no integration with any of the AeroGear stuff,
> etc.  Take a moment to watch the Demo and look at the demo project.
>
>    Video Demo :
> https://plus.google.com/103442292643366117394/posts/WSFbdodMsej
>
> The Demo video uses Android's native account menu to request from the
> authenticator a KeyCloak account.  This launches the authenticator's
> activity which will retrieve the credentials for Android and store
> them.  When I am back in the settings page and showing off the stored
> account, this is all native Android UI and not part of the KeyCloak
> authenticator.
>
> When I launch the Demo application this is a separate application from
> the authenticator apk.  The Demo project fetches the KeyCloak account
> from Android and gets its auth token.  Then it makes a request to
> KeyCloak's account service to fetch the user's account data.
>
> In the demo app there are three lines of code related to auth.
>
>     final Account account = am.getAccountsByType("org.keycloak.Account")[0];
>     String token = am.getAuthToken(account, "org.keycloak.Account.token",
> null, null, null, null).getResult().getString(AccountManager.KEY_AUTHTOKEN);
>
> and
>
> provider.setDefaultHeader("Authorization", "bearer " + token);
>
> The first two lines fetch the account and token from Android.  The
> second line attaches the account's auth token to the web request to the
> server.
>
> So now what?  I'll probably use this for my projects/demos because it
> makes my work easier.  Right now it doesn't have any connection to any
> of the "official" projects (Again, I wrote this over the weekend to see
> if I could) however it may be quite useful to someone.  In the project's
> README I've included a (incomplete) list of things that don't work.
>
> wdyt?
>
> Links :
>    Project : https://github.com/secondsun/keycloak-android-authenticator
>    Video Demo :
> https://plus.google.com/103442292643366117394/posts/WSFbdodMsej
>    Demo Source :
> https://github.com/secondsun/keycloak-account-authenticator-demo/
>
>

-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com


More information about the keycloak-dev mailing list