Even though I haven’t used Moodle as much as WordPress and Wikispaces in my own teaching and learning, I have installed it enough times to know what it does well and what it does not do so well.
Moodle does a very good job of monitoring students, giving assessments/grades, providing content, and doing discussion forums. It does not do a very good job of synchronous collaboration, wikis, email, or any of the other things that Google Apps does an amazing job at. I guess that is why Moodlerooms decided that it would be a great idea to get the two projects together and create an easy way to do single-sign-on.
I am amazed at the potential for something like this. Imagine being able to log into your classes, your e-mail, your sites, and your docs all at one place. Well, after much working on my own installation, I would like to provide a simple how to for making this process happen in your Moodle instance:
Step 1: Download Moode-Google Integration “plugin”
Step 2: Unzip the files into your moodle installation.
Step 3: Follow these instructions for the moodle side:
- Login to Moodle as an Administrator
- Click Notifications to update block tables
- In the Site Admin menu, select Users. Next, select Authentication and click Google Authentication.
- Enter your Google partner page domain name.
Step 4: Create the Private and Public Keys for Moodle and Google Apps
Open up Terminal and enter in the following two strings:
- openssl genrsa -out rsaprivkey.pem 1024
- openssl req -new -x509 -key rsaprivkey.pem -out rsacert.pem
The first command creates the private key that is stored only on Moodle and the second command creates the public key that is stored on both Moodle and Google Apps.
- Upload Private Key (rsaprivkey.pem) (if you don’t have access to Terminal, visit Google Documenation Regarding Key Generation) to Moodle
- Upload the SSL Signing Certificate (rsacert.pem) (again, if you don’t have access to Terminal, Google Documenation Regarding Key Generation ) to Moodle
- In a new window open Google Apps Control Panel page as admin (http://google.com/a/yourdomain.com)
- Click the Advanced tools tab.
- Click the Set up single sign-on (SSO) link next to Authentication.
- First check the Enable Single Sign-on box.
- Now insert this url into the Sign-in page URL text field.
- Insert this url into the Sign-out page URL text field.
- Insert this url into the Change password URL text field.
- Upload the Verification certificate to Google (X.509 certificate containing the public key). This is the rsacert.pem file that you uploaded to Moodle already.
- Click the User Accounts tab in Google Apps.
- This displays existing users as well as a message that says “You can create up to ### user accounts for this domain” If you are using the Google User Sync block for account management, this number must match the number of accounts you plan on creating. Request more accounts if you need them by clicking the “request more” link on this page.
- Click the Settings link. Check the box to Enable provisioning API (otherwise users will NOT be updated).
- Click Save Changes.
- Click on Advanced tools in Google Apps one more time
- Click on “Manage OAuth Access”
- Upload your (X.509 certificate containing the public key) here too. This is the rsacert.pem file that you uploaded to Moodle already.
- Then copy to your clipboard (Control+C/Apple+C) the OAuth consumer secret
Step 8 (in order to get Gmail to fully talk with Moodle):
- Enable all of the google blocks in your Moodle Instance by logging in as an admin and then adding them to the front page.
- Open up the blocks admin (under modules) and click on the Gmail block.
- Paste the OAuth Consumer secret into the field that asks for it.
- Click Save Changes
- Click on the Google User Sync block in the blocks admin menu.
- Fill out your admin information for Google Apps
I think that is pretty much it. Once I did all of those things, I was able to create users in Moodle and have them transfer over to Google Apps. I was able to log into docs, sites, gmail, etc directly from the Google Apps block in Moodle.
As excited as I am that I was actually able to get it to work, I am more excited for the possiblity of stopping the excuses that many people have in either not implimenting a LMS because it doesn’t have a collaborative suite built in or not implimenting Google Apps because it doesn’t work within their LMS. I would like to get to a point where people only are talking about the learning possibilities, not the pitfalls of the technology.
(Also, let me know if I have screwed up in any way on this how-to. I would post it on a wiki for others to make it better, but since I don’t know where the Moodle wikis are, I will wait until someone illuminates me.)
Ben, if you don’t already know, I wanted to state for the record that you are one of my favorite people. Hit me up some time. I really want to have a conversation about this.
This is absolutely amazing…if it works, it renders MoodleRooms unnecessary, just load Moodle and off you go. Of course one needs to be able to handle all this, but there are those out there who can! Kudos, Ben, for doing a fabulous public service. I sure hope others will rise to the challenge of uncovering any bugs in this process so that it becomes totally smooth for all!
I just sent this article off to my district IT guy. we already use Moodle district wide and now they have been working on a google docs/apps system for the district… I hope they can put them together! thanks for posting this, although it makes no sense to me, I hope it will make sense for my IT guy.
Just as a note to Jim, the integration doesn’t let you run Moodle <em>on</em> GoogleApps*, it lets you integrate Moodle with GoogleApps – with Moodle as the source of user accounts in GoogleApps.
Hopefully it doesn’t render Moodlerooms unnecessary or we won’t be able to keep developing and releasing things like this;-).**
*Running Moodle on the Google Platform would be a great deal of work, as Google’s BigTable database doesn’t support joins, and Moodle uses a great deal of them currently.
** As Moodlerooms is an official Moodle partner, we also do contribute a substantial amount of our revenue back to support the continued development of the Moodle core code.
I, too, would like to talk with you sometime about this integration and how you have used it. I have used Google Docs quite a bit so it would be amazing if I could integrate it into Moodle. Thanks
Littleton High School
It all works well, thanks, except the unread mail always says (0).. Am I doing something wrong?
Pingback: Moodlerific.org » Blog Archive » Google Apps + Moodle Integration Struggles
Ben, can’t thank you enough for this great guide. Only bit I had to change was the bit r.e. key generation but that was explained on the Google page you linked to!
I’ve managed to get a Moodle installation talking to my existing Google Apps service as a test (http://twitpic.com/69vjj) so now I can hopefully roll it out to c.3,000 students at the Academy at which I’m Director of E-Learning. 🙂
Hey man thanks a lot for this. I followed your instructions and got the integration working perfectly.
This is phenomenal. Fantastic work. I’m playing with this for one of my clints, and everything worked seamlessly. If only my Moodle-Mahara integration was going as smoothly!
Kudos for developing it and sharing it with all of us. If you’re going to be @ NECC, drop me a line, and we can connect.
Chris : )
P.S. As Edutopia’s Totally Wired Teacher for 2007, you might be interested in the Digital Generation Project which I recently helped them launch: http://www.edutopia.org/digital-generation
Pingback: Moodlerific.org » Blog Archive » Microsoft Integrates Live@edu with Moodle
Thank you for the clear directions – I just finished implementing a Wikispaces / Moodle SSO integration and am now working on getting this as the next step. Your easy to understand steps are so valuable.
If only blogger was included with educational google apps.
There is another very useful tool that does better for student monitoring, content management and also very good synchronous collaboration with other students in real time. Take a look at flash cards on this site and also the concept of student ‘funnel’ and concurrent changes to flashcards! I have used this and found it to be very useful with my students.
I was trying to access this site ( http://code.google.com/apis/apps/articles/sso-keygen.html) but it results in error. I searched a lot to find some clues on how to obtain the Private and Public Keys for Moodle and Google Apps. Finally I stopped by this site: http://moodle.eustaceisd.net/mod/wiki/view.php?id=1101&page=Create+RSA+Key+and+SSL+Certificate+for+Moodle+and+Google
Would you so kind to update the information, so other people reading your awesome instruction won’t have any problems ?
Sorry, the site is : http://moodle.eustaceisd.net/mod/wiki/view.php?id=1101&page=Create+RSA+Key+and+SSL+Certificate+for+Moodle+and+Google.
Pingback: Moodle, Mahara, Google Apps and SSO « Adrian Taylor
Your directions were great. This is exactly what we needed to get the password piece of our LDAP integration working with Google Apps. Two things I’d like to point out or ask though.
First – Now that I have made the changes, when my users log off our Moodle server they go to a new URL (http://moodle.wssd.k12.pa.us/login/logout.php?sesskey=fNFykG7nS4) and it comes up as an error (Internet Explorer cannot display the webpage) unless you refresh the page then you are out logged out of the Moodle site. Has anyone else seen this? Am I doing something wrong?
Second – I have some users who have usernames that are split with a space (like john doe) and the sync-cmd in Google Apps does not like them and now that I have done SSO, neither does Moodle. I can change these few users to a different username but is this normal behavior too?
Thanks again for documenting this. It really helped.
The above situation was being caused by our web content filter prohibiting access to mail.google.com. Once we got that straightened out, we were OK. And yes our users cannot have spaces in their names, so we are in the process of fixing these too. Thanks for your help.
Pingback: m-Learning » Google Apps y Moodle
Wow this great. Thanks.
Is it possible for me to use this plug for two separate Google Ed Apps. We hold and host two different domains for Google Ed App. One is for our teachers and one for our students. This allows another layer of control for our tech department and staff. Both groups use the Moodle platform to log in. So I was hoping to be able to have two separate blocks. One for students, one for teachers.
If anybody else is having an issue with the unread mail count always reading (0), I found that in the Gmail Settings in my site Modules-Blocks-Gmail that the OAuth Consumer Secret had a space at the end of it i.e. jhjhhuhuh788 . (obviously the . is to represent where my key ended, it should have ended after the last 8). When removed and changes saved, hey presto unread emails showed up. Hope this helps anyone.
I would so like to have access to terminal, but to be honest I don’t know what it is?
Or could somebody help get to the commandline so that I can generate the public and private keys for integration between moodle and google..
Thanks in advance,,
I’d love to implement this, but I have one question:
I already have 1200 users on my Google domain. If a user is on the Google Domain, but not in the Moodle user database, will they be eliminated from Google?
@Bill All you would need to do is download all of the users from your gApps domain as a CSV and then upload them to your moodle. This would make sure that no accounts get “erased”. You can also not turn on that option, meaning that Moodle will be used for authentication, but it will not sync the databases. Let me know if you have any questions about that.
Thanks Ben. It is working great. Still in our testing phase, but the ga-moodle is a great marriage.
Pingback: Moodle eingeführt « Ich lerne noch.
Ben thank you for your great explanation. I found it out after strugling with Gooogle and Moodle documentations.
One important question. Like Bill I have gApps running with all my users there and just installing Moodle. I have my google accounts in .csv and use Upload users option in Moodle to add all of them. I need to enter passwords for the csv. What do I do for that?
What happens to the students gmail passwords. I did a trial on a few it only works with the new passwords I enter from csv. I have turned on the Google authentication. But still gmail passwords do not work when loggin in. I do not want to tell all the kids that they have a new password. Even if I do I cannot configure in bulk to make them change their passwords when they first enter.
@Serpil, Your user’s Google Passwords are no longer in use, but if you were to ever remove the SSO (like we did when our moodle was down for repairs) their passwords in Google Apps would again become active. I don’t think that there is any way to get the passwords from your Google Apps Administration panel, so I would recommend setting all of the passwords in the CSV that you upload to moode to a single thing and then forcing them to reset their passwords to whatever they were using for their gApps password. This is a pretty dumb step, but I don’t really see any way around it.
There is a way to have they force to change passwords upon entering within the CSV. I believe that you can add that as one of the fields, but I would have the check what it is in the Moodle docs. I’ll let you know if I find it.
Let me know what other questions you have, and thanks for commenting.
Ben, I have worked my way through and have my test site ready. 🙂 Thanks to you!!
In csv for the pasword you should give changeme and when you are uploading you should pick “Select for bulk operations:New User”.
I do not know what this option is for but it worked only with this.
One more question:
My moodle and Google Apps sites used to work very fast before this operation. Now Moodle site is very slow. It might me that I have uploaded 600 users, or I am hosting it on dreamhost servers, oe don’t know what else. I started to think that this was not a good idea.
Moodle slows down for a few different reasons (this is not an exhaustive list by any means). One, the server that it is on is not set up to handle the amount of traffic. Two, the database that it is using is not set up to handle the number of entries. I would say that both may be in play in your case. If you are having everyone authenticate through moodle, more people are going to be using it. If you had to upload all of those users, the database is getting larger as a result.
If I had to guess, it would probably be amount of traffic, but you should be able to see just how many people are logging on when and see if there was a difference after you did the SSO. Let me know if there is any other ways I can help. Talk to you soon.
Thanks for your howto. It is still the best. At the moment, December 2009, there will be a more new software package from November 16th 2009. It can be downloaded directly from MoodleRooms.
Another thing: Google Apps Education has since 2009 no “Partner Start Page” available. So there is a small mistake in the Google-Block. I have just deleted the line in the code, so everything is now ok.
I followed this guide but the connection from moodle to gmail doesnt work. If i turn on full debugging i get this.
[message:protected] => Could not find private key file [C:MoodleInstaller19servermoodle/auth/gsaml/C:MoodleInstaller19server/moodledata/samlkeys/rsaprivkey.pem] which is needed to sign the authentication response
As you can see i use windows for this installation, the strange thing is that the sync to google works, i have pushed users from moodle to google, but the gmail function is dead.
I can’t sort it out, i have copied the certs to both locations mentioned above.
Anyone have any thoughts of this?
my google apps is hosted at hostmonster and they have a script Moodle 1.9.7. Would I install the script at http://www.epikinonia.org or http://epikinonia.org. What's the difference?
Another question is 'create a new database? I would assume yes
Do I still have to install the Moodle-Google intergrations plug in someplace or at epikinonia.org? How do I go about installing it there?
Pingback: Daily Links 02/20/2010 « EduEyeView
The www is redundant. You shouldn't ever need it.
If you have Moodle running on your server, all information is in that
You will have to install the Moodle-Google integrations plugin in the moodle
folder. If you have FTP access, you should be able to do it just fine. Just
follow the instructions on the read me file in the Moodle-Google zip file
for installing in the Moodle directory. Let me know if you have any other
thank you for responding. I have the standard version of google apps and and it seems it doesn't have some of the features that the moodle-google integration instructions-settings call for in the advanced tools of google apps..
I did all the things that you have suggested in your email such as ftp-ing the moodle-google integration files in the moodle directory of the host(ed) server.
I wonder if I can upgrade to the educational g-apps.
thank you again!
Absolutely, you should upgrade to the Educational version of Google Apps.
Here is the link to do so:
Pingback: #Google Apps Integration @bhwilkoff | Moodle Monthly
thank you. You've been most helpful.
Pingback: Where Diigo this week… (weekly) « Dave Dixon
Thanks we've always wanted to try out Moodle, now that Google Apps can be integrated we might switch from wordpress to moodle.
I do think that WordPress and Moodle do drastically different things. What
are you using WordPress for now that you aren't satisfied with?
I do think that WordPress and Moodle do drastically different things. Whatrnare you using WordPress for now that you aren’t satisfied with?
Pingback: Moodle o google? « AlexelA
Pingback: Moodle i Google « AlexelA
Pingback: links for 2010-08-01 « Mathematics, Learning and Web 2.0
Ben I am having the same problem were my new users are not getting created but when they are added in google they sync fine. I was wondering if you ever got yours fixed. You mentioned something about the latest version but I can not find anything newer than May. If I go to sync status I get Google Apps error: Unable to Connect to ssl://www.google.com:443. Error #0: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution my last sync was Sept 10
I haven’t been able to come up with the time to really take a close look.rnThe one from May should be good enough to perform syncs with the new versionrnof the API. I will be looking more into this soon, but let me know if yournwere able to figure it out because uploading the users twice is kind of arnpain.
I fixed the Unable to Connect to ssl://www.google.com:443. Error #0: php_network_getaddresses: getaddrinfo error that was an issue with my server. But my users still do not sync anymore when I go to google user sync I get “Authentication with Google Apps was successful.” but when I add a new user I get “Invalid Email”. I am still working on it thanks for the update. rn
Yep. The invalid email will happen until either the SAML handshake is fixedrnwithin settings (which I haven’t had time to figure out) or you upload thernuser into Google Apps (which is what I have been doing in the meantime).rnPlease let me know if you do figure it out. Talk to you soon.rnrnMy profiles: [image: WordPress] [image:rnLinkedIn] [image:rnTwitter] [image:rnFlickr] [image:rnDelicious] [image:rnSlideShare] [image:rnFacebook] [image:rnGoogle] rnLatest Blog Post: Question 291 of 365: What is the newrnEugenics?
Thanks for your guide. I am a foreign language teacher. My school has not set up any course management system yet, I have been using a wikispaces account for my classes. Lately, I have been thinking about installing a wordpress as extension of my class wikis, and even switching from wikispaces to Moodle, but don’t know exactly how to go about it. I wonder if you could comment on the difference between wikispaces, wordpress, and moodle for individual users. Thanks!
Wikispaces is great for collaborating on one long range project. I generally
set up a new wiki for each unit of study so that the wiki maintains focus.
You can try and do a year long wiki, but it does get unweildy a bit. I love
wordpress for writing from a particular perspective or for things that do
not build upon one another. I have written about 1000 blog posts with
wordpress and I think that it has brought a level of reflection to my
practice that nothing else has. As for Moodle, it is a straight up Learning
Management System. This is for course creation, assessment, and
conversation. If you have a wiki, you may not need Moodle to manage your
content. If you have a Gradebook, you may not need Moodle to manage your
assessments. If you have a portal for your kids to go to and access their
classwork, then you may not need Moodle for the hallways of your your school
or the conversations in your classroom. Moodle is an
incredibly versatile tool, but it isn’t the right tool for everything. I
hope that helps some.
Hola soy de Peru, esta excelente el tutorial, funciona a la perfeccion, eres un genio man.. Thanks!
Please go to http://code.google.com/p/moodle-google/downloads/list to get the most updated zip file / version of the “Moodle-Google” project. Thanks
Thanks for the link. This post is due for an update as soon as I get a
Will this work with Moodle 2.0?
I am not sure. I am interested in trying it out on 2.0, but none of my
Moodles are ready to go there yet. Perhaps later this year I will try it
out. Let me know if you try it out and find out one way or another.
Great post, thank you!. I am also curious about having this running with moodle 2.0.
Will you try it out for us and let us know? Pretty please…
thank you so much..
This is gem. Thank you
I have been using this for three years now. I want to know which Moodle Group created it.
I believe it was originally moodlerooms, but it is now an open project on google code.
Collaborate now: http://bit.ly/WilkoffDoc
Hello Peter, I have sync set up and I add new users to Moodle and then sync with Google every day. I have a cron job set up that does sync every
Starting this school year (2011-12) my users have been randomly (but more frequent than I would like) getting the attached error. It states “Password Not Valid” and this is when attempting to log into Moodle. We are doing LDAP authentication to our PDC and then using the Moodle-Google plugin for SSO. We are using the first version of the plug in.
Does anyone think that my issue is my Moodle server (Moodle 1.9.9+ (Build: 20100707)) or should I consider upgrading my plug in or is is Google (did they upgrade something on their end).
Any thoughts appreciated.
I am having similar issues and they began about 5 days ago! I can’t tell if it is Google or Moodle
I posted on the Moodle.org forum today. Maybe someone will have an idea. I will let you know if I find anything out.
This will integrate Google Apps services with Moodle. The Moodle administrators can manage google Apps accounts within Moodle and all the Moodle users will be able to access gApps services within Moodle.