mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-10-09 21:14:22 +00:00
feat: adapt Microsoft365 provider to use PowerShell (#7331)
Co-authored-by: MrCloudSec <hello@mistercloudsec.com>
This commit is contained in:
committed by
Pepe Fagoaga
co-authored by
MrCloudSec
parent
1c3d5b5f69
commit
b0e3511351
@@ -429,8 +429,8 @@ kubernetes:
|
||||
"TLS_RSA_WITH_AES_128_GCM_SHA256",
|
||||
]
|
||||
|
||||
# Microsoft365 Configuration
|
||||
microsoft365:
|
||||
# M365 Configuration
|
||||
m365:
|
||||
# Conditional Access Policy
|
||||
# policy.session_controls.sign_in_frequency.frequency in hours
|
||||
sign_in_frequency: 4
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import sys
|
||||
import uuid
|
||||
from argparse import ArgumentTypeError
|
||||
|
||||
@@ -16,11 +17,13 @@ prowler_command = "prowler"
|
||||
|
||||
# capsys
|
||||
# https://docs.pytest.org/en/7.1.x/how-to/capture-stdout-stderr.html
|
||||
prowler_default_usage_error = "usage: prowler [-h] [--version] {aws,azure,gcp,kubernetes,microsoft365,nhn,dashboard} ..."
|
||||
prowler_default_usage_error = (
|
||||
"usage: prowler [-h] [--version] {aws,azure,gcp,kubernetes,m365,nhn,dashboard} ..."
|
||||
)
|
||||
|
||||
|
||||
def mock_get_available_providers():
|
||||
return ["aws", "azure", "gcp", "kubernetes", "microsoft365", "nhn"]
|
||||
return ["aws", "azure", "gcp", "kubernetes", "m365", "nhn"]
|
||||
|
||||
|
||||
@pytest.mark.arg_parser
|
||||
@@ -1367,3 +1370,13 @@ class Test_Parser:
|
||||
valid_role_names = ["prowler-role" "test@" "test=test+test,."]
|
||||
for role_name in valid_role_names:
|
||||
assert validate_role_session_name(role_name) == role_name
|
||||
|
||||
def test_microsoft365_alias_conversion(self):
|
||||
original_argv = sys.argv.copy()
|
||||
try:
|
||||
sys.argv = ["prowler", "microsoft365"]
|
||||
parser = ProwlerArgumentParser()
|
||||
args = parser.parse()
|
||||
assert args.provider == "m365"
|
||||
finally:
|
||||
sys.argv = original_argv
|
||||
|
||||
@@ -956,9 +956,9 @@ class TestFinding:
|
||||
"prowler.lib.outputs.finding.get_check_compliance",
|
||||
new=mock_get_check_compliance,
|
||||
)
|
||||
def test_transform_api_finding_microsoft365(self):
|
||||
def test_transform_api_finding_m365(self):
|
||||
provider = MagicMock()
|
||||
provider.type = "microsoft365"
|
||||
provider.type = "m365"
|
||||
provider.identity.identity_type = "ms_identity_type"
|
||||
provider.identity.identity_id = "ms_identity_id"
|
||||
provider.identity.tenant_id = "ms-tenant-id"
|
||||
@@ -970,7 +970,7 @@ class TestFinding:
|
||||
dummy_finding.status = "PASS"
|
||||
dummy_finding.status_extended = "M365 check extended"
|
||||
check_metadata = {
|
||||
"provider": "microsoft365",
|
||||
"provider": "m365",
|
||||
"checkid": "m365-check-001",
|
||||
"checktitle": "Test M365 Check",
|
||||
"checktype": [],
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from prowler.providers.m365.lib.powershell.m365_powershell import PowerShellSession
|
||||
|
||||
|
||||
class TestPowerShellSession:
|
||||
@patch("subprocess.Popen")
|
||||
def test_init(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
session = PowerShellSession()
|
||||
|
||||
mock_popen.assert_called_once()
|
||||
assert session.process == mock_process
|
||||
assert session.END == "<END>"
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_sanitize(self, _):
|
||||
session = PowerShellSession()
|
||||
|
||||
test_cases = [
|
||||
("test@example.com", "test@example.com"),
|
||||
("test@example.com!", "test@example.com"),
|
||||
("test@example.com#", "test@example.com"),
|
||||
("test@example.com$", "test@example.com"),
|
||||
("test@example.com%", "test@example.com"),
|
||||
("test@example.com^", "test@example.com"),
|
||||
("test@example.com&", "test@example.com"),
|
||||
("test@example.com*", "test@example.com"),
|
||||
("test@example.com(", "test@example.com"),
|
||||
("test@example.com)", "test@example.com"),
|
||||
("test@example.com-", "test@example.com-"),
|
||||
("test@example.com_", "test@example.com_"),
|
||||
("test@example.com+", "test@example.com+"),
|
||||
("test_;echo pwned;password", "test_echopwnedpassword"),
|
||||
]
|
||||
|
||||
for input_str, expected in test_cases:
|
||||
assert session.sanitize(input_str) == expected
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_remove_ansi(self, mock_popen):
|
||||
session = PowerShellSession()
|
||||
|
||||
test_cases = [
|
||||
("\x1b[32mSuccess\x1b[0m", "Success"),
|
||||
("\x1b[31mError\x1b[0m", "Error"),
|
||||
("\x1b[33mWarning\x1b[0m", "Warning"),
|
||||
("Normal text", "Normal text"),
|
||||
("\x1b[1mBold\x1b[0m", "Bold"),
|
||||
]
|
||||
|
||||
for input_str, expected in test_cases:
|
||||
assert session.remove_ansi(input_str) == expected
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_execute(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
session = PowerShellSession()
|
||||
command = "Get-Command"
|
||||
expected_output = '{"Name": "Get-Command"}'
|
||||
|
||||
with patch.object(session, "read_output", return_value=expected_output):
|
||||
result = session.execute(command)
|
||||
|
||||
mock_process.stdin.write.assert_any_call(f"{command}\n")
|
||||
mock_process.stdin.write.assert_any_call(f"Write-Output '{session.END}'\n")
|
||||
assert result == {"Name": "Get-Command"}
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_read_output(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
session = PowerShellSession()
|
||||
|
||||
# Test normal output
|
||||
with patch.object(session, "read_output", return_value="test@example.com"):
|
||||
assert session.read_output() == "test@example.com"
|
||||
|
||||
# Test timeout
|
||||
mock_process.stdout.readline.return_value = "test output\n"
|
||||
with patch.object(session, "remove_ansi", return_value="test output"):
|
||||
assert session.read_output(timeout=0.1, default="") == ""
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_json_parse_output(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
session = PowerShellSession()
|
||||
|
||||
test_cases = [
|
||||
('{"key": "value"}', {"key": "value"}),
|
||||
('[{"key": "value"}]', [{"key": "value"}]),
|
||||
(
|
||||
'[{"key": "value"},{"key": "value"}]',
|
||||
[{"key": "value"}, {"key": "value"}],
|
||||
),
|
||||
("[{}]", [{}]),
|
||||
("[{},{}]", [{}, {}]),
|
||||
("not json", {}),
|
||||
("", {}),
|
||||
]
|
||||
|
||||
for input_str, expected in test_cases:
|
||||
result = session.json_parse_output(input_str)
|
||||
assert result == expected
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_close(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
session = PowerShellSession()
|
||||
|
||||
session.close()
|
||||
|
||||
mock_process.stdin.flush.assert_called_once()
|
||||
mock_process.terminate.assert_called_once()
|
||||
mock_process = None
|
||||
+8
-10
@@ -1,17 +1,15 @@
|
||||
import yaml
|
||||
from mock import MagicMock
|
||||
|
||||
from prowler.providers.microsoft365.lib.mutelist.mutelist import Microsoft365Mutelist
|
||||
from prowler.providers.m365.lib.mutelist.mutelist import M365Mutelist
|
||||
from tests.lib.outputs.fixtures.fixtures import generate_finding_output
|
||||
|
||||
MUTELIST_FIXTURE_PATH = (
|
||||
"tests/providers/microsoft365/lib/mutelist/fixtures/microsoft365_mutelist.yaml"
|
||||
)
|
||||
MUTELIST_FIXTURE_PATH = "tests/providers/m365/lib/mutelist/fixtures/m365_mutelist.yaml"
|
||||
|
||||
|
||||
class TestMicrosoft365Mutelist:
|
||||
class TestM365Mutelist:
|
||||
def test_get_mutelist_file_from_local_file(self):
|
||||
mutelist = Microsoft365Mutelist(mutelist_path=MUTELIST_FIXTURE_PATH)
|
||||
mutelist = M365Mutelist(mutelist_path=MUTELIST_FIXTURE_PATH)
|
||||
|
||||
with open(MUTELIST_FIXTURE_PATH) as f:
|
||||
mutelist_fixture = yaml.safe_load(f)["Mutelist"]
|
||||
@@ -21,7 +19,7 @@ class TestMicrosoft365Mutelist:
|
||||
|
||||
def test_get_mutelist_file_from_local_file_non_existent(self):
|
||||
mutelist_path = "tests/lib/mutelist/fixtures/not_present"
|
||||
mutelist = Microsoft365Mutelist(mutelist_path=mutelist_path)
|
||||
mutelist = M365Mutelist(mutelist_path=mutelist_path)
|
||||
|
||||
assert mutelist.mutelist == {}
|
||||
assert mutelist.mutelist_file_path == mutelist_path
|
||||
@@ -34,7 +32,7 @@ class TestMicrosoft365Mutelist:
|
||||
mutelist_fixture["Accounts1"] = mutelist_fixture["Accounts"]
|
||||
del mutelist_fixture["Accounts"]
|
||||
|
||||
mutelist = Microsoft365Mutelist(mutelist_content=mutelist_fixture)
|
||||
mutelist = M365Mutelist(mutelist_content=mutelist_fixture)
|
||||
|
||||
assert not mutelist.validate_mutelist()
|
||||
assert mutelist.mutelist == {}
|
||||
@@ -55,7 +53,7 @@ class TestMicrosoft365Mutelist:
|
||||
}
|
||||
}
|
||||
|
||||
mutelist = Microsoft365Mutelist(mutelist_content=mutelist_content)
|
||||
mutelist = M365Mutelist(mutelist_content=mutelist_content)
|
||||
|
||||
finding = MagicMock
|
||||
finding.tenant_id = "subscription_1"
|
||||
@@ -84,7 +82,7 @@ class TestMicrosoft365Mutelist:
|
||||
}
|
||||
}
|
||||
|
||||
mutelist = Microsoft365Mutelist(mutelist_content=mutelist_content)
|
||||
mutelist = M365Mutelist(mutelist_content=mutelist_content)
|
||||
|
||||
finding_1 = generate_finding_output(
|
||||
check_id="check_test",
|
||||
@@ -0,0 +1,210 @@
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from prowler.providers.m365.lib.powershell.m365_powershell import M365PowerShell
|
||||
from prowler.providers.m365.models import M365Credentials
|
||||
|
||||
|
||||
class Testm365PowerShell:
|
||||
@patch("subprocess.Popen")
|
||||
def test_init(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
credentials = M365Credentials(user="test@example.com", passwd="test_password")
|
||||
|
||||
with patch.object(M365PowerShell, "init_credential") as mock_init_credential:
|
||||
session = M365PowerShell(credentials)
|
||||
|
||||
mock_popen.assert_called_once()
|
||||
mock_init_credential.assert_called_once_with(credentials)
|
||||
assert session.process == mock_process
|
||||
assert session.END == "<END>"
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_sanitize(self, _):
|
||||
credentials = M365Credentials(user="test@example.com", passwd="test_password")
|
||||
session = M365PowerShell(credentials)
|
||||
|
||||
test_cases = [
|
||||
("test@example.com", "test@example.com"),
|
||||
("test@example.com!", "test@example.com"),
|
||||
("test@example.com#", "test@example.com"),
|
||||
("test@example.com$", "test@example.com"),
|
||||
("test@example.com%", "test@example.com"),
|
||||
("test@example.com^", "test@example.com"),
|
||||
("test@example.com&", "test@example.com"),
|
||||
("test@example.com*", "test@example.com"),
|
||||
("test@example.com(", "test@example.com"),
|
||||
("test@example.com)", "test@example.com"),
|
||||
("test@example.com-", "test@example.com-"),
|
||||
("test@example.com_", "test@example.com_"),
|
||||
("test@example.com+", "test@example.com+"),
|
||||
("test_;echo pwned;password", "test_echopwnedpassword"),
|
||||
]
|
||||
|
||||
for input_str, expected in test_cases:
|
||||
assert session.sanitize(input_str) == expected
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_init_credential(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
credentials = M365Credentials(
|
||||
user="test@example.com",
|
||||
passwd="test_password",
|
||||
client_id="test_client_id",
|
||||
client_secret="test_client_secret",
|
||||
tenant_id="test_tenant_id",
|
||||
)
|
||||
session = M365PowerShell(credentials)
|
||||
|
||||
session.execute = MagicMock()
|
||||
|
||||
session.init_credential(credentials)
|
||||
|
||||
session.execute.assert_any_call(f'$user = "{credentials.user}"')
|
||||
session.execute.assert_any_call(
|
||||
f'$secureString = "{credentials.passwd}" | ConvertTo-SecureString'
|
||||
)
|
||||
session.execute.assert_any_call(
|
||||
"$credential = New-Object System.Management.Automation.PSCredential ($user, $secureString)"
|
||||
)
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
@patch("msal.ConfidentialClientApplication")
|
||||
def test_test_credentials(self, mock_msal, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
mock_msal_instance = MagicMock()
|
||||
mock_msal.return_value = mock_msal_instance
|
||||
mock_msal_instance.acquire_token_by_username_password.return_value = {
|
||||
"access_token": "test_token"
|
||||
}
|
||||
|
||||
credentials = M365Credentials(
|
||||
user="test@example.com",
|
||||
passwd="test_password",
|
||||
client_id="test_client_id",
|
||||
client_secret="test_client_secret",
|
||||
tenant_id="test_tenant_id",
|
||||
)
|
||||
session = M365PowerShell(credentials)
|
||||
|
||||
session.execute = MagicMock()
|
||||
session.process.stdin.write = MagicMock()
|
||||
session.read_output = MagicMock(return_value="decrypted_password")
|
||||
|
||||
assert session.test_credentials(credentials) is True
|
||||
|
||||
session.execute.assert_any_call(
|
||||
f'$securePassword = "{credentials.passwd}" | ConvertTo-SecureString\n'
|
||||
)
|
||||
session.execute.assert_any_call(
|
||||
f'$credential = New-Object System.Management.Automation.PSCredential("{credentials.user}", $securePassword)\n'
|
||||
)
|
||||
session.process.stdin.write.assert_any_call(
|
||||
'Write-Output "$($credential.GetNetworkCredential().Password)"\n'
|
||||
)
|
||||
session.process.stdin.write.assert_any_call(f"Write-Output '{session.END}'\n")
|
||||
|
||||
mock_msal.assert_called_once_with(
|
||||
client_id="test_client_id",
|
||||
client_credential="test_client_secret",
|
||||
authority="https://login.microsoftonline.com/test_tenant_id",
|
||||
)
|
||||
mock_msal_instance.acquire_token_by_username_password.assert_called_once_with(
|
||||
username="test@example.com",
|
||||
password="decrypted_password",
|
||||
scopes=["https://graph.microsoft.com/.default"],
|
||||
)
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_remove_ansi(self, mock_popen):
|
||||
credentials = M365Credentials(user="test@example.com", passwd="test_password")
|
||||
session = M365PowerShell(credentials)
|
||||
|
||||
test_cases = [
|
||||
("\x1b[32mSuccess\x1b[0m", "Success"),
|
||||
("\x1b[31mError\x1b[0m", "Error"),
|
||||
("\x1b[33mWarning\x1b[0m", "Warning"),
|
||||
("Normal text", "Normal text"),
|
||||
("\x1b[1mBold\x1b[0m", "Bold"),
|
||||
]
|
||||
|
||||
for input_str, expected in test_cases:
|
||||
assert session.remove_ansi(input_str) == expected
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_execute(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
credentials = M365Credentials(user="test@example.com", passwd="test_password")
|
||||
session = M365PowerShell(credentials)
|
||||
command = "Get-Command"
|
||||
expected_output = '{"Name": "Get-Command"}'
|
||||
|
||||
with patch.object(session, "read_output", return_value=expected_output):
|
||||
result = session.execute(command)
|
||||
|
||||
mock_process.stdin.write.assert_any_call(f"{command}\n")
|
||||
mock_process.stdin.write.assert_any_call(f"Write-Output '{session.END}'\n")
|
||||
assert result == {"Name": "Get-Command"}
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_read_output(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
credentials = M365Credentials(user="test@example.com", passwd="test_password")
|
||||
session = M365PowerShell(credentials)
|
||||
|
||||
# Test normal output
|
||||
with patch.object(session, "read_output", return_value="test@example.com"):
|
||||
assert session.read_output() == "test@example.com"
|
||||
|
||||
# Test timeout
|
||||
mock_process.stdout.readline.return_value = "test output\n"
|
||||
with patch.object(session, "remove_ansi", return_value="test output"):
|
||||
assert session.read_output(timeout=0.1, default="") == ""
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_json_parse_output(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
credentials = M365Credentials(user="test@example.com", passwd="test_password")
|
||||
session = M365PowerShell(credentials)
|
||||
|
||||
test_cases = [
|
||||
('{"key": "value"}', {"key": "value"}),
|
||||
('[{"key": "value"}]', [{"key": "value"}]),
|
||||
(
|
||||
'[{"key": "value"},{"key": "value"}]',
|
||||
[{"key": "value"}, {"key": "value"}],
|
||||
),
|
||||
("[{}]", [{}]),
|
||||
("[{},{}]", [{}, {}]),
|
||||
("not json", {}),
|
||||
("", {}),
|
||||
]
|
||||
|
||||
for input_str, expected in test_cases:
|
||||
result = session.json_parse_output(input_str)
|
||||
assert result == expected
|
||||
session.close()
|
||||
|
||||
@patch("subprocess.Popen")
|
||||
def test_close(self, mock_popen):
|
||||
mock_process = MagicMock()
|
||||
mock_popen.return_value = mock_process
|
||||
credentials = M365Credentials(user="test@example.com", passwd="test_password")
|
||||
session = M365PowerShell(credentials)
|
||||
|
||||
session.close()
|
||||
|
||||
mock_process.stdin.flush.assert_called_once()
|
||||
mock_process.terminate.assert_called_once()
|
||||
+8
-8
@@ -1,6 +1,6 @@
|
||||
from azure.identity import AzureAuthorityHosts
|
||||
|
||||
from prowler.providers.microsoft365.lib.regions.regions import (
|
||||
from prowler.providers.m365.lib.regions.regions import (
|
||||
MICROSOFT365_CHINA_CLOUD,
|
||||
MICROSOFT365_GENERIC_CLOUD,
|
||||
MICROSOFT365_US_GOV_CLOUD,
|
||||
@@ -8,25 +8,25 @@ from prowler.providers.microsoft365.lib.regions.regions import (
|
||||
)
|
||||
|
||||
|
||||
class Test_microsoft365_regions:
|
||||
class Test_m365_regions:
|
||||
def test_get_regions_config(self):
|
||||
allowed_regions = [
|
||||
"Microsoft365Global",
|
||||
"Microsoft365China",
|
||||
"Microsoft365USGovernment",
|
||||
"M365Global",
|
||||
"M365China",
|
||||
"M365USGovernment",
|
||||
]
|
||||
expected_output = {
|
||||
"Microsoft365Global": {
|
||||
"M365Global": {
|
||||
"authority": None,
|
||||
"base_url": MICROSOFT365_GENERIC_CLOUD,
|
||||
"credential_scopes": [MICROSOFT365_GENERIC_CLOUD + "/.default"],
|
||||
},
|
||||
"Microsoft365China": {
|
||||
"M365China": {
|
||||
"authority": AzureAuthorityHosts.AZURE_CHINA,
|
||||
"base_url": MICROSOFT365_CHINA_CLOUD,
|
||||
"credential_scopes": [MICROSOFT365_CHINA_CLOUD + "/.default"],
|
||||
},
|
||||
"Microsoft365USGovernment": {
|
||||
"M365USGovernment": {
|
||||
"authority": AzureAuthorityHosts.AZURE_GOVERNMENT,
|
||||
"base_url": MICROSOFT365_US_GOV_CLOUD,
|
||||
"credential_scopes": [MICROSOFT365_US_GOV_CLOUD + "/.default"],
|
||||
+16
-11
@@ -1,10 +1,11 @@
|
||||
from azure.identity import DefaultAzureCredential
|
||||
from mock import MagicMock
|
||||
|
||||
from prowler.providers.microsoft365.microsoft365_provider import Microsoft365Provider
|
||||
from prowler.providers.microsoft365.models import (
|
||||
Microsoft365IdentityInfo,
|
||||
Microsoft365RegionConfig,
|
||||
from prowler.providers.m365.m365_provider import M365Provider
|
||||
from prowler.providers.m365.models import (
|
||||
M365Credentials,
|
||||
M365IdentityInfo,
|
||||
M365RegionConfig,
|
||||
)
|
||||
|
||||
# Azure Identity
|
||||
@@ -18,20 +19,24 @@ LOCATION = "global"
|
||||
|
||||
|
||||
# Mocked Azure Audit Info
|
||||
def set_mocked_microsoft365_provider(
|
||||
credentials: DefaultAzureCredential = DefaultAzureCredential(),
|
||||
identity: Microsoft365IdentityInfo = Microsoft365IdentityInfo(
|
||||
def set_mocked_m365_provider(
|
||||
session_credentials: DefaultAzureCredential = DefaultAzureCredential(),
|
||||
credentials: M365Credentials = M365Credentials(
|
||||
user="user@email.com", passwd="111111aa111111aaa1111"
|
||||
),
|
||||
identity: M365IdentityInfo = M365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type=IDENTITY_TYPE,
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
),
|
||||
audit_config: dict = None,
|
||||
azure_region_config: Microsoft365RegionConfig = Microsoft365RegionConfig(),
|
||||
) -> Microsoft365Provider:
|
||||
azure_region_config: M365RegionConfig = M365RegionConfig(),
|
||||
) -> M365Provider:
|
||||
provider = MagicMock()
|
||||
provider.type = "microsoft365"
|
||||
provider.session.credentials = credentials
|
||||
provider.type = "m365"
|
||||
provider.session.credentials = session_credentials
|
||||
provider.credentials = credentials
|
||||
provider.identity = identity
|
||||
provider.audit_config = audit_config
|
||||
provider.region_config = azure_region_config
|
||||
@@ -0,0 +1,452 @@
|
||||
from unittest.mock import patch
|
||||
from uuid import uuid4
|
||||
|
||||
import pytest
|
||||
from azure.core.credentials import AccessToken
|
||||
from azure.identity import (
|
||||
ClientSecretCredential,
|
||||
DefaultAzureCredential,
|
||||
InteractiveBrowserCredential,
|
||||
)
|
||||
from mock import MagicMock
|
||||
|
||||
from prowler.config.config import (
|
||||
default_config_file_path,
|
||||
default_fixer_config_file_path,
|
||||
load_and_validate_config_file,
|
||||
)
|
||||
from prowler.providers.common.models import Connection
|
||||
from prowler.providers.m365.exceptions.exceptions import (
|
||||
M365HTTPResponseError,
|
||||
M365MissingEnvironmentUserCredentialsError,
|
||||
M365NoAuthenticationMethodError,
|
||||
)
|
||||
from prowler.providers.m365.m365_provider import M365Provider
|
||||
from prowler.providers.m365.models import (
|
||||
M365Credentials,
|
||||
M365IdentityInfo,
|
||||
M365RegionConfig,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import (
|
||||
CLIENT_ID,
|
||||
CLIENT_SECRET,
|
||||
DOMAIN,
|
||||
IDENTITY_ID,
|
||||
IDENTITY_TYPE,
|
||||
LOCATION,
|
||||
TENANT_ID,
|
||||
)
|
||||
|
||||
|
||||
class TestM365Provider:
|
||||
def test_m365_provider(self):
|
||||
tenant_id = None
|
||||
client_id = None
|
||||
client_secret = None
|
||||
|
||||
fixer_config = load_and_validate_config_file(
|
||||
"m365", default_fixer_config_file_path
|
||||
)
|
||||
azure_region = "M365Global"
|
||||
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_session",
|
||||
return_value=ClientSecretCredential(
|
||||
client_id=CLIENT_ID,
|
||||
tenant_id=TENANT_ID,
|
||||
client_secret=CLIENT_SECRET,
|
||||
),
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_identity",
|
||||
return_value=M365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type=IDENTITY_TYPE,
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
),
|
||||
),
|
||||
):
|
||||
m365_provider = M365Provider(
|
||||
sp_env_auth=True,
|
||||
az_cli_auth=False,
|
||||
browser_auth=False,
|
||||
env_auth=False,
|
||||
tenant_id=tenant_id,
|
||||
client_id=client_id,
|
||||
client_secret=client_secret,
|
||||
region=azure_region,
|
||||
config_path=default_config_file_path,
|
||||
fixer_config=fixer_config,
|
||||
)
|
||||
|
||||
assert m365_provider.region_config == M365RegionConfig(
|
||||
name="M365Global",
|
||||
authority=None,
|
||||
base_url="https://graph.microsoft.com",
|
||||
credential_scopes=["https://graph.microsoft.com/.default"],
|
||||
)
|
||||
assert m365_provider.identity == M365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type=IDENTITY_TYPE,
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
)
|
||||
|
||||
def test_m365_provider_env_auth(self):
|
||||
tenant_id = None
|
||||
client_id = None
|
||||
client_secret = None
|
||||
|
||||
fixer_config = load_and_validate_config_file(
|
||||
"m365", default_fixer_config_file_path
|
||||
)
|
||||
azure_region = "M365Global"
|
||||
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_session",
|
||||
return_value=ClientSecretCredential(
|
||||
client_id=CLIENT_ID,
|
||||
tenant_id=TENANT_ID,
|
||||
client_secret=CLIENT_SECRET,
|
||||
),
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_identity",
|
||||
return_value=M365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type=IDENTITY_TYPE,
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
),
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_powershell",
|
||||
return_value=M365Credentials(
|
||||
user="test@test.com",
|
||||
passwd="password",
|
||||
),
|
||||
),
|
||||
):
|
||||
m365_provider = M365Provider(
|
||||
sp_env_auth=False,
|
||||
az_cli_auth=False,
|
||||
browser_auth=False,
|
||||
env_auth=True,
|
||||
tenant_id=tenant_id,
|
||||
client_id=client_id,
|
||||
client_secret=client_secret,
|
||||
region=azure_region,
|
||||
config_path=default_config_file_path,
|
||||
fixer_config=fixer_config,
|
||||
)
|
||||
|
||||
assert m365_provider.region_config == M365RegionConfig(
|
||||
name="M365Global",
|
||||
authority=None,
|
||||
base_url="https://graph.microsoft.com",
|
||||
credential_scopes=["https://graph.microsoft.com/.default"],
|
||||
)
|
||||
assert m365_provider.identity == M365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type=IDENTITY_TYPE,
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
)
|
||||
|
||||
def test_m365_provider_cli_auth(self):
|
||||
"""Test M365 Provider initialization with CLI authentication"""
|
||||
azure_region = "M365Global"
|
||||
fixer_config = load_and_validate_config_file(
|
||||
"m365", default_fixer_config_file_path
|
||||
)
|
||||
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_session",
|
||||
return_value=DefaultAzureCredential(
|
||||
exclude_environment_credential=True,
|
||||
exclude_cli_credential=False,
|
||||
exclude_managed_identity_credential=True,
|
||||
exclude_visual_studio_code_credential=True,
|
||||
exclude_shared_token_cache_credential=True,
|
||||
exclude_powershell_credential=True,
|
||||
exclude_browser_credential=True,
|
||||
),
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_identity",
|
||||
return_value=M365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type="User",
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
),
|
||||
),
|
||||
):
|
||||
m365_provider = M365Provider(
|
||||
sp_env_auth=False,
|
||||
az_cli_auth=True,
|
||||
browser_auth=False,
|
||||
env_auth=False,
|
||||
region=azure_region,
|
||||
config_path=default_config_file_path,
|
||||
fixer_config=fixer_config,
|
||||
)
|
||||
|
||||
assert m365_provider.region_config == M365RegionConfig(
|
||||
name="M365Global",
|
||||
authority=None,
|
||||
base_url="https://graph.microsoft.com",
|
||||
credential_scopes=["https://graph.microsoft.com/.default"],
|
||||
)
|
||||
assert m365_provider.identity == M365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type="User",
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
)
|
||||
assert isinstance(m365_provider.session, DefaultAzureCredential)
|
||||
|
||||
def test_m365_provider_browser_auth(self):
|
||||
"""Test M365 Provider initialization with Browser authentication"""
|
||||
azure_region = "M365Global"
|
||||
fixer_config = load_and_validate_config_file(
|
||||
"m365", default_fixer_config_file_path
|
||||
)
|
||||
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_session",
|
||||
return_value=InteractiveBrowserCredential(
|
||||
tenant_id=TENANT_ID,
|
||||
),
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_identity",
|
||||
return_value=M365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type="User",
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
),
|
||||
),
|
||||
):
|
||||
m365_provider = M365Provider(
|
||||
sp_env_auth=False,
|
||||
az_cli_auth=False,
|
||||
browser_auth=True,
|
||||
env_auth=False,
|
||||
tenant_id=TENANT_ID,
|
||||
region=azure_region,
|
||||
config_path=default_config_file_path,
|
||||
fixer_config=fixer_config,
|
||||
)
|
||||
|
||||
assert m365_provider.region_config == M365RegionConfig(
|
||||
name="M365Global",
|
||||
authority=None,
|
||||
base_url="https://graph.microsoft.com",
|
||||
credential_scopes=["https://graph.microsoft.com/.default"],
|
||||
)
|
||||
assert m365_provider.identity == M365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type="User",
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
)
|
||||
assert isinstance(m365_provider.session, InteractiveBrowserCredential)
|
||||
|
||||
def test_test_connection_browser_auth(self):
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.DefaultAzureCredential"
|
||||
) as mock_default_credential,
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_session"
|
||||
) as mock_setup_session,
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.GraphServiceClient"
|
||||
) as mock_graph_client,
|
||||
):
|
||||
# Mock the return value of DefaultAzureCredential
|
||||
mock_credentials = MagicMock()
|
||||
mock_credentials.get_token.return_value = AccessToken(
|
||||
token="fake_token", expires_on=9999999999
|
||||
)
|
||||
mock_default_credential.return_value = mock_credentials
|
||||
|
||||
# Mock setup_session to return a mocked session object
|
||||
mock_session = MagicMock()
|
||||
mock_setup_session.return_value = mock_session
|
||||
|
||||
# Mock GraphServiceClient to avoid real API calls
|
||||
mock_client = MagicMock()
|
||||
mock_graph_client.return_value = mock_client
|
||||
|
||||
test_connection = M365Provider.test_connection(
|
||||
browser_auth=True,
|
||||
tenant_id=str(uuid4()),
|
||||
region="M365Global",
|
||||
raise_on_exception=False,
|
||||
)
|
||||
|
||||
assert isinstance(test_connection, Connection)
|
||||
assert test_connection.is_connected
|
||||
assert test_connection.error is None
|
||||
|
||||
def test_test_connection_tenant_id_client_id_client_secret(self):
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_session"
|
||||
) as mock_setup_session,
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.validate_static_credentials"
|
||||
) as mock_validate_static_credentials,
|
||||
):
|
||||
# Mock setup_session to return a mocked session object
|
||||
mock_session = MagicMock()
|
||||
mock_setup_session.return_value = mock_session
|
||||
|
||||
# Mock ValidateStaticCredentials to avoid real API calls
|
||||
mock_validate_static_credentials.return_value = None
|
||||
|
||||
test_connection = M365Provider.test_connection(
|
||||
tenant_id=str(uuid4()),
|
||||
region="M365Global",
|
||||
raise_on_exception=False,
|
||||
client_id=str(uuid4()),
|
||||
client_secret=str(uuid4()),
|
||||
)
|
||||
|
||||
assert isinstance(test_connection, Connection)
|
||||
assert test_connection.is_connected
|
||||
assert test_connection.error is None
|
||||
|
||||
def test_test_connection_tenant_id_client_id_client_secret_user_encrypted_password(
|
||||
self,
|
||||
):
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_session"
|
||||
) as mock_setup_session,
|
||||
patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.validate_static_credentials"
|
||||
) as mock_validate_static_credentials,
|
||||
):
|
||||
# Mock setup_session to return a mocked session object
|
||||
mock_session = MagicMock()
|
||||
mock_setup_session.return_value = mock_session
|
||||
|
||||
# Mock ValidateStaticCredentials to avoid real API calls
|
||||
mock_validate_static_credentials.return_value = None
|
||||
|
||||
test_connection = M365Provider.test_connection(
|
||||
tenant_id=str(uuid4()),
|
||||
region="M365Global",
|
||||
raise_on_exception=False,
|
||||
client_id=str(uuid4()),
|
||||
client_secret=str(uuid4()),
|
||||
user="user@user.com",
|
||||
encrypted_password="AAAA1111",
|
||||
)
|
||||
|
||||
assert isinstance(test_connection, Connection)
|
||||
assert test_connection.is_connected
|
||||
assert test_connection.error is None
|
||||
|
||||
def test_test_connection_with_httpresponseerror(self):
|
||||
with patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_session"
|
||||
) as mock_setup_session:
|
||||
mock_setup_session.side_effect = M365HTTPResponseError(
|
||||
file="test_file", original_exception="Simulated HttpResponseError"
|
||||
)
|
||||
|
||||
with pytest.raises(M365HTTPResponseError) as exception:
|
||||
M365Provider.test_connection(
|
||||
az_cli_auth=True,
|
||||
raise_on_exception=True,
|
||||
)
|
||||
|
||||
assert exception.type == M365HTTPResponseError
|
||||
assert (
|
||||
exception.value.args[0]
|
||||
== "[6003] Error in HTTP response from Microsoft 365 - Simulated HttpResponseError"
|
||||
)
|
||||
|
||||
def test_test_connection_with_exception(self):
|
||||
with patch(
|
||||
"prowler.providers.m365.m365_provider.M365Provider.setup_session"
|
||||
) as mock_setup_session:
|
||||
mock_setup_session.side_effect = Exception("Simulated Exception")
|
||||
|
||||
with pytest.raises(Exception) as exception:
|
||||
M365Provider.test_connection(
|
||||
sp_env_auth=True,
|
||||
raise_on_exception=True,
|
||||
)
|
||||
|
||||
assert exception.type is Exception
|
||||
assert exception.value.args[0] == "Simulated Exception"
|
||||
|
||||
def test_test_connection_without_any_method(self):
|
||||
with pytest.raises(M365NoAuthenticationMethodError) as exception:
|
||||
M365Provider.test_connection()
|
||||
|
||||
assert exception.type == M365NoAuthenticationMethodError
|
||||
assert (
|
||||
"M365 provider requires at least one authentication method set: [--env-auth | --az-cli-auth | --sp-env-auth | --browser-auth]"
|
||||
in exception.value.args[0]
|
||||
)
|
||||
|
||||
def test_setup_powershell_valid_credentials(self):
|
||||
credentials_dict = {
|
||||
"user": "test@example.com",
|
||||
"encrypted_password": "test_password",
|
||||
"client_id": "test_client_id",
|
||||
"tenant_id": "test_tenant_id",
|
||||
"client_secret": "test_client_secret",
|
||||
}
|
||||
|
||||
with patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.test_credentials",
|
||||
return_value=True,
|
||||
):
|
||||
result = M365Provider.setup_powershell(
|
||||
env_auth=False, m365_credentials=credentials_dict
|
||||
)
|
||||
|
||||
assert result.user == credentials_dict["user"]
|
||||
assert result.passwd == credentials_dict["encrypted_password"]
|
||||
|
||||
def test_setup_powershell_invalid_env_credentials(self):
|
||||
credentials = None
|
||||
|
||||
with patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell"
|
||||
) as mock_powershell:
|
||||
mock_session = MagicMock()
|
||||
mock_session.test_credentials.return_value = False
|
||||
mock_powershell.return_value = mock_session
|
||||
|
||||
with pytest.raises(M365MissingEnvironmentUserCredentialsError) as exc_info:
|
||||
M365Provider.setup_powershell(
|
||||
env_auth=True, m365_credentials=credentials
|
||||
)
|
||||
|
||||
assert (
|
||||
"Missing M365_USER or M365_ENCRYPTED_PASSWORD environment variables required for credentials authentication"
|
||||
in str(exc_info.value)
|
||||
)
|
||||
mock_session.test_credentials.assert_not_called()
|
||||
+12
-15
@@ -1,10 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_admincenter_groups_not_public_visibility:
|
||||
@@ -16,14 +13,14 @@ class Test_admincenter_groups_not_public_visibility:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility import (
|
||||
admincenter_groups_not_public_visibility,
|
||||
)
|
||||
|
||||
@@ -41,17 +38,17 @@ class Test_admincenter_groups_not_public_visibility:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility import (
|
||||
admincenter_groups_not_public_visibility,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
Group,
|
||||
)
|
||||
|
||||
@@ -79,17 +76,17 @@ class Test_admincenter_groups_not_public_visibility:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility import (
|
||||
admincenter_groups_not_public_visibility,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
Group,
|
||||
)
|
||||
|
||||
+10
-15
@@ -1,16 +1,13 @@
|
||||
from unittest.mock import patch
|
||||
|
||||
from prowler.providers.microsoft365.models import Microsoft365IdentityInfo
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.models import M365IdentityInfo
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
AdminCenter,
|
||||
DirectoryRole,
|
||||
Group,
|
||||
User,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
async def mock_admincenter_get_users(_):
|
||||
@@ -40,41 +37,39 @@ async def mock_admincenter_get_groups(_):
|
||||
|
||||
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_service.AdminCenter._get_users",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_service.AdminCenter._get_users",
|
||||
new=mock_admincenter_get_users,
|
||||
)
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_service.AdminCenter._get_directory_roles",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_service.AdminCenter._get_directory_roles",
|
||||
new=mock_admincenter_get_directory_roles,
|
||||
)
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_service.AdminCenter._get_groups",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_service.AdminCenter._get_groups",
|
||||
new=mock_admincenter_get_groups,
|
||||
)
|
||||
class Test_AdminCenter_Service:
|
||||
def test_get_client(self):
|
||||
admincenter_client = AdminCenter(
|
||||
set_mocked_microsoft365_provider(
|
||||
identity=Microsoft365IdentityInfo(tenant_domain=DOMAIN)
|
||||
)
|
||||
set_mocked_m365_provider(identity=M365IdentityInfo(tenant_domain=DOMAIN))
|
||||
)
|
||||
assert admincenter_client.client.__class__.__name__ == "GraphServiceClient"
|
||||
|
||||
def test_get_users(self):
|
||||
admincenter_client = AdminCenter(set_mocked_microsoft365_provider())
|
||||
admincenter_client = AdminCenter(set_mocked_m365_provider())
|
||||
assert len(admincenter_client.users) == 1
|
||||
assert admincenter_client.users["user-1@tenant1.es"].id == "id-1"
|
||||
assert admincenter_client.users["user-1@tenant1.es"].name == "User 1"
|
||||
|
||||
def test_get_group_settings(self):
|
||||
admincenter_client = AdminCenter(set_mocked_microsoft365_provider())
|
||||
admincenter_client = AdminCenter(set_mocked_m365_provider())
|
||||
assert len(admincenter_client.groups) == 1
|
||||
assert admincenter_client.groups["id-1"].id == "id-1"
|
||||
assert admincenter_client.groups["id-1"].name == "Test"
|
||||
assert admincenter_client.groups["id-1"].visibility == "Public"
|
||||
|
||||
def test_get_directory_roles(self):
|
||||
admincenter_client = AdminCenter(set_mocked_microsoft365_provider())
|
||||
admincenter_client = AdminCenter(set_mocked_m365_provider())
|
||||
assert (
|
||||
admincenter_client.directory_roles["GlobalAdministrator"].id
|
||||
== "id-directory-role"
|
||||
+12
-15
@@ -1,10 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_admincenter_settings_password_never_expire:
|
||||
@@ -16,14 +13,14 @@ class Test_admincenter_settings_password_never_expire:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire import (
|
||||
admincenter_settings_password_never_expire,
|
||||
)
|
||||
|
||||
@@ -41,17 +38,17 @@ class Test_admincenter_settings_password_never_expire:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
Domain,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire import (
|
||||
admincenter_settings_password_never_expire,
|
||||
)
|
||||
|
||||
@@ -82,17 +79,17 @@ class Test_admincenter_settings_password_never_expire:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
Domain,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_settings_password_never_expire.admincenter_settings_password_never_expire import (
|
||||
admincenter_settings_password_never_expire,
|
||||
)
|
||||
|
||||
+20
-23
@@ -1,10 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_admincenter_users_admins_reduced_license_footprint:
|
||||
@@ -16,14 +13,14 @@ class Test_admincenter_users_admins_reduced_license_footprint:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
admincenter_users_admins_reduced_license_footprint,
|
||||
)
|
||||
|
||||
@@ -41,17 +38,17 @@ class Test_admincenter_users_admins_reduced_license_footprint:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
User,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
admincenter_users_admins_reduced_license_footprint,
|
||||
)
|
||||
|
||||
@@ -78,17 +75,17 @@ class Test_admincenter_users_admins_reduced_license_footprint:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
User,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
admincenter_users_admins_reduced_license_footprint,
|
||||
)
|
||||
|
||||
@@ -124,17 +121,17 @@ class Test_admincenter_users_admins_reduced_license_footprint:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
User,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
admincenter_users_admins_reduced_license_footprint,
|
||||
)
|
||||
|
||||
@@ -170,17 +167,17 @@ class Test_admincenter_users_admins_reduced_license_footprint:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
User,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_users_admins_reduced_license_footprint.admincenter_users_admins_reduced_license_footprint import (
|
||||
admincenter_users_admins_reduced_license_footprint,
|
||||
)
|
||||
|
||||
+16
-19
@@ -1,10 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_admincenter_users_between_two_and_four_global_admins:
|
||||
@@ -16,14 +13,14 @@ class Test_admincenter_users_between_two_and_four_global_admins:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins import (
|
||||
admincenter_users_between_two_and_four_global_admins,
|
||||
)
|
||||
|
||||
@@ -41,18 +38,18 @@ class Test_admincenter_users_between_two_and_four_global_admins:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
DirectoryRole,
|
||||
User,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins import (
|
||||
admincenter_users_between_two_and_four_global_admins,
|
||||
)
|
||||
|
||||
@@ -92,18 +89,18 @@ class Test_admincenter_users_between_two_and_four_global_admins:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
DirectoryRole,
|
||||
User,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins import (
|
||||
admincenter_users_between_two_and_four_global_admins,
|
||||
)
|
||||
|
||||
@@ -154,18 +151,18 @@ class Test_admincenter_users_between_two_and_four_global_admins:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins.admincenter_client",
|
||||
"prowler.providers.m365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins.admincenter_client",
|
||||
new=admincenter_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_service import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_service import (
|
||||
DirectoryRole,
|
||||
User,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins import (
|
||||
from prowler.providers.m365.services.admincenter.admincenter_users_between_two_and_four_global_admins.admincenter_users_between_two_and_four_global_admins import (
|
||||
admincenter_users_between_two_and_four_global_admins,
|
||||
)
|
||||
|
||||
+14
-19
@@ -1,12 +1,7 @@
|
||||
from unittest import mock
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
AdminConsentPolicy,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from prowler.providers.m365.services.entra.entra_service import AdminConsentPolicy
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_admin_consent_workflow_enabled:
|
||||
@@ -20,14 +15,14 @@ class Test_entra_admin_consent_workflow_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled import (
|
||||
entra_admin_consent_workflow_enabled,
|
||||
)
|
||||
|
||||
@@ -62,14 +57,14 @@ class Test_entra_admin_consent_workflow_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled import (
|
||||
entra_admin_consent_workflow_enabled,
|
||||
)
|
||||
|
||||
@@ -104,14 +99,14 @@ class Test_entra_admin_consent_workflow_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled import (
|
||||
entra_admin_consent_workflow_enabled,
|
||||
)
|
||||
|
||||
@@ -148,14 +143,14 @@ class Test_entra_admin_consent_workflow_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_consent_workflow_enabled.entra_admin_consent_workflow_enabled import (
|
||||
entra_admin_consent_workflow_enabled,
|
||||
)
|
||||
|
||||
+17
-20
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
ConditionalAccessGrantControl,
|
||||
ConditionalAccessPolicyState,
|
||||
@@ -14,10 +14,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
SignInFrequencyInterval,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_admin_portals_access_restriction:
|
||||
@@ -28,14 +25,14 @@ class Test_entra_admin_portals_access_restriction:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction import (
|
||||
entra_admin_portals_access_restriction,
|
||||
)
|
||||
|
||||
@@ -63,17 +60,17 @@ class Test_entra_admin_portals_access_restriction:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction import (
|
||||
entra_admin_portals_access_restriction,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -137,17 +134,17 @@ class Test_entra_admin_portals_access_restriction:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction import (
|
||||
entra_admin_portals_access_restriction,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -215,17 +212,17 @@ class Test_entra_admin_portals_access_restriction:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_portals_access_restriction.entra_admin_portals_access_restriction import (
|
||||
entra_admin_portals_access_restriction,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
+20
-22
@@ -1,9 +1,7 @@
|
||||
from unittest import mock
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import AdminRoles, User
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from prowler.providers.m365.services.entra.entra_service import AdminRoles, User
|
||||
from tests.providers.m365.m365_fixtures import set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_admin_users_cloud_only:
|
||||
@@ -17,14 +15,14 @@ class Test_entra_admin_users_cloud_only:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
entra_admin_users_cloud_only,
|
||||
)
|
||||
|
||||
@@ -72,14 +70,14 @@ class Test_entra_admin_users_cloud_only:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
entra_admin_users_cloud_only,
|
||||
)
|
||||
|
||||
@@ -127,14 +125,14 @@ class Test_entra_admin_users_cloud_only:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
entra_admin_users_cloud_only,
|
||||
)
|
||||
|
||||
@@ -182,14 +180,14 @@ class Test_entra_admin_users_cloud_only:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
entra_admin_users_cloud_only,
|
||||
)
|
||||
|
||||
@@ -237,14 +235,14 @@ class Test_entra_admin_users_cloud_only:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
entra_admin_users_cloud_only,
|
||||
)
|
||||
|
||||
@@ -293,14 +291,14 @@ class Test_entra_admin_users_cloud_only:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_cloud_only.entra_admin_users_cloud_only import (
|
||||
entra_admin_users_cloud_only,
|
||||
)
|
||||
|
||||
+26
-29
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
ConditionalAccessGrantControl,
|
||||
ConditionalAccessPolicy,
|
||||
@@ -15,10 +15,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
SignInFrequencyInterval,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_admin_users_mfa_enabled:
|
||||
@@ -31,14 +28,14 @@ class Test_entra_admin_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
entra_admin_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -67,14 +64,14 @@ class Test_entra_admin_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
entra_admin_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -143,14 +140,14 @@ class Test_entra_admin_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
entra_admin_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -219,14 +216,14 @@ class Test_entra_admin_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
entra_admin_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -300,14 +297,14 @@ class Test_entra_admin_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
entra_admin_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -379,14 +376,14 @@ class Test_entra_admin_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
entra_admin_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -474,14 +471,14 @@ class Test_entra_admin_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
entra_admin_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -569,14 +566,14 @@ class Test_entra_admin_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_mfa_enabled.entra_admin_users_mfa_enabled import (
|
||||
entra_admin_users_mfa_enabled,
|
||||
)
|
||||
|
||||
+17
-20
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
AuthenticationStrength,
|
||||
ConditionalAccessGrantControl,
|
||||
@@ -15,10 +15,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
SignInFrequencyInterval,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_admin_users_phishing_resistant_mfa_enabled:
|
||||
@@ -29,14 +26,14 @@ class Test_entra_admin_users_phishing_resistant_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled import (
|
||||
entra_admin_users_phishing_resistant_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -65,17 +62,17 @@ class Test_entra_admin_users_phishing_resistant_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled import (
|
||||
entra_admin_users_phishing_resistant_mfa_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -157,17 +154,17 @@ class Test_entra_admin_users_phishing_resistant_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled import (
|
||||
entra_admin_users_phishing_resistant_mfa_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -252,17 +249,17 @@ class Test_entra_admin_users_phishing_resistant_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_phishing_resistant_mfa_enabled.entra_admin_users_phishing_resistant_mfa_enabled import (
|
||||
entra_admin_users_phishing_resistant_mfa_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
+29
-32
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
ConditionalAccessPolicyState,
|
||||
Conditions,
|
||||
@@ -14,10 +14,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
SignInFrequencyType,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_admin_users_sign_in_frequency_enabled:
|
||||
@@ -28,14 +25,14 @@ class Test_entra_admin_users_sign_in_frequency_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
entra_admin_users_sign_in_frequency_enabled,
|
||||
)
|
||||
|
||||
@@ -65,17 +62,17 @@ class Test_entra_admin_users_sign_in_frequency_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
entra_admin_users_sign_in_frequency_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -140,17 +137,17 @@ class Test_entra_admin_users_sign_in_frequency_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
entra_admin_users_sign_in_frequency_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -236,17 +233,17 @@ class Test_entra_admin_users_sign_in_frequency_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
entra_admin_users_sign_in_frequency_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -333,17 +330,17 @@ class Test_entra_admin_users_sign_in_frequency_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
entra_admin_users_sign_in_frequency_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -428,17 +425,17 @@ class Test_entra_admin_users_sign_in_frequency_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
entra_admin_users_sign_in_frequency_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -524,17 +521,17 @@ class Test_entra_admin_users_sign_in_frequency_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_admin_users_sign_in_frequency_enabled.entra_admin_users_sign_in_frequency_enabled import (
|
||||
entra_admin_users_sign_in_frequency_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
+11
-13
@@ -1,9 +1,7 @@
|
||||
from unittest import mock
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import Group
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from prowler.providers.m365.services.entra.entra_service import Group
|
||||
from tests.providers.m365.m365_fixtures import set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_dynamic_group_for_guests_created:
|
||||
@@ -18,14 +16,14 @@ class Test_entra_dynamic_group_for_guests_created:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created import (
|
||||
from prowler.providers.m365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created import (
|
||||
entra_dynamic_group_for_guests_created,
|
||||
)
|
||||
|
||||
@@ -43,10 +41,10 @@ class Test_entra_dynamic_group_for_guests_created:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
@@ -59,7 +57,7 @@ class Test_entra_dynamic_group_for_guests_created:
|
||||
)
|
||||
]
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created import (
|
||||
from prowler.providers.m365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created import (
|
||||
entra_dynamic_group_for_guests_created,
|
||||
)
|
||||
|
||||
@@ -85,10 +83,10 @@ class Test_entra_dynamic_group_for_guests_created:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
@@ -101,7 +99,7 @@ class Test_entra_dynamic_group_for_guests_created:
|
||||
)
|
||||
]
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created import (
|
||||
from prowler.providers.m365.services.entra.entra_dynamic_group_for_guests_created.entra_dynamic_group_for_guests_created import (
|
||||
entra_dynamic_group_for_guests_created,
|
||||
)
|
||||
|
||||
+21
-24
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
ConditionalAccessGrantControl,
|
||||
ConditionalAccessPolicyState,
|
||||
@@ -15,10 +15,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
SignInFrequencyInterval,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_identity_protection_sign_in_risk_enabled:
|
||||
@@ -29,14 +26,14 @@ class Test_entra_identity_protection_sign_in_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
entra_identity_protection_sign_in_risk_enabled,
|
||||
)
|
||||
|
||||
@@ -64,17 +61,17 @@ class Test_entra_identity_protection_sign_in_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
entra_identity_protection_sign_in_risk_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -140,17 +137,17 @@ class Test_entra_identity_protection_sign_in_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
entra_identity_protection_sign_in_risk_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -223,17 +220,17 @@ class Test_entra_identity_protection_sign_in_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
entra_identity_protection_sign_in_risk_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -306,17 +303,17 @@ class Test_entra_identity_protection_sign_in_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_sign_in_risk_enabled.entra_identity_protection_sign_in_risk_enabled import (
|
||||
entra_identity_protection_sign_in_risk_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
+21
-24
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
ConditionalAccessGrantControl,
|
||||
ConditionalAccessPolicyState,
|
||||
@@ -15,10 +15,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
SignInFrequencyInterval,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_identity_protection_user_risk_enabled:
|
||||
@@ -29,14 +26,14 @@ class Test_entra_identity_protection_user_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
entra_identity_protection_user_risk_enabled,
|
||||
)
|
||||
|
||||
@@ -64,17 +61,17 @@ class Test_entra_identity_protection_user_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
entra_identity_protection_user_risk_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -139,17 +136,17 @@ class Test_entra_identity_protection_user_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
entra_identity_protection_user_risk_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -221,17 +218,17 @@ class Test_entra_identity_protection_user_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
entra_identity_protection_user_risk_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -303,17 +300,17 @@ class Test_entra_identity_protection_user_risk_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_identity_protection_user_risk_enabled.entra_identity_protection_user_risk_enabled import (
|
||||
entra_identity_protection_user_risk_enabled,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
+17
-20
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
ClientAppType,
|
||||
ConditionalAccessGrantControl,
|
||||
@@ -15,10 +15,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
SignInFrequencyInterval,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_legacy_authentication_blocked:
|
||||
@@ -29,14 +26,14 @@ class Test_entra_legacy_authentication_blocked:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked import (
|
||||
from prowler.providers.m365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked import (
|
||||
entra_legacy_authentication_blocked,
|
||||
)
|
||||
|
||||
@@ -65,17 +62,17 @@ class Test_entra_legacy_authentication_blocked:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked import (
|
||||
from prowler.providers.m365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked import (
|
||||
entra_legacy_authentication_blocked,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -147,17 +144,17 @@ class Test_entra_legacy_authentication_blocked:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked import (
|
||||
from prowler.providers.m365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked import (
|
||||
entra_legacy_authentication_blocked,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -232,17 +229,17 @@ class Test_entra_legacy_authentication_blocked:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked import (
|
||||
from prowler.providers.m365.services.entra.entra_legacy_authentication_blocked.entra_legacy_authentication_blocked import (
|
||||
entra_legacy_authentication_blocked,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
+17
-20
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
ConditionalAccessGrantControl,
|
||||
ConditionalAccessPolicyState,
|
||||
@@ -14,10 +14,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
SignInFrequencyInterval,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_managed_device_required_for_authentication:
|
||||
@@ -28,14 +25,14 @@ class Test_entra_managed_device_required_for_authentication:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication import (
|
||||
from prowler.providers.m365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication import (
|
||||
entra_managed_device_required_for_authentication,
|
||||
)
|
||||
|
||||
@@ -63,17 +60,17 @@ class Test_entra_managed_device_required_for_authentication:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication import (
|
||||
from prowler.providers.m365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication import (
|
||||
entra_managed_device_required_for_authentication,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -137,17 +134,17 @@ class Test_entra_managed_device_required_for_authentication:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication import (
|
||||
from prowler.providers.m365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication import (
|
||||
entra_managed_device_required_for_authentication,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -219,17 +216,17 @@ class Test_entra_managed_device_required_for_authentication:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication import (
|
||||
from prowler.providers.m365.services.entra.entra_managed_device_required_for_authentication.entra_managed_device_required_for_authentication import (
|
||||
entra_managed_device_required_for_authentication,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
+17
-20
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
ConditionalAccessGrantControl,
|
||||
ConditionalAccessPolicyState,
|
||||
@@ -15,10 +15,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
UserAction,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_managed_device_required_for_mfa_registration:
|
||||
@@ -29,14 +26,14 @@ class Test_entra_managed_device_required_for_mfa_registration:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration import (
|
||||
from prowler.providers.m365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration import (
|
||||
entra_managed_device_required_for_mfa_registration,
|
||||
)
|
||||
|
||||
@@ -64,17 +61,17 @@ class Test_entra_managed_device_required_for_mfa_registration:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration import (
|
||||
from prowler.providers.m365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration import (
|
||||
entra_managed_device_required_for_mfa_registration,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -138,17 +135,17 @@ class Test_entra_managed_device_required_for_mfa_registration:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration import (
|
||||
from prowler.providers.m365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration import (
|
||||
entra_managed_device_required_for_mfa_registration,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
@@ -220,17 +217,17 @@ class Test_entra_managed_device_required_for_mfa_registration:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration import (
|
||||
from prowler.providers.m365.services.entra.entra_managed_device_required_for_mfa_registration.entra_managed_device_required_for_mfa_registration import (
|
||||
entra_managed_device_required_for_mfa_registration,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ConditionalAccessPolicy,
|
||||
)
|
||||
|
||||
+14
-16
@@ -1,9 +1,7 @@
|
||||
from unittest import mock
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import Organization
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from prowler.providers.m365.services.entra.entra_service import Organization
|
||||
from tests.providers.m365.m365_fixtures import set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_password_hash_sync_enabled:
|
||||
@@ -13,14 +11,14 @@ class Test_entra_password_hash_sync_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled import (
|
||||
entra_password_hash_sync_enabled,
|
||||
)
|
||||
|
||||
@@ -51,14 +49,14 @@ class Test_entra_password_hash_sync_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled import (
|
||||
entra_password_hash_sync_enabled,
|
||||
)
|
||||
|
||||
@@ -103,14 +101,14 @@ class Test_entra_password_hash_sync_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled import (
|
||||
entra_password_hash_sync_enabled,
|
||||
)
|
||||
|
||||
@@ -142,14 +140,14 @@ class Test_entra_password_hash_sync_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_password_hash_sync_enabled.entra_password_hash_sync_enabled import (
|
||||
entra_password_hash_sync_enabled,
|
||||
)
|
||||
|
||||
+11
-13
@@ -1,13 +1,11 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
AuthorizationPolicy,
|
||||
DefaultUserRolePermissions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_policy_ensure_default_user_cannot_create_tenants:
|
||||
@@ -18,14 +16,14 @@ class Test_entra_policy_ensure_default_user_cannot_create_tenants:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants import (
|
||||
entra_policy_ensure_default_user_cannot_create_tenants,
|
||||
)
|
||||
|
||||
@@ -49,14 +47,14 @@ class Test_entra_policy_ensure_default_user_cannot_create_tenants:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants import (
|
||||
entra_policy_ensure_default_user_cannot_create_tenants,
|
||||
)
|
||||
|
||||
@@ -89,14 +87,14 @@ class Test_entra_policy_ensure_default_user_cannot_create_tenants:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_ensure_default_user_cannot_create_tenants.entra_policy_ensure_default_user_cannot_create_tenants import (
|
||||
entra_policy_ensure_default_user_cannot_create_tenants,
|
||||
)
|
||||
|
||||
+14
-16
@@ -1,12 +1,10 @@
|
||||
import mock
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
AuthorizationPolicy,
|
||||
InvitationsFrom,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_policy_guest_invite_only_for_admin_roles:
|
||||
@@ -21,14 +19,14 @@ class Test_entra_policy_guest_invite_only_for_admin_roles:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles import (
|
||||
entra_policy_guest_invite_only_for_admin_roles,
|
||||
)
|
||||
|
||||
@@ -54,14 +52,14 @@ class Test_entra_policy_guest_invite_only_for_admin_roles:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles import (
|
||||
entra_policy_guest_invite_only_for_admin_roles,
|
||||
)
|
||||
|
||||
@@ -95,14 +93,14 @@ class Test_entra_policy_guest_invite_only_for_admin_roles:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles import (
|
||||
entra_policy_guest_invite_only_for_admin_roles,
|
||||
)
|
||||
|
||||
@@ -136,14 +134,14 @@ class Test_entra_policy_guest_invite_only_for_admin_roles:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_guest_invite_only_for_admin_roles.entra_policy_guest_invite_only_for_admin_roles import (
|
||||
entra_policy_guest_invite_only_for_admin_roles,
|
||||
)
|
||||
|
||||
+14
-16
@@ -1,12 +1,10 @@
|
||||
from unittest import mock
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
AuthorizationPolicy,
|
||||
AuthPolicyRoles,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_policy_guest_users_access_restrictions:
|
||||
@@ -21,14 +19,14 @@ class Test_entra_policy_guest_users_access_restrictions:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions import (
|
||||
entra_policy_guest_users_access_restrictions,
|
||||
)
|
||||
|
||||
@@ -54,14 +52,14 @@ class Test_entra_policy_guest_users_access_restrictions:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions import (
|
||||
entra_policy_guest_users_access_restrictions,
|
||||
)
|
||||
|
||||
@@ -95,14 +93,14 @@ class Test_entra_policy_guest_users_access_restrictions:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions import (
|
||||
entra_policy_guest_users_access_restrictions,
|
||||
)
|
||||
|
||||
@@ -136,14 +134,14 @@ class Test_entra_policy_guest_users_access_restrictions:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_guest_users_access_restrictions.entra_policy_guest_users_access_restrictions import (
|
||||
entra_policy_guest_users_access_restrictions,
|
||||
)
|
||||
|
||||
+11
-13
@@ -1,13 +1,11 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
AuthorizationPolicy,
|
||||
DefaultUserRolePermissions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_policy_restricts_user_consent_for_apps:
|
||||
@@ -25,14 +23,14 @@ class Test_entra_policy_restricts_user_consent_for_apps:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps import (
|
||||
entra_policy_restricts_user_consent_for_apps,
|
||||
)
|
||||
|
||||
@@ -65,14 +63,14 @@ class Test_entra_policy_restricts_user_consent_for_apps:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps import (
|
||||
entra_policy_restricts_user_consent_for_apps,
|
||||
)
|
||||
|
||||
@@ -116,14 +114,14 @@ class Test_entra_policy_restricts_user_consent_for_apps:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps import (
|
||||
from prowler.providers.m365.services.entra.entra_policy_restricts_user_consent_for_apps.entra_policy_restricts_user_consent_for_apps import (
|
||||
entra_policy_restricts_user_consent_for_apps,
|
||||
)
|
||||
|
||||
+13
-16
@@ -1,13 +1,10 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
DefaultUserRolePermissions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_thirdparty_integrated_apps_not_allowed:
|
||||
@@ -18,14 +15,14 @@ class Test_entra_thirdparty_integrated_apps_not_allowed:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed import (
|
||||
from prowler.providers.m365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed import (
|
||||
entra_thirdparty_integrated_apps_not_allowed,
|
||||
)
|
||||
|
||||
@@ -44,17 +41,17 @@ class Test_entra_thirdparty_integrated_apps_not_allowed:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
AuthorizationPolicy,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed import (
|
||||
from prowler.providers.m365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed import (
|
||||
entra_thirdparty_integrated_apps_not_allowed,
|
||||
)
|
||||
|
||||
@@ -88,17 +85,17 @@ class Test_entra_thirdparty_integrated_apps_not_allowed:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
AuthorizationPolicy,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed import (
|
||||
from prowler.providers.m365.services.entra.entra_thirdparty_integrated_apps_not_allowed.entra_thirdparty_integrated_apps_not_allowed import (
|
||||
entra_thirdparty_integrated_apps_not_allowed,
|
||||
)
|
||||
|
||||
+14
-17
@@ -1,7 +1,7 @@
|
||||
from unittest import mock
|
||||
from uuid import uuid4
|
||||
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
ApplicationsConditions,
|
||||
ConditionalAccessGrantControl,
|
||||
ConditionalAccessPolicy,
|
||||
@@ -15,10 +15,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
SignInFrequencyInterval,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_entra_users_mfa_enabled:
|
||||
@@ -31,14 +28,14 @@ class Test_entra_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled import (
|
||||
entra_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -67,14 +64,14 @@ class Test_entra_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled import (
|
||||
entra_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -148,14 +145,14 @@ class Test_entra_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled import (
|
||||
entra_users_mfa_enabled,
|
||||
)
|
||||
|
||||
@@ -227,14 +224,14 @@ class Test_entra_users_mfa_enabled:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled.entra_client",
|
||||
"prowler.providers.m365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled.entra_client",
|
||||
new=entra_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled import (
|
||||
from prowler.providers.m365.services.entra.entra_users_mfa_enabled.entra_users_mfa_enabled import (
|
||||
entra_users_mfa_enabled,
|
||||
)
|
||||
|
||||
+16
-21
@@ -1,7 +1,7 @@
|
||||
from unittest.mock import patch
|
||||
|
||||
from prowler.providers.microsoft365.models import Microsoft365IdentityInfo
|
||||
from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
from prowler.providers.m365.models import M365IdentityInfo
|
||||
from prowler.providers.m365.services.entra.entra_service import (
|
||||
AdminConsentPolicy,
|
||||
AdminRoles,
|
||||
ApplicationsConditions,
|
||||
@@ -27,10 +27,7 @@ from prowler.providers.microsoft365.services.entra.entra_service import (
|
||||
UserAction,
|
||||
UsersConditions,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
async def mock_entra_get_authorization_policy(_):
|
||||
@@ -153,18 +150,16 @@ async def mock_entra_get_organization(_):
|
||||
class Test_Entra_Service:
|
||||
def test_get_client(self):
|
||||
admincenter_client = Entra(
|
||||
set_mocked_microsoft365_provider(
|
||||
identity=Microsoft365IdentityInfo(tenant_domain=DOMAIN)
|
||||
)
|
||||
set_mocked_m365_provider(identity=M365IdentityInfo(tenant_domain=DOMAIN))
|
||||
)
|
||||
assert admincenter_client.client.__class__.__name__ == "GraphServiceClient"
|
||||
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_service.Entra._get_authorization_policy",
|
||||
"prowler.providers.m365.services.entra.entra_service.Entra._get_authorization_policy",
|
||||
new=mock_entra_get_authorization_policy,
|
||||
)
|
||||
def test_get_authorization_policy(self):
|
||||
entra_client = Entra(set_mocked_microsoft365_provider())
|
||||
entra_client = Entra(set_mocked_m365_provider())
|
||||
assert entra_client.authorization_policy.id == "id-1"
|
||||
assert entra_client.authorization_policy.name == "Name 1"
|
||||
assert entra_client.authorization_policy.description == "Description 1"
|
||||
@@ -188,11 +183,11 @@ class Test_Entra_Service:
|
||||
)
|
||||
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_service.Entra._get_conditional_access_policies",
|
||||
"prowler.providers.m365.services.entra.entra_service.Entra._get_conditional_access_policies",
|
||||
new=mock_entra_get_conditional_access_policies,
|
||||
)
|
||||
def test_get_conditional_access_policies(self):
|
||||
entra_client = Entra(set_mocked_microsoft365_provider())
|
||||
entra_client = Entra(set_mocked_m365_provider())
|
||||
assert entra_client.conditional_access_policies == {
|
||||
"id-1": ConditionalAccessPolicy(
|
||||
id="id-1",
|
||||
@@ -234,11 +229,11 @@ class Test_Entra_Service:
|
||||
}
|
||||
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_service.Entra._get_groups",
|
||||
"prowler.providers.m365.services.entra.entra_service.Entra._get_groups",
|
||||
new=mock_entra_get_groups,
|
||||
)
|
||||
def test_get_groups(self):
|
||||
entra_client = Entra(set_mocked_microsoft365_provider())
|
||||
entra_client = Entra(set_mocked_m365_provider())
|
||||
assert len(entra_client.groups) == 2
|
||||
assert entra_client.groups[0]["id"] == "id-1"
|
||||
assert entra_client.groups[0]["name"] == "group1"
|
||||
@@ -250,33 +245,33 @@ class Test_Entra_Service:
|
||||
assert entra_client.groups[1]["membershipRule"] == ""
|
||||
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_service.Entra._get_admin_consent_policy",
|
||||
"prowler.providers.m365.services.entra.entra_service.Entra._get_admin_consent_policy",
|
||||
new=mock_entra_get_admin_consent_policy,
|
||||
)
|
||||
def test_get_admin_consent_policy(self):
|
||||
entra_client = Entra(set_mocked_microsoft365_provider())
|
||||
entra_client = Entra(set_mocked_m365_provider())
|
||||
assert entra_client.admin_consent_policy.admin_consent_enabled
|
||||
assert entra_client.admin_consent_policy.notify_reviewers
|
||||
assert entra_client.admin_consent_policy.email_reminders_to_reviewers is False
|
||||
assert entra_client.admin_consent_policy.duration_in_days == 30
|
||||
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_service.Entra._get_organization",
|
||||
"prowler.providers.m365.services.entra.entra_service.Entra._get_organization",
|
||||
new=mock_entra_get_organization,
|
||||
)
|
||||
def test_get_organization(self):
|
||||
entra_client = Entra(set_mocked_microsoft365_provider())
|
||||
entra_client = Entra(set_mocked_m365_provider())
|
||||
assert len(entra_client.organizations) == 1
|
||||
assert entra_client.organizations[0].id == "org1"
|
||||
assert entra_client.organizations[0].name == "Organization 1"
|
||||
assert entra_client.organizations[0].on_premises_sync_enabled
|
||||
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.entra.entra_service.Entra._get_users",
|
||||
"prowler.providers.m365.services.entra.entra_service.Entra._get_users",
|
||||
new=mock_entra_get_users,
|
||||
)
|
||||
def test_get_users(self):
|
||||
entra_client = Entra(set_mocked_microsoft365_provider())
|
||||
entra_client = Entra(set_mocked_m365_provider())
|
||||
assert len(entra_client.users) == 3
|
||||
assert entra_client.users["user-1"].id == "user-1"
|
||||
assert entra_client.users["user-1"].name == "User 1"
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
from unittest import mock
|
||||
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_purview_audit_log_search_enabled:
|
||||
def test_audit_log_search_disabled(self):
|
||||
purview_client = mock.MagicMock()
|
||||
purview_client.audited_tenant = "audited_tenant"
|
||||
purview_client.audited_domain = DOMAIN
|
||||
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_exchange_online"
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.m365.services.purview.purview_audit_log_search_enabled.purview_audit_log_search_enabled.purview_client",
|
||||
new=purview_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.m365.services.purview.purview_audit_log_search_enabled.purview_audit_log_search_enabled import (
|
||||
purview_audit_log_search_enabled,
|
||||
)
|
||||
from prowler.providers.m365.services.purview.purview_service import (
|
||||
AuditLogConfig,
|
||||
)
|
||||
|
||||
purview_client.audit_log_config = AuditLogConfig(audit_log_search=False)
|
||||
|
||||
check = purview_audit_log_search_enabled()
|
||||
result = check.execute()
|
||||
assert len(result) == 1
|
||||
assert result[0].status == "FAIL"
|
||||
assert (
|
||||
result[0].status_extended == "Purview audit log search is not enabled."
|
||||
)
|
||||
assert result[0].resource == purview_client.audit_log_config.dict()
|
||||
assert result[0].resource_name == "Purview Settings"
|
||||
assert result[0].resource_id == "purviewSettings"
|
||||
assert result[0].location == "global"
|
||||
purview_client.powershell.close()
|
||||
|
||||
def test_audit_log_search_enabled(self):
|
||||
purview_client = mock.MagicMock()
|
||||
purview_client.audited_tenant = "audited_tenant"
|
||||
purview_client.audited_domain = DOMAIN
|
||||
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_exchange_online"
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.m365.services.purview.purview_audit_log_search_enabled.purview_audit_log_search_enabled.purview_client",
|
||||
new=purview_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.m365.services.purview.purview_audit_log_search_enabled.purview_audit_log_search_enabled import (
|
||||
purview_audit_log_search_enabled,
|
||||
)
|
||||
from prowler.providers.m365.services.purview.purview_service import (
|
||||
AuditLogConfig,
|
||||
)
|
||||
|
||||
purview_client.audit_log_config = AuditLogConfig(audit_log_search=True)
|
||||
|
||||
check = purview_audit_log_search_enabled()
|
||||
result = check.execute()
|
||||
assert len(result) == 1
|
||||
assert result[0].status == "PASS"
|
||||
assert result[0].status_extended == "Purview audit log search is enabled."
|
||||
assert result[0].resource == purview_client.audit_log_config.dict()
|
||||
assert result[0].resource_name == "Purview Settings"
|
||||
assert result[0].resource_id == "purviewSettings"
|
||||
assert result[0].location == "global"
|
||||
@@ -0,0 +1,48 @@
|
||||
from unittest import mock
|
||||
from unittest.mock import patch
|
||||
|
||||
from prowler.providers.m365.models import M365IdentityInfo
|
||||
from prowler.providers.m365.services.purview.purview_service import (
|
||||
AuditLogConfig,
|
||||
Purview,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
def mock_get_audit_log_config(_):
|
||||
return AuditLogConfig(audit_log_search=True)
|
||||
|
||||
|
||||
class Test_Purview_Service:
|
||||
def test_get_client(self):
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_exchange_online"
|
||||
),
|
||||
):
|
||||
purview_client = Purview(
|
||||
set_mocked_m365_provider(
|
||||
identity=M365IdentityInfo(tenant_domain=DOMAIN)
|
||||
)
|
||||
)
|
||||
assert purview_client.client.__class__.__name__ == "GraphServiceClient"
|
||||
assert purview_client.powershell.__class__.__name__ == "M365PowerShell"
|
||||
|
||||
@patch(
|
||||
"prowler.providers.m365.services.purview.purview_service.Purview._get_audit_log_config",
|
||||
new=mock_get_audit_log_config,
|
||||
)
|
||||
def test_get_settings(self):
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_exchange_online"
|
||||
),
|
||||
):
|
||||
purview_client = Purview(
|
||||
set_mocked_m365_provider(
|
||||
identity=M365IdentityInfo(tenant_domain=DOMAIN)
|
||||
)
|
||||
)
|
||||
assert purview_client.audit_log_config == AuditLogConfig(
|
||||
audit_log_search=True
|
||||
)
|
||||
+20
-23
@@ -1,12 +1,9 @@
|
||||
from unittest import mock
|
||||
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_service import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_service import (
|
||||
SharePointSettings,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_sharepoint_external_sharing_managed:
|
||||
@@ -20,14 +17,14 @@ class Test_sharepoint_external_sharing_managed:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
sharepoint_external_sharing_managed,
|
||||
)
|
||||
|
||||
@@ -65,14 +62,14 @@ class Test_sharepoint_external_sharing_managed:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
sharepoint_external_sharing_managed,
|
||||
)
|
||||
|
||||
@@ -110,14 +107,14 @@ class Test_sharepoint_external_sharing_managed:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
sharepoint_external_sharing_managed,
|
||||
)
|
||||
|
||||
@@ -155,14 +152,14 @@ class Test_sharepoint_external_sharing_managed:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
sharepoint_external_sharing_managed,
|
||||
)
|
||||
|
||||
@@ -200,14 +197,14 @@ class Test_sharepoint_external_sharing_managed:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
sharepoint_external_sharing_managed,
|
||||
)
|
||||
|
||||
@@ -247,14 +244,14 @@ class Test_sharepoint_external_sharing_managed:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_managed.sharepoint_external_sharing_managed import (
|
||||
sharepoint_external_sharing_managed,
|
||||
)
|
||||
|
||||
+11
-14
@@ -1,12 +1,9 @@
|
||||
from unittest import mock
|
||||
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_service import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_service import (
|
||||
SharePointSettings,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_sharepoint_external_sharing_restricted:
|
||||
@@ -20,14 +17,14 @@ class Test_sharepoint_external_sharing_restricted:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted import (
|
||||
sharepoint_external_sharing_restricted,
|
||||
)
|
||||
|
||||
@@ -63,14 +60,14 @@ class Test_sharepoint_external_sharing_restricted:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted import (
|
||||
sharepoint_external_sharing_restricted,
|
||||
)
|
||||
|
||||
@@ -108,14 +105,14 @@ class Test_sharepoint_external_sharing_restricted:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_external_sharing_restricted.sharepoint_external_sharing_restricted import (
|
||||
sharepoint_external_sharing_restricted,
|
||||
)
|
||||
|
||||
+11
-14
@@ -1,12 +1,9 @@
|
||||
from unittest import mock
|
||||
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_service import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_service import (
|
||||
SharePointSettings,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_sharepoint_guest_sharing_restricted:
|
||||
@@ -20,14 +17,14 @@ class Test_sharepoint_guest_sharing_restricted:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted import (
|
||||
sharepoint_guest_sharing_restricted,
|
||||
)
|
||||
|
||||
@@ -64,14 +61,14 @@ class Test_sharepoint_guest_sharing_restricted:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted import (
|
||||
sharepoint_guest_sharing_restricted,
|
||||
)
|
||||
|
||||
@@ -110,14 +107,14 @@ class Test_sharepoint_guest_sharing_restricted:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_guest_sharing_restricted.sharepoint_guest_sharing_restricted import (
|
||||
sharepoint_guest_sharing_restricted,
|
||||
)
|
||||
|
||||
+12
-15
@@ -1,9 +1,6 @@
|
||||
from unittest import mock
|
||||
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_sharepoint_modern_authentication_required:
|
||||
@@ -17,17 +14,17 @@ class Test_sharepoint_modern_authentication_required:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required import (
|
||||
sharepoint_modern_authentication_required,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_service import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_service import (
|
||||
SharePointSettings,
|
||||
)
|
||||
|
||||
@@ -63,17 +60,17 @@ class Test_sharepoint_modern_authentication_required:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required import (
|
||||
sharepoint_modern_authentication_required,
|
||||
)
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_service import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_service import (
|
||||
SharePointSettings,
|
||||
)
|
||||
|
||||
@@ -111,14 +108,14 @@ class Test_sharepoint_modern_authentication_required:
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_microsoft365_provider(),
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required.sharepoint_client",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required.sharepoint_client",
|
||||
new=sharepoint_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required import (
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_modern_authentication_required.sharepoint_modern_authentication_required import (
|
||||
sharepoint_modern_authentication_required,
|
||||
)
|
||||
|
||||
+6
-11
@@ -1,14 +1,11 @@
|
||||
from unittest.mock import patch
|
||||
|
||||
from prowler.providers.microsoft365.models import Microsoft365IdentityInfo
|
||||
from prowler.providers.microsoft365.services.sharepoint.sharepoint_service import (
|
||||
from prowler.providers.m365.models import M365IdentityInfo
|
||||
from prowler.providers.m365.services.sharepoint.sharepoint_service import (
|
||||
SharePoint,
|
||||
SharePointSettings,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
DOMAIN,
|
||||
set_mocked_microsoft365_provider,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
async def mock_sharepoint_get_settings(_):
|
||||
@@ -23,20 +20,18 @@ async def mock_sharepoint_get_settings(_):
|
||||
|
||||
|
||||
@patch(
|
||||
"prowler.providers.microsoft365.services.sharepoint.sharepoint_service.SharePoint._get_settings",
|
||||
"prowler.providers.m365.services.sharepoint.sharepoint_service.SharePoint._get_settings",
|
||||
new=mock_sharepoint_get_settings,
|
||||
)
|
||||
class Test_SharePoint_Service:
|
||||
def test_get_client(self):
|
||||
sharepoint_client = SharePoint(
|
||||
set_mocked_microsoft365_provider(
|
||||
identity=Microsoft365IdentityInfo(tenant_domain=DOMAIN)
|
||||
)
|
||||
set_mocked_m365_provider(identity=M365IdentityInfo(tenant_domain=DOMAIN))
|
||||
)
|
||||
assert sharepoint_client.client.__class__.__name__ == "GraphServiceClient"
|
||||
|
||||
def test_get_settings(self):
|
||||
sharepoint_client = SharePoint(set_mocked_microsoft365_provider())
|
||||
sharepoint_client = SharePoint(set_mocked_m365_provider())
|
||||
settings = sharepoint_client.settings
|
||||
assert settings.sharingCapability == "ExternalUserAndGuestSharing"
|
||||
assert settings.sharingAllowedDomainList == ["allowed-domain.com"]
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
from unittest import mock
|
||||
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
class Test_teams_external_file_sharing_restricted:
|
||||
def test_file_sharing_no_restricted(self):
|
||||
teams_client = mock.MagicMock()
|
||||
teams_client.audited_tenant = "audited_tenant"
|
||||
teams_client.audited_domain = DOMAIN
|
||||
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_microsoft_teams"
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.m365.services.teams.teams_external_file_sharing_restricted.teams_external_file_sharing_restricted.teams_client",
|
||||
new=teams_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.m365.services.teams.teams_external_file_sharing_restricted.teams_external_file_sharing_restricted import (
|
||||
teams_external_file_sharing_restricted,
|
||||
)
|
||||
from prowler.providers.m365.services.teams.teams_service import (
|
||||
CloudStorageSettings,
|
||||
TeamsSettings,
|
||||
)
|
||||
|
||||
teams_client.teams_settings = TeamsSettings(
|
||||
cloud_storage_settings=CloudStorageSettings(
|
||||
allow_box=True,
|
||||
allow_drop_box=True,
|
||||
allow_egnyte=True,
|
||||
allow_google_drive=True,
|
||||
allow_share_file=True,
|
||||
)
|
||||
)
|
||||
|
||||
teams_client.audit_config = {"allowed_cloud_storage_services": []}
|
||||
|
||||
check = teams_external_file_sharing_restricted()
|
||||
result = check.execute()
|
||||
assert len(result) == 1
|
||||
assert result[0].status == "FAIL"
|
||||
assert (
|
||||
result[0].status_extended
|
||||
== "External file sharing is not restricted to only approved cloud storage services."
|
||||
)
|
||||
assert (
|
||||
result[0].resource
|
||||
== teams_client.teams_settings.cloud_storage_settings.dict()
|
||||
)
|
||||
assert result[0].resource_name == "Cloud Storage Settings"
|
||||
assert result[0].resource_id == "cloudStorageSettings"
|
||||
assert result[0].location == "global"
|
||||
|
||||
def test_file_sharing_restricted(self):
|
||||
teams_client = mock.MagicMock()
|
||||
teams_client.audited_tenant = "audited_tenant"
|
||||
teams_client.audited_domain = DOMAIN
|
||||
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_m365_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_microsoft_teams"
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.m365.services.teams.teams_external_file_sharing_restricted.teams_external_file_sharing_restricted.teams_client",
|
||||
new=teams_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.m365.services.teams.teams_external_file_sharing_restricted.teams_external_file_sharing_restricted import (
|
||||
teams_external_file_sharing_restricted,
|
||||
)
|
||||
from prowler.providers.m365.services.teams.teams_service import (
|
||||
CloudStorageSettings,
|
||||
TeamsSettings,
|
||||
)
|
||||
|
||||
teams_client.teams_settings = TeamsSettings(
|
||||
cloud_storage_settings=CloudStorageSettings(
|
||||
allow_box=True,
|
||||
allow_drop_box=True,
|
||||
allow_egnyte=False,
|
||||
allow_google_drive=True,
|
||||
allow_share_file=True,
|
||||
)
|
||||
)
|
||||
|
||||
teams_client.audit_config = {
|
||||
"allowed_cloud_storage_services": [
|
||||
"allow_box",
|
||||
"allow_drop_box",
|
||||
# "allow_egnyte",
|
||||
"allow_google_drive",
|
||||
"allow_share_file",
|
||||
]
|
||||
}
|
||||
|
||||
check = teams_external_file_sharing_restricted()
|
||||
result = check.execute()
|
||||
assert len(result) == 1
|
||||
assert result[0].status == "PASS"
|
||||
assert (
|
||||
result[0].status_extended
|
||||
== "External file sharing is restricted to only approved cloud storage services."
|
||||
)
|
||||
assert (
|
||||
result[0].resource
|
||||
== teams_client.teams_settings.cloud_storage_settings.dict()
|
||||
)
|
||||
assert result[0].resource_name == "Cloud Storage Settings"
|
||||
assert result[0].resource_id == "cloudStorageSettings"
|
||||
assert result[0].location == "global"
|
||||
@@ -0,0 +1,65 @@
|
||||
from unittest import mock
|
||||
from unittest.mock import patch
|
||||
|
||||
from prowler.providers.m365.models import M365IdentityInfo
|
||||
from prowler.providers.m365.services.teams.teams_service import (
|
||||
CloudStorageSettings,
|
||||
Teams,
|
||||
TeamsSettings,
|
||||
)
|
||||
from tests.providers.m365.m365_fixtures import DOMAIN, set_mocked_m365_provider
|
||||
|
||||
|
||||
def mock_get_teams_client_configuration(_):
|
||||
return TeamsSettings(
|
||||
cloud_storage_settings=CloudStorageSettings(
|
||||
allow_box=False,
|
||||
allow_drop_box=False,
|
||||
allow_egnyte=False,
|
||||
allow_google_drive=False,
|
||||
allow_share_file=False,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class Test_Teams_Service:
|
||||
def test_get_client(self):
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_microsoft_teams"
|
||||
),
|
||||
):
|
||||
teams_client = Teams(
|
||||
set_mocked_m365_provider(
|
||||
identity=M365IdentityInfo(tenant_domain=DOMAIN)
|
||||
)
|
||||
)
|
||||
assert teams_client.client.__class__.__name__ == "GraphServiceClient"
|
||||
assert teams_client.powershell.__class__.__name__ == "M365PowerShell"
|
||||
teams_client.powershell.close()
|
||||
|
||||
@patch(
|
||||
"prowler.providers.m365.services.teams.teams_service.Teams._get_teams_client_configuration",
|
||||
new=mock_get_teams_client_configuration,
|
||||
)
|
||||
def test_get_settings(self):
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_microsoft_teams"
|
||||
),
|
||||
):
|
||||
teams_client = Teams(
|
||||
set_mocked_m365_provider(
|
||||
identity=M365IdentityInfo(tenant_domain=DOMAIN)
|
||||
)
|
||||
)
|
||||
assert teams_client.teams_settings == TeamsSettings(
|
||||
cloud_storage_settings=CloudStorageSettings(
|
||||
allow_box=False,
|
||||
allow_drop_box=False,
|
||||
allow_egnyte=False,
|
||||
allow_google_drive=False,
|
||||
allow_share_file=False,
|
||||
)
|
||||
)
|
||||
teams_client.powershell.close()
|
||||
@@ -1,312 +0,0 @@
|
||||
from unittest.mock import patch
|
||||
from uuid import uuid4
|
||||
|
||||
import pytest
|
||||
from azure.core.credentials import AccessToken
|
||||
from azure.identity import (
|
||||
ClientSecretCredential,
|
||||
DefaultAzureCredential,
|
||||
InteractiveBrowserCredential,
|
||||
)
|
||||
from mock import MagicMock
|
||||
|
||||
from prowler.config.config import (
|
||||
default_config_file_path,
|
||||
default_fixer_config_file_path,
|
||||
load_and_validate_config_file,
|
||||
)
|
||||
from prowler.providers.common.models import Connection
|
||||
from prowler.providers.microsoft365.exceptions.exceptions import (
|
||||
Microsoft365HTTPResponseError,
|
||||
Microsoft365NoAuthenticationMethodError,
|
||||
)
|
||||
from prowler.providers.microsoft365.microsoft365_provider import Microsoft365Provider
|
||||
from prowler.providers.microsoft365.models import (
|
||||
Microsoft365IdentityInfo,
|
||||
Microsoft365RegionConfig,
|
||||
)
|
||||
from tests.providers.microsoft365.microsoft365_fixtures import (
|
||||
CLIENT_ID,
|
||||
CLIENT_SECRET,
|
||||
DOMAIN,
|
||||
IDENTITY_ID,
|
||||
IDENTITY_TYPE,
|
||||
LOCATION,
|
||||
TENANT_ID,
|
||||
)
|
||||
|
||||
|
||||
class TestMicrosoft365Provider:
|
||||
def test_microsoft365_provider(self):
|
||||
tenant_id = None
|
||||
client_id = None
|
||||
client_secret = None
|
||||
|
||||
fixer_config = load_and_validate_config_file(
|
||||
"microsoft365", default_fixer_config_file_path
|
||||
)
|
||||
azure_region = "Microsoft365Global"
|
||||
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_session",
|
||||
return_value=ClientSecretCredential(
|
||||
client_id=CLIENT_ID,
|
||||
tenant_id=TENANT_ID,
|
||||
client_secret=CLIENT_SECRET,
|
||||
),
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_identity",
|
||||
return_value=Microsoft365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type=IDENTITY_TYPE,
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
),
|
||||
),
|
||||
):
|
||||
microsoft365_provider = Microsoft365Provider(
|
||||
sp_env_auth=True,
|
||||
az_cli_auth=False,
|
||||
browser_auth=False,
|
||||
tenant_id=tenant_id,
|
||||
client_id=client_id,
|
||||
client_secret=client_secret,
|
||||
region=azure_region,
|
||||
config_path=default_config_file_path,
|
||||
fixer_config=fixer_config,
|
||||
)
|
||||
|
||||
assert microsoft365_provider.region_config == Microsoft365RegionConfig(
|
||||
name="Microsoft365Global",
|
||||
authority=None,
|
||||
base_url="https://graph.microsoft.com",
|
||||
credential_scopes=["https://graph.microsoft.com/.default"],
|
||||
)
|
||||
assert microsoft365_provider.identity == Microsoft365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type=IDENTITY_TYPE,
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
)
|
||||
|
||||
def test_microsoft365_provider_cli_auth(self):
|
||||
"""Test Microsoft365 Provider initialization with CLI authentication"""
|
||||
azure_region = "Microsoft365Global"
|
||||
fixer_config = load_and_validate_config_file(
|
||||
"microsoft365", default_fixer_config_file_path
|
||||
)
|
||||
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_session",
|
||||
return_value=DefaultAzureCredential(
|
||||
exclude_environment_credential=True,
|
||||
exclude_cli_credential=False,
|
||||
exclude_managed_identity_credential=True,
|
||||
exclude_visual_studio_code_credential=True,
|
||||
exclude_shared_token_cache_credential=True,
|
||||
exclude_powershell_credential=True,
|
||||
exclude_browser_credential=True,
|
||||
),
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_identity",
|
||||
return_value=Microsoft365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type="User",
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
),
|
||||
),
|
||||
):
|
||||
microsoft365_provider = Microsoft365Provider(
|
||||
sp_env_auth=False,
|
||||
az_cli_auth=True,
|
||||
browser_auth=False,
|
||||
region=azure_region,
|
||||
config_path=default_config_file_path,
|
||||
fixer_config=fixer_config,
|
||||
)
|
||||
|
||||
assert microsoft365_provider.region_config == Microsoft365RegionConfig(
|
||||
name="Microsoft365Global",
|
||||
authority=None,
|
||||
base_url="https://graph.microsoft.com",
|
||||
credential_scopes=["https://graph.microsoft.com/.default"],
|
||||
)
|
||||
assert microsoft365_provider.identity == Microsoft365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type="User",
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
)
|
||||
assert isinstance(microsoft365_provider.session, DefaultAzureCredential)
|
||||
|
||||
def test_microsoft365_provider_browser_auth(self):
|
||||
"""Test Microsoft365 Provider initialization with Browser authentication"""
|
||||
azure_region = "Microsoft365Global"
|
||||
fixer_config = load_and_validate_config_file(
|
||||
"microsoft365", default_fixer_config_file_path
|
||||
)
|
||||
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_session",
|
||||
return_value=InteractiveBrowserCredential(
|
||||
tenant_id=TENANT_ID,
|
||||
),
|
||||
),
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_identity",
|
||||
return_value=Microsoft365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type="User",
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
),
|
||||
),
|
||||
):
|
||||
microsoft365_provider = Microsoft365Provider(
|
||||
sp_env_auth=False,
|
||||
az_cli_auth=False,
|
||||
browser_auth=True,
|
||||
tenant_id=TENANT_ID,
|
||||
region=azure_region,
|
||||
config_path=default_config_file_path,
|
||||
fixer_config=fixer_config,
|
||||
)
|
||||
|
||||
assert microsoft365_provider.region_config == Microsoft365RegionConfig(
|
||||
name="Microsoft365Global",
|
||||
authority=None,
|
||||
base_url="https://graph.microsoft.com",
|
||||
credential_scopes=["https://graph.microsoft.com/.default"],
|
||||
)
|
||||
assert microsoft365_provider.identity == Microsoft365IdentityInfo(
|
||||
identity_id=IDENTITY_ID,
|
||||
identity_type="User",
|
||||
tenant_id=TENANT_ID,
|
||||
tenant_domain=DOMAIN,
|
||||
location=LOCATION,
|
||||
)
|
||||
assert isinstance(
|
||||
microsoft365_provider.session, InteractiveBrowserCredential
|
||||
)
|
||||
|
||||
def test_test_connection_browser_auth(self):
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.DefaultAzureCredential"
|
||||
) as mock_default_credential,
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_session"
|
||||
) as mock_setup_session,
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.GraphServiceClient"
|
||||
) as mock_graph_client,
|
||||
):
|
||||
# Mock the return value of DefaultAzureCredential
|
||||
mock_credentials = MagicMock()
|
||||
mock_credentials.get_token.return_value = AccessToken(
|
||||
token="fake_token", expires_on=9999999999
|
||||
)
|
||||
mock_default_credential.return_value = mock_credentials
|
||||
|
||||
# Mock setup_session to return a mocked session object
|
||||
mock_session = MagicMock()
|
||||
mock_setup_session.return_value = mock_session
|
||||
|
||||
# Mock GraphServiceClient to avoid real API calls
|
||||
mock_client = MagicMock()
|
||||
mock_graph_client.return_value = mock_client
|
||||
|
||||
test_connection = Microsoft365Provider.test_connection(
|
||||
browser_auth=True,
|
||||
tenant_id=str(uuid4()),
|
||||
region="Microsoft365Global",
|
||||
raise_on_exception=False,
|
||||
)
|
||||
|
||||
assert isinstance(test_connection, Connection)
|
||||
assert test_connection.is_connected
|
||||
assert test_connection.error is None
|
||||
|
||||
def test_test_connection_tenant_id_client_id_client_secret(self):
|
||||
with (
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_session"
|
||||
) as mock_setup_session,
|
||||
patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.validate_static_credentials"
|
||||
) as mock_validate_static_credentials,
|
||||
):
|
||||
# Mock setup_session to return a mocked session object
|
||||
mock_session = MagicMock()
|
||||
mock_setup_session.return_value = mock_session
|
||||
|
||||
# Mock ValidateStaticCredentials to avoid real API calls
|
||||
mock_validate_static_credentials.return_value = None
|
||||
|
||||
test_connection = Microsoft365Provider.test_connection(
|
||||
tenant_id=str(uuid4()),
|
||||
region="Microsoft365Global",
|
||||
raise_on_exception=False,
|
||||
client_id=str(uuid4()),
|
||||
client_secret=str(uuid4()),
|
||||
)
|
||||
|
||||
assert isinstance(test_connection, Connection)
|
||||
assert test_connection.is_connected
|
||||
assert test_connection.error is None
|
||||
|
||||
def test_test_connection_with_httpresponseerror(self):
|
||||
with patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_session"
|
||||
) as mock_setup_session:
|
||||
mock_setup_session.side_effect = Microsoft365HTTPResponseError(
|
||||
file="test_file", original_exception="Simulated HttpResponseError"
|
||||
)
|
||||
|
||||
with pytest.raises(Microsoft365HTTPResponseError) as exception:
|
||||
Microsoft365Provider.test_connection(
|
||||
az_cli_auth=True,
|
||||
raise_on_exception=True,
|
||||
)
|
||||
|
||||
assert exception.type == Microsoft365HTTPResponseError
|
||||
assert (
|
||||
exception.value.args[0]
|
||||
== "[6003] Error in HTTP response from Microsoft365 - Simulated HttpResponseError"
|
||||
)
|
||||
|
||||
def test_test_connection_with_exception(self):
|
||||
with patch(
|
||||
"prowler.providers.microsoft365.microsoft365_provider.Microsoft365Provider.setup_session"
|
||||
) as mock_setup_session:
|
||||
mock_setup_session.side_effect = Exception("Simulated Exception")
|
||||
|
||||
with pytest.raises(Exception) as exception:
|
||||
Microsoft365Provider.test_connection(
|
||||
sp_env_auth=True,
|
||||
raise_on_exception=True,
|
||||
)
|
||||
|
||||
assert exception.type is Exception
|
||||
assert exception.value.args[0] == "Simulated Exception"
|
||||
|
||||
def test_test_connection_without_any_method(self):
|
||||
with pytest.raises(Microsoft365NoAuthenticationMethodError) as exception:
|
||||
Microsoft365Provider.test_connection()
|
||||
|
||||
assert exception.type == Microsoft365NoAuthenticationMethodError
|
||||
assert (
|
||||
"Microsoft365 provider requires at least one authentication method set: [--az-cli-auth | --sp-env-auth | --browser-auth]"
|
||||
in exception.value.args[0]
|
||||
)
|
||||
Reference in New Issue
Block a user