[LTI Provider] Added an authentication backend to log in LTI users
This change adds a Django authentication backend which, when installed will authenticate users based on their LTI identity rather than using a username/password combination. The authentication method determines first whether a user with the given username exists and, if so, whether that user is associated with an LTI identity. It also verifies that the LTI consumer and user ID passed to the LTI launch match those stored in the LtiUser table. This will always be the case if the authentication backend is reached through the LTI code, but it provides an extra guarantee if the backend is called from elsewhere.
This commit is contained in:
@@ -647,6 +647,10 @@ EDXNOTES_INTERNAL_API = ENV_TOKENS.get('EDXNOTES_INTERNAL_API', EDXNOTES_INTERNA
|
||||
|
||||
CREDIT_PROVIDER_SECRET_KEYS = AUTH_TOKENS.get("CREDIT_PROVIDER_SECRET_KEYS", {})
|
||||
|
||||
|
||||
############ CERTIFICATE VERIFICATION URL (STATIC FILES) ###########
|
||||
ENV_TOKENS.get('CERTIFICATES_STATIC_VERIFY_URL', CERTIFICATES_STATIC_VERIFY_URL)
|
||||
|
||||
##################### LTI Provider #####################
|
||||
if FEATURES.get('ENABLE_LTI_PROVIDER'):
|
||||
INSTALLED_APPS += ('lti_provider',)
|
||||
AUTHENTICATION_BACKENDS += ('lti_provider.users.LtiBackend', )
|
||||
|
||||
@@ -2543,3 +2543,9 @@ CREDIT_PROVIDER_SECRET_KEYS = {}
|
||||
# when a credit provider notifies us that a student has been approved
|
||||
# or denied for credit.
|
||||
CREDIT_PROVIDER_TIMESTAMP_EXPIRATION = 15 * 60
|
||||
|
||||
# Default domain for the e-mail address associated with users who are created
|
||||
# via the LTI Provider feature. Note that the generated e-mail addresses are
|
||||
# not expected to be active; this setting simply allows administrators to
|
||||
# route any messages intended for LTI users to a common domain.
|
||||
LTI_USER_EMAIL_DOMAIN = 'lti.example.com'
|
||||
|
||||
@@ -495,3 +495,4 @@ PROFILE_IMAGE_MIN_BYTES = 100
|
||||
# Enable the LTI provider feature for testing
|
||||
FEATURES['ENABLE_LTI_PROVIDER'] = True
|
||||
INSTALLED_APPS += ('lti_provider',)
|
||||
AUTHENTICATION_BACKENDS += ('lti_provider.users.LtiBackend',)
|
||||
|
||||
Reference in New Issue
Block a user