[[PageOutline(2-5,Contents,pullout)]] = Authenticate using OAuth2 == Description This is a plugin intended for use in authenticating against Google. It uses OAuth2 authentication. In theory, it should work with other providers too. It currently replaces the existing HTTP authentication, however this is not strictly necessary and can be easily removed. Requires the oauth2client Python module. Released into the public domain. For specifics, please see [http://unlicense.org/]. == !Bugs/Feature Requests Existing bugs and feature requests for OAuth2Plugin are [report:9?COMPONENT=OAuth2Plugin here]. If you have any issues, create a [/newticket?component=OAuth2Plugin new ticket]. [[TicketQuery(component=OAuth2Plugin&group=type,format=progress)]] == Download Download the zipped source from [export:oauth2plugin here]. == Source You can check out OAuth2Plugin from [/svn/oauth2plugin here] using Subversion, or [source:oauth2plugin browse the source] with Trac. == Installation 1. Obtain a "client_secrets.json" file. The instructions below assume you are using Google OAuth2 authentication. * Creating a new project [https://console.developers.google.com/ here]. * Under "APIS & AUTH" click "Credentials" and then "Create new Client ID". * Select "Web application". * For Javascript origins, set the address of your server, for example: https://example.com/. * For redirect URI, set the path to your Trac project followed by oauth2callback, for example: https://example.com/trac/myproject/oauth2callback. * Under the newly created client ID section, click "Download JSON". 1. Drop the plugin in your plugins directory. 1. In your configuration section, disable the http authentication. Then specify the location of "client_secrets.json": {{{#!ini [components] trac.web.auth.loginmodule = disabled [oauth2] secrets = /path/to/client_secrets.json }}} 1. Optionally, if you would like to restrict access to a particular Google Apps domain, add the following: {{{#!ini [oauth2] domain = my.google.apps.domain }}} == Recent Changes [[ChangeLog(oauth2plugin, 3)]] == !Author/Contributors **Author:** [wiki:ysobolev] [[BR]] **Maintainer:** [[Maintainer]] [[BR]] **Contributors:**