{"action":"created","issue":{"url":"https://api.github.com/repos/edx/edx-platform/issues/8930","labels_url":"https://api.github.com/repos/edx/edx-platform/issues/8930/labels{/name}","comments_url":"https://api.github.com/repos/edx/edx-platform/issues/8930/comments","events_url":"https://api.github.com/repos/edx/edx-platform/issues/8930/events","html_url":"https://github.com/edx/edx-platform/pull/8930","id":95050764,"number":8930,"title":"Feature: LTI third-party-auth providers","user":{"login":"wmono","id":374925,"avatar_url":"https://avatars.githubusercontent.com/u/374925?v=3","gravatar_id":"","url":"https://api.github.com/users/wmono","html_url":"https://github.com/wmono","followers_url":"https://api.github.com/users/wmono/followers","following_url":"https://api.github.com/users/wmono/following{/other_user}","gists_url":"https://api.github.com/users/wmono/gists{/gist_id}","starred_url":"https://api.github.com/users/wmono/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wmono/subscriptions","organizations_url":"https://api.github.com/users/wmono/orgs","repos_url":"https://api.github.com/users/wmono/repos","events_url":"https://api.github.com/users/wmono/events{/privacy}","received_events_url":"https://api.github.com/users/wmono/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/edx/edx-platform/labels/open-source-contribution","name":"open-source-contribution","color":"bfe5bf"},{"url":"https://api.github.com/repos/edx/edx-platform/labels/waiting%20on%20author","name":"waiting on author","color":"0052cc"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":51,"created_at":"2015-07-14T21:52:45Z","updated_at":"2015-09-04T15:18:12Z","closed_at":"2015-09-04T14:40:55Z","pull_request":{"url":"https://api.github.com/repos/edx/edx-platform/pulls/8930","html_url":"https://github.com/edx/edx-platform/pull/8930","diff_url":"https://github.com/edx/edx-platform/pull/8930.diff","patch_url":"https://github.com/edx/edx-platform/pull/8930.patch"},"body":"Based on top of PR #8140, this change permits Learning Tools Interoperability (LTI) tool consumer applications to perform a session transfer into edX instances.\r\n\r\nAs the LTI login process is significantly different from other python-social auth providers (in particular, logins cannot be initiated by the application as there is no login page to redirect to) this auth provider has been added to third-party-auth instead.\r\n\r\nBackground reading: [Basic LTI implementation guide](http://www.imsglobal.org/lti/blti/bltiv1p0/ltiBLTIimgv1p0.html)\r\n\r\nTo test this change, first configure a LTI tool consumer in the Django admin interface, making up a consumer key and consumer secret as one would for an OAuth auth provider, then use the [LTI tool consumer reference implementation](http://www.imsglobal.org/developers/LTI/test/v1p1/lms.php) to launch https://yourserver.example.com/auth/login/lti/ . The trailing slash is mandatory.\r\n\r\nUnfortunately, the consumer/provider names can be awkward: edX is acting as an LTI tool provider -- that is, it is providing itself as a tool to an external tool consumer application -- but it does so by accepting that tool consumer as a third-party-auth auth provider.\r\n\r\nWe've been working with @ebporter on this change. Please note that this change is distinct from the similar work in PR #8347 as this one creates/associates fully functional users; the intent here is to use LTI as a session transfer mechanism, whereas the intent there is to embed edX into another application. Further work to merge these two approaches is under discussion.\r\n"},"comment":{"url":"https://api.github.com/repos/edx/edx-platform/issues/comments/137763938","html_url":"https://github.com/edx/edx-platform/pull/8930#issuecomment-137763938","issue_url":"https://api.github.com/repos/edx/edx-platform/issues/8930","id":137763938,"user":{"login":"feanil","id":781561,"avatar_url":"https://avatars.githubusercontent.com/u/781561?v=3","gravatar_id":"","url":"https://api.github.com/users/feanil","html_url":"https://github.com/feanil","followers_url":"https://api.github.com/users/feanil/followers","following_url":"https://api.github.com/users/feanil/following{/other_user}","gists_url":"https://api.github.com/users/feanil/gists{/gist_id}","starred_url":"https://api.github.com/users/feanil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/feanil/subscriptions","organizations_url":"https://api.github.com/users/feanil/orgs","repos_url":"https://api.github.com/users/feanil/repos","events_url":"https://api.github.com/users/feanil/events{/privacy}","received_events_url":"https://api.github.com/users/feanil/received_events","type":"User","site_admin":false},"created_at":"2015-09-04T15:18:12Z","updated_at":"2015-09-04T15:18:12Z","body":"Good to know.  Thanks Cale.  @ebporter I'll follow up with you to figure out the details of going live with this code."}}