Connecting with Raspberry Pi accounts — more benefits, one account!
Our development team have been working hard over the last few months to deliver additional benefits to all our community members on the CoderDojo platform. By connecting your CoderDojo account with Raspberry Pi Foundation accounts (this platform belongs to the wider Foundation that CoderDojo is a part of), you will be able to avail of all the current features associated with your CoderDojo account, along with additional new features and benefits.
What are the benefits?
We want CoderDojo members to have access to all the features currently available to Raspberry Pi account holders, as well as access to future offerings. There are numerous benefits to this connection, including:
- Increased functionality on the projects site, like saving your progress while working through a project
- The ability to ‘favourite’ projects, which allows you to have your favourite projects easily available when you next log in
- Smoother project registration for Coolest Projects online, as Raspberry Pi accounts are already integrated with the Coolest Projects platform
- The same ability to create and/or book into events, along with all the other benefits available to you through your CoderDojo account
In addition to the benefits above, there are even more features being planned!
How will the changes affect me?
As part of the connection, there will be a short period when you will be unable to use the platform. Once all accounts have been connected, those who have CoderDojo accounts will be emailed on Wednesday 27 May. The email will provide you with a unique link taking you to the new login page (you can also log in here). There will also be an explanation about how to log in, and about how to to reset your password, if you have not logged in recently. Once you have logged in, you will be able to avail of all the benefits outlined above.
How to let us know if you have an issue
If you are unable to log in using the link provided in the email, and have tried:
- Logging in with existing Raspberry Pi account details (if you had a Raspberry Pi account previously)
- Logging in with your current CoderDojo account details
- Resetting your password
You should contact us at [email protected] Include the email address you used to log in (if different to the one you are using to contact us), along with a screenshot and description of your issue. If, after logging in, you notice an issue with some functionality of your account, please email us in the same way.
You can also share your experience of the new features on our CoderDojo Global Slack instance in the #zen-platform channel.
A word from our developers
Greg Annandale, Web Platform Lead at the Raspberry Pi Foundation, explains why the team decided to undertake this work and how the project was implemented:
Connecting with Raspberry Pi accounts is in the interests of simplifying and providing a better experience for people across all of our platforms. For example, using your Raspberry Pi Account, you can log in to CoderDojo, Code Club, Raspberry Pi Projects and Coolest Projects online (with more coming in the future). Not having to create and maintain separate accounts for each is a clear benefit. It also allows us to remove huge amounts of duplication across our various platforms. Raspberry Pi Accounts provides possibilities around centralising information that is useful to people. For example you can manage all your Foundation newsletter subscriptions on your dashboard (and there’s more planned similar to this).
On the migration of data from the CoderDojo (Zen) platform into Raspberry Pi Accounts, it’s important to note that we’ve never had access to any passwords throughout this process. As users have logged in to the CoderDojo platform over the past few months we’ve been generating ‘salted hashes’ in a format used by Raspberry Pi Accounts. This enabled those accounts to be moved over securely without a change of password being required. For those who log in less regularly, they can easily update their password using the normal Reset Password process.”
The technical side of the integration
If you prefer to avoid technical jargon, simply check your email inbox, log in to your CoderDojo account, and try out the new features for yourself! However, as many people from our community are involved in software engineering and development, Greg wanted to explain some of the more technical aspects of connecting accounts, so read on if you’re interested!
Raspberry Pi Accounts uses OpenID Connect (OIDC). Essentially OAuth2 with an extra identity layer on top. This allows us to take a federated identity approach, where a user’s tokens can be used to gain access to multiple platforms. We’re both the identity provider and the client in this instance. Therefore we don’t need the traditional Access screen that you’re likely familiar with when using OAuth2. For example: Would you like to grant third-party website XYZ access to your profile information?. This makes the process of signing into applications quick and smooth. If you already have an active Raspberry Pi Accounts session, clicking Log In on one of our connected applications will log you in immediately, with no further input required.
In a similar vein to Don’t roll your own crypto, we have not rolled our own OIDC implementation. Instead, we’re using an OpenID Certified provider called Hydra. This handles the complexities of the token generation, exchange, introspection, as well as the various flows and redirects required throughout the authentication and authorisation process. We run this on our own infrastructure. It works alongside our identity provider application (the bit that provides the user-facing elements of account creation, logging in and the dashboard). Each connected site or application is configured as an OIDC client, with a pre-shared secret and a set of scopes that allow them to fetch profile data (such as your email address).
Thank you to all those who helped work on this project, from our development team to our community testers! We hope you all enjoy availing of these new features.