Commit Graph

430 Commits

Author SHA1 Message Date
Zaman Afzal
194f29ca55 ENT4134 Add the support for multiple IDPs (#27073)
* ENT4134 Add the support for multiple IDPs
2021-04-06 23:27:20 +05:00
Azan Bin Zahid
2136cde713 Merge pull request #226 from edx/im-security-13
Incident Management Security Fix 13
2021-04-02 12:30:04 +05:00
Nizar Mahmoud
4cb4be6afe feat: associates user by email for oauth when tpa is required
This change associates users signing in using oauth providers when tpa is required, verifying that only a single database user is associated with the email.

For more information as to why this was added in a separate pipeline, check edx-platform#25935.
2021-04-02 11:32:58 +05:00
Waheed Ahmed
f8de211e17 Fix redirection on SSO auth complete.
Since we are handling the MFE redirection in login_and_registration_form()
we don't need to handle it here. It's redirecting the enterprise users to
MFE instead of FE which is currently handled in login_and_registration_form()
view.

VAN-425
2021-03-25 22:16:34 +05:00
Azan Bin Zahid
6ab28aab54 PROD-2302 2021-03-24 18:13:36 +05:00
Usama Sadiq
3e6b3e41f8 refactor: remove unused imports (#27084) 2021-03-24 17:55:04 +05:00
Awais Qureshi
9c30125e69 Merge pull request #27054 from edx/third-party-auth-3
Pyupgrade in common/djangoapps/third-party-modes part3
2021-03-19 16:14:49 +05:00
Awais Qureshi
81bab4d01a Pyupgrade in common/djangoapps/third-party-auth/tests. 2021-03-19 15:39:48 +05:00
Awais Qureshi
a2f5a46a68 refactor: Pyupgrade in common/djangoapps/third-party-auth/tests. 2021-03-19 12:40:15 +05:00
Awais Qureshi
8f4491e927 Pyupgrade in common/djangoapps/third-party-modes/ 2021-03-18 11:26:19 +05:00
Waheed Ahmed
817adc299f Add custom attribute for SSO auth_entry.
Added custom for SSO auth entries to monitor which auth entries are
still in use.
2021-03-12 23:29:28 +05:00
Felipe Montoya
72fba562f8 Merge pull request #26477 from eduNEXT/MJG/Change_max_uername_len
feat: Changed username max_length to the specified by django
2021-03-08 15:15:49 -05:00
Kyle McCormick
9aefd6f986 style: django-not-configured is not a sensible lint-amnesty value (#26862)
django-not-configured is an error raised by pylint (with
the pylint-django plugin) when it's not correctly configured.

We should not be applying lint amnesty for such a violation.
2021-03-05 08:11:58 -05:00
Robert Raposa
40611bb915 ARCHBOM-1667: fix: remove authentication from auth exchange (#26618)
* Remove authentication, including SessionAuthentication, to fix CSRF
  exemption by dropping CSRF check of SessionAuthentication.
* Several changes to make it more clear that only POST is supported and
  clean up GET method testing.
* Removed the temporary 403 error logging that wasn't working.
* Removed test_single_access_token which was written for DOP, but
  doesn't work with DOT. See
  [MA-2122](https://openedx.atlassian.net/browse/MA-2122) for a ticket
  about implementing this for DOT, although it doesn't seem to be a
  priority. NOTE: A comment was added to the ticket explaining that this
  test was removed.
* GET now returns default error for methods not allowed.

ARCHBOM-1667
2021-02-23 10:57:11 -05:00
Jawayria
98edaf887a Merge pull request #26500 from edx/jawayria/bom-2351-3
BOM-2351: Removed unused imports from common/djangoapps/third_party_auth
2021-02-23 16:08:57 +05:00
usamasadiq
96f0915b0f Fixed new pylint warnings.
use generator in any/all()
disable not-callable warnings
disable no-member warnings
Suppressed smaller pylint warnings
Pin edx-proctoring==3.5.0
2021-02-22 16:36:53 +05:00
Jawayria
310da0d6a7 BOM-2351: Removed unused imports from common/djangoapps/third_party_auth 2021-02-22 14:05:40 +05:00
mariagrimaldi
acc9eaed8c feat: Changed username max_length to get it from setting and set default to 30 chars 2021-02-19 15:29:14 -04:00
Aarif
a1406cddf2 replaced unittest assertions pytest assertions (#26528) 2021-02-18 18:09:45 +05:00
Aarif
e6a0d35009 replaced unittest assertions pytest assertions (#26240) 2021-02-12 12:31:37 +05:00
Waheed Ahmed
38187de0f9 Authn MFE: Toggle for microfrontend redirect.
VAN-308
2021-02-04 18:58:58 +05:00
Zaman Afzal
fa98f0837e ENT-4034 Third party auth waffle switch annotation (#26304) 2021-02-04 13:21:39 +05:00
Jawayria
c958cf9920 Resolved quality failures 2021-02-03 13:43:56 +05:00
Jawayria
7be5a683aa Applied pylint-amnesty to third_party_auth 2021-02-03 13:37:05 +05:00
Kyle McCormick
b626a43fa1 fix: Rename some tasks to match new import paths (#26236)
Several tasks are explicitly named as (or like)
their old, deprecated import path.

The issue here is that django-user-tasks listens for task
invocations, and attempts to import the task based on its name.
If the task name is completely wrong, user-tasks will catch
the ImportError and move on.
If the task is a valid *deprecated* import, though, then
user-tasks will choke on the raised `DeprecatedEdxPlatformImportError`.

Thus, we must rename three tasks to their new full path:
1. entitlements.expire_old_enrollments
2. third_party_auth.fetch_saml_metadata
3. student.send_activation_email

The first two are run daily, and so are safe to be
renamed in place.

The third task must be renamed using an expand-contract
pattern; otherwise, we would drop hundreds of tasks
during the App vs. Worker out-of-sync version window
that happens at deployments.
This commit is the expand phase.
2021-02-02 10:26:08 -05:00
Zaman Afzal
712a6bcc0c ENT-4034 Added more detail in exception (#26299) 2021-02-02 13:54:20 +05:00
Zaman Afzal
b99a64c385 ENT-3798 Multiple_SSO_Accounts_Association_to_SAML_User (#26170) 2021-02-01 11:44:12 +05:00
adeelehsan
55d2a4f897 Logistration MFE renamed to authn
VAN-300
2021-01-29 11:37:54 +05:00
Muhammad Soban Javed
d26a59eb67 import task decorator from celery APP instance in CMS (#25953)
* import task decorator from celery APP instance instead of celery package in CMS

* replaced task decorator with shared_task in cms and common

* Fixed import of shared_task

* Fixed import
2021-01-27 18:35:11 +05:00
M. Zulqarnain
bfabc1ff41 BOM-2233 : Upgrade social-auth-core to > 4.0 (#26055)
* Upgrade social-auth-core

* Fixing a test.

Co-authored-by: Usama Sadiq <usama.sadiq@arbisoft.com>
Co-authored-by: Awais Qureshi <awais.qureshi@arbisoft.com>
2021-01-21 12:54:26 +05:00
Tim McCormack
129cd48266 Include security patch for pinning JWT signature algorithm in apple-id (#26059)
Extract from social-auth-core eed3007c4ccdbe959b1a3ac83102fe869d261948
2021-01-13 17:19:37 +00:00
Ahtisham Shahid
b2466c8c2b Error incase of disabled user social login
Updated status code and manage user func

update auth verification

Fixed auth condition

fixed test failuers

fixed style issues

fixed style issues

Created test for auth disabled use

Code refactor

Fixed form ain auth exchange

Fixed oauth apps with disabled user fail

applied quality fixes

Refactored tests

fixed quality issues

removed extra files

Fixed linter issues

Fixed linter issues
2021-01-06 20:37:01 +05:00
Awais Qureshi
1f616f6fcd Fixing make docs
Adding constraint on sphinx.
2021-01-05 22:42:01 +05:00
Zainab Amir
d5c9536f0a send in-active user details on auth failure (#25931) 2021-01-05 10:33:04 +05:00
Nizar Mahmoud
6e0b304f65 Sets default X-Frame-Options for login and registration forms to X_FRAME_OPTIONS environment setting 2020-12-12 04:03:26 +03:00
Robert Raposa
8eef18710d set code_owner for celery tasks
ARCHBOM-1260

Co-authored-by: Tim McCormack <tmccormack@edx.org>
2020-11-17 15:33:33 -05:00
Zainab Amir
2cf023bf27 VAN-92: Update TPA Context with platform name (#25580) 2020-11-13 17:15:53 +05:00
Kyle McCormick
73739189c5 Undo renames of common.djangoapps tasks (#25566)
When rolling out #25477, we dropped hundreds of email activation
tasks due to the renaming of student.send_activation_email
to common.djangoapps.student.send_activation_email,
and lost more when we rolled that PR back.
This happens because of blue/green deployment:
old workers are still online for a while after deploying,
so there is a period of time when the task names are mismatched.

To prevent this from happening again, this will make
it so the import changes don't change the names of
any of the Celery tasks.
2020-11-10 16:31:48 -05:00
Kyle McCormick
151bd13666 Use full names for common.djangoapps imports; warn when using old style (#25477)
* Generate common/djangoapps import shims for LMS
* Generate common/djangoapps import shims for Studio
* Stop appending project root to sys.path
* Stop appending common/djangoapps to sys.path
* Import from common.djangoapps.course_action_state instead of course_action_state
* Import from common.djangoapps.course_modes instead of course_modes
* Import from common.djangoapps.database_fixups instead of database_fixups
* Import from common.djangoapps.edxmako instead of edxmako
* Import from common.djangoapps.entitlements instead of entitlements
* Import from common.djangoapps.pipline_mako instead of pipeline_mako
* Import from common.djangoapps.static_replace instead of static_replace
* Import from common.djangoapps.student instead of student
* Import from common.djangoapps.terrain instead of terrain
* Import from common.djangoapps.third_party_auth instead of third_party_auth
* Import from common.djangoapps.track instead of track
* Import from common.djangoapps.util instead of util
* Import from common.djangoapps.xblock_django instead of xblock_django
* Add empty common/djangoapps/__init__.py to fix pytest collection
* Fix pylint formatting violations
* Exclude import_shims/ directory tree from linting
2020-11-10 07:02:01 -05:00
Talia
7100316f19 updating all the third_party_auth tests! 2020-09-30 16:35:36 -04:00
Tim McCormack
f29e418264 Revert "Revert "ARCHBOM-1494: Refer to custom attributes, not metrics, especially with edx-django-utils (#25010)" (#25025)" (#25055)
This reverts commit 986a448d9e.
2020-09-28 13:53:57 +00:00
Gábor Boros
210f9c6ace refactor(lms): Update migrations to use lms.yml in the help text 2020-09-19 11:57:24 +02:00
Gábor Boros
6ccd6c308d docs(lms and studio): Replace all .(lms|cms).(\w+|_)?\.json to .(lms|cms).(\w+|_)?\.yml 2020-09-18 10:44:14 +02:00
uzairr
c68155f76f Modify the api response
Update the api response so that it cannot contain the response
in the form of HTML which may prove vulnerable for MFE in future.

VAN-14
2020-09-10 12:39:09 +05:00
taliaedX
728d57aac2 Merge pull request #24888 from edx/trhodes/ENT-3350
SAML Configuration API endpoint (And Public Flag)
2020-09-08 10:42:45 -04:00
Talia
9cbd1907ea SAML Configuration API endpoint + Public flag 2020-09-04 14:58:05 -04:00
Régis Behmo
288ccc6705 Fix creation of LTIProviderConfig object in admin
When attempting to create a "Provider Configuration (LTI)" object in the
django admin, the following 500 error was being triggered:

    "Either an icon class or an icon image must be given (but not both)"

This was caused by the `clean()` method of the mother class
(OAuth2ProviderConfig) which checked whether at least the icon_class XOR
icon_list attribute was well defined. In the case of the
LTIProviderConfig objects it isn't, but that's ok because this object
is not meant to be displayed in the login form.

To resolve this issue, we modify the `clean()` method to ensure that at
most icon_class or icon_image is set. Alternatively, we could have set
`visible = False` and then dropped the `visible` column from the
database, but it was deemed too risky.
unused.

Close CRI-205.
2020-08-21 09:51:12 +02:00
Tim McCormack
b64c8c2283 ARCHBOM-1281: Vendor in AppleID backend to support Sign-In With Apple (#24623)
This version contains necessary fixes for validating the "audience"
component of the JWT, as seen in ARCHBOM-1281. (I believe we'll need to
pass both the App ID and the Service ID in an additional AUDIENCE "other
settings" key for this third-party-auth backend.)

Vendored from version 3.4.0 (9d93069564a60495e0ebd697b33e16fcff14195b)
social-core:
https://github.com/python-social-auth/social-core/blob/3.4.0/social_core/backends/apple.py

v3.4.0 is unreleased at this time (2020-07-28) and contains several
necessary bugfixes over 3.3.3 for AppleID, but also causes the
TestShibIntegrationTest.test_full_pipeline_succeeds_for_unlinking_testshib_account
test in common/djangoapps/third_party_auth/tests/specs/test_testshib.py
to break (somehow related to social-core's change 561642bf which makes
a bugfix to partial pipeline cleaning). ARCHBOM-1389 filed to address
this at our convenience.

Note: 3.4.0 was not released to PyPI due to a broken test, so we might
see a 3.4.1 when it's actually released:
https://github.com/python-social-auth/social-core/issues/485
2020-08-06 20:11:23 +00:00
Talia
2b956c54a0 BUG: fixes for saml provider config/data lookup 2020-07-30 10:05:19 -04:00
Talia
6d365ca1da fixes for front end saml work and to align with data requirements. 2020-07-24 14:45:34 -04:00