Hi,
Here are a few options I'm aware of:
Option 1: Make the course "Invitation Only". Collect a list of students that should be allowed to register, and invite them to register using the instructor dashboard. This is the most robust, but obviously requires a lot of work upfront and is difficult to maintain. (You could also create a custom self-service webapp hosted on an external server that can determine if the user is authorized to enroll, and then enroll them in the course via the enrollment API - that would be easier to maintain but a lot more work to create.)
Option 2: After Dogwood was released, we've contributed a feature to allow you to specify a set of email address requirements; for example, you can say "only email addresses like @
myschool.edu or @
otherschool.edu are allowed to register":
http://edx.readthedocs.org/projects/edx-installing-configuring-and-running/en/latest/configuration/config_allowed_regis_emails.html
However, this affects user registration, not enrollment in specific courses - so if you have different courses for different universities, it likely wouldn't help you. It's also not a perfectly secure solution, since anyone can enter an invalid email like "
fake...@myschool.edu" and use the platform until forced to verify their email address. But it would make your intention clear and prevent casual access from unaffiliated users.
Option 3: Another option that is compatible with Dogwood or Cypress is to set up SAML/Shibboleth SSO login with each university, and then modify the login page template on your installation to disable to "normal" (first party) username/password login and registration. That would require changes to the code though, since I don't think that disabling first party auth is yet implemented by the Open edX project.
Again, would only affect user registration, not enrollment in specific courses.
Regards,