Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Core] ADAL to MSAL migration #19853

Merged
merged 93 commits into from
Oct 13, 2021
Merged
Show file tree
Hide file tree
Changes from 90 commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
a828156
{Identity} Identity new features (#14690)
jiasli Dec 31, 2020
0be9ca2
{Release} Release beta 2.17.10 (#16404)
jiasli Jan 5, 2021
7ef9f61
Merge branch 'release' into beta
jiasli Jan 5, 2021
3ec4c93
Merge branch 'release' into beta
jiasli Jan 20, 2021
d3336a4
{Identity} Add back get_msal_token (#16596)
fengzhou-msft Jan 21, 2021
caf88e8
{Identity} Beta 2.18.0.1 (#16612)
jiasli Jan 25, 2021
76f06ae
{Identity} Do not set logging_enable for Azure Identity credentials (…
jiasli Feb 4, 2021
301ba06
Merge branch 'release' into beta
jiasli Feb 9, 2021
6fffccf
Merge branch 'release' into beta
jiasli Feb 10, 2021
422049a
Merge branch 'release' into beta
jiasli Mar 1, 2021
aa456a2
{Beta} Revert scripts/ci/ (#17171)
jiasli Mar 5, 2021
58ab759
Merge branch 'release' into beta
jiasli Mar 26, 2021
5d03718
Remove extra msal and azure-identity
jiasli Mar 26, 2021
3823c76
[Identity] CAE b3 (#17612)
jiasli Apr 12, 2021
f08a679
Merge branch 'dev' into beta
jiasli Apr 12, 2021
30859db
Backport 17526
jiasli Apr 12, 2021
d600567
Use MSAL directly
jiasli Apr 12, 2021
e1d11be
sp
jiasli Apr 12, 2021
77f297d
scopes
jiasli Apr 12, 2021
a1e48db
export
jiasli Apr 12, 2021
a23cfdd
Manually merge 17147
jiasli Apr 14, 2021
e6eb3ee
refactor
jiasli Apr 14, 2021
03818b4
sp for vm ssh
jiasli Apr 14, 2021
0a105e0
refactor
jiasli Apr 14, 2021
9541ba8
sp token cache
jiasli Apr 14, 2021
3de1591
check_result
jiasli Apr 15, 2021
44233c1
browser warning
jiasli Apr 15, 2021
bdcd0b1
show scope
jiasli Apr 19, 2021
a53ff38
cae
jiasli Apr 19, 2021
0da67b0
conditional access scenario test
jiasli Apr 20, 2021
0f75063
cae test
jiasli Apr 21, 2021
94970bd
refactor handle_response_401_track1
jiasli Apr 21, 2021
294c2c1
tests
jiasli Apr 27, 2021
e178f52
epoch_expires_on
jiasli Apr 27, 2021
52a5fbd
Merge branch 'dev' into msal
jiasli May 6, 2021
2771efa
Merge branch 'dev' into msal
jiasli Jun 17, 2021
402d992
Bump MSAL
jiasli Jun 17, 2021
47fcb66
Merge branch 'dev' into msal
jiasli Jun 23, 2021
689219d
Merge branch 'dev' into msal
jiasli Jul 21, 2021
deeffff
bump dependencies
jiasli Jul 21, 2021
52a3e97
Merge branch 'dev' into msal
jiasli Aug 4, 2021
4a54235
Add back auth_landing_pages
jiasli Aug 4, 2021
9433080
Merge branch 'dev' into msal
jiasli Aug 17, 2021
957cfd8
azure-core==1.17.0
jiasli Aug 17, 2021
065ab45
Merge branch 'dev' into msal
jiasli Aug 17, 2021
a540fc0
Remove adal_cache
jiasli Aug 17, 2021
ebf7fdc
cross tenant
jiasli Aug 18, 2021
09121fc
Merge branch 'dev' into msal
jiasli Aug 18, 2021
74175a6
Add test
jiasli Aug 18, 2021
a96c537
Use msrestazure for managed identity
jiasli Aug 25, 2021
a52e2d2
Merge branch 'dev' into msal
jiasli Aug 25, 2021
419e072
parse
jiasli Aug 25, 2021
22b3b56
roll back cloud shell
jiasli Aug 25, 2021
88d1b72
load_persisted_token_cache
jiasli Aug 25, 2021
9badeba
Bump MSAL to 1.14.0
jiasli Aug 27, 2021
9c9cee4
Fix tests
jiasli Aug 30, 2021
7f2a021
refine
jiasli Sep 1, 2021
2b29f08
refine sp persistence
jiasli Sep 2, 2021
f02d0e2
Merge branch 'dev' into msal
jiasli Sep 6, 2021
0293a0b
Fix tests
jiasli Sep 6, 2021
9e3852e
Fix managed identity tests
jiasli Sep 7, 2021
67f6eb3
Fix UserCredentialMock
jiasli Sep 7, 2021
7eb11e4
Refine
jiasli Sep 7, 2021
727442b
style
jiasli Sep 9, 2021
3a39ff6
show warning for fallback_to_plaintext
jiasli Sep 9, 2021
84e5e97
Force plaintext
jiasli Sep 23, 2021
cf56dcf
Federated token and SNI
jiasli Sep 23, 2021
a294dd9
remove unused code
jiasli Sep 24, 2021
882e70c
fix auth tests
jiasli Sep 24, 2021
d972e69
turn off encryption by default
jiasli Sep 24, 2021
c075e7a
Fix webapp tests
jiasli Sep 24, 2021
2b72604
Merge branch 'dev' into msal
jiasli Sep 24, 2021
63ba90a
Fix linter
jiasli Sep 24, 2021
be7d7b4
azure-mgmt-core==1.2.1
jiasli Sep 24, 2021
f23a322
Disable http_cache
jiasli Sep 24, 2021
e3d2422
Add back expiresOn
jiasli Sep 28, 2021
66f5892
Merge branch 'dev' into msal
jiasli Sep 28, 2021
3a47f6b
linter
jiasli Sep 28, 2021
0c3bf9e
federated_token -> client_assertion
jiasli Sep 28, 2021
65718c4
Use MSAL names
jiasli Sep 28, 2021
4d61bbc
Merge branch 'dev' into msal
jiasli Sep 28, 2021
d7b4328
Fix tests for expiresOn
jiasli Sep 28, 2021
dca385b
Bump msal to 1.15.0
jiasli Oct 8, 2021
3a15e40
Add http cache
jiasli Oct 11, 2021
48238f3
Merge branch 'dev' into msal
jiasli Oct 11, 2021
2c97848
Refactor
jiasli Oct 11, 2021
f65940e
Revert unnecessary changes
jiasli Oct 11, 2021
86cb645
style
jiasli Oct 11, 2021
d699b61
Merge remote-tracking branch 'azure/dev' into msal
jiasli Oct 11, 2021
7938d41
Merge branch 'dev' into msal
jiasli Oct 12, 2021
7a56d46
Merge branch 'dev' into msal
jiasli Oct 12, 2021
ed110ad
revert
jiasli Oct 12, 2021
2fc24e8
rename cache files
jiasli Oct 13, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

/src/azure-cli-core/ @jiasli @evelyn-ys @jsntcy @kairu-ms @zhoxing-ms
/src/azure-cli-core/azure/cli/core/_profile.py @jiasli @evelyn-ys
/src/azure-cli-core/azure/cli/core/adal_authentication.py @jiasli @evelyn-ys
/src/azure-cli-core/azure/cli/core/auth/ @jiasli
/src/azure-cli-core/azure/cli/core/extension/ @jsntcy @kairu-ms
/src/azure-cli-core/azure/cli/core/msal_authentication.py @jiasli @evelyn-ys
/src/azure-cli-core/azure/cli/core/style.py @jiasli @evelyn-ys @zhoxing-ms
Expand Down
6 changes: 5 additions & 1 deletion scripts/ci/credscan/CredScanSuppressions.json
Original file line number Diff line number Diff line change
Expand Up @@ -412,9 +412,13 @@
"_justification": "[AppService] Test certs"
},
{
"file": "src\\azure-cli-core\\azure\\cli\\core\\tests\\sp_cert.pem",
"file": "src\\azure-cli-core\\azure\\cli\\core\\auth\\tests\\sp_cert.pem",
"_justification": "[Core] Test certs"
},
{
"placeholder": "test_secret",
"_justification": "[Core] Test secret"
},
{
"placeholder": "0abf356884d74b4aacbd7b1ebd3da0f7",
"_justification": "[AMS] hard code accessToken in test_ams_live_event_scenarios.py"
Expand Down
5 changes: 0 additions & 5 deletions src/azure-cli-core/azure/cli/core/_debug.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,3 @@ def change_ssl_cert_verification_track2():
logger.debug("Using CA bundle file at '%s'.", ca_bundle_file)
client_kwargs['connection_verify'] = ca_bundle_file
return client_kwargs


def allow_debug_adal_connection():
if should_disable_connection_verify():
os.environ[ADAL_PYTHON_SSL_NO_VERIFY] = '1'
1,312 changes: 360 additions & 952 deletions src/azure-cli-core/azure/cli/core/_profile.py

Large diffs are not rendered by default.

256 changes: 0 additions & 256 deletions src/azure-cli-core/azure/cli/core/adal_authentication.py

This file was deleted.

66 changes: 66 additions & 0 deletions src/azure-cli-core/azure/cli/core/auth/adal_authentication.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

import requests
from azure.core.credentials import AccessToken
from knack.log import get_logger
from msrestazure.azure_active_directory import MSIAuthentication

from .util import _normalize_scopes, scopes_to_resource

logger = get_logger(__name__)


class MSIAuthenticationWrapper(MSIAuthentication):
# This method is exposed for Azure Core. Add *scopes, **kwargs to fit azure.core requirement
def get_token(self, *scopes, **kwargs): # pylint:disable=unused-argument
logger.debug("MSIAuthenticationWrapper.get_token invoked by Track 2 SDK with scopes=%s", scopes)
resource = scopes_to_resource(_normalize_scopes(scopes))
if resource:
# If available, use resource provided by SDK
self.resource = resource
self.set_token()
# Managed Identity token entry sample:
# {
# "access_token": "eyJ0eXAiOiJKV...",
# "client_id": "da95e381-d7ab-4fdc-8047-2457909c723b",
# "expires_in": "86386",
# "expires_on": "1605238724",
# "ext_expires_in": "86399",
# "not_before": "1605152024",
# "resource": "https://management.azure.com/",
# "token_type": "Bearer"
# }
return AccessToken(self.token['access_token'], int(self.token['expires_on']))

def set_token(self):
import traceback
from azure.cli.core.azclierror import AzureConnectionError, AzureResponseError
try:
super(MSIAuthenticationWrapper, self).set_token()
except requests.exceptions.ConnectionError as err:
logger.debug('throw requests.exceptions.ConnectionError when doing MSIAuthentication: \n%s',
traceback.format_exc())
raise AzureConnectionError('Failed to connect to MSI. Please make sure MSI is configured correctly '
'and check the network connection.\nError detail: {}'.format(str(err)))
except requests.exceptions.HTTPError as err:
logger.debug('throw requests.exceptions.HTTPError when doing MSIAuthentication: \n%s',
traceback.format_exc())
try:
raise AzureResponseError('Failed to connect to MSI. Please make sure MSI is configured correctly.\n'
'Get Token request returned http error: {}, reason: {}'
.format(err.response.status, err.response.reason))
except AttributeError:
raise AzureResponseError('Failed to connect to MSI. Please make sure MSI is configured correctly.\n'
'Get Token request returned: {}'.format(err.response))
except TimeoutError as err:
logger.debug('throw TimeoutError when doing MSIAuthentication: \n%s',
traceback.format_exc())
raise AzureConnectionError('MSI endpoint is not responding. Please make sure MSI is configured correctly.\n'
'Error detail: {}'.format(str(err)))

def signed_session(self, session=None):
logger.debug("MSIAuthenticationWrapper.signed_session invoked by Track 1 SDK")
super().signed_session(session)
Loading