diff --git a/ui/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx b/ui/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx index b0e83b9257..7f408df977 100644 --- a/ui/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx +++ b/ui/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx @@ -34,8 +34,11 @@ export default function AddCredentialsPage({ searchParams }: Props) { {((searchParams.type === "aws" && searchParams.via === "credentials") || (searchParams.type === "gcp" && searchParams.via === "credentials") || (searchParams.type === "m365" && searchParams.via === "credentials") || - (searchParams.type === "m365" && searchParams.via === "service-principal-user") || - (searchParams.type !== "aws" && searchParams.type !== "gcp" && searchParams.type !== "m365")) && ( + (searchParams.type === "m365" && + searchParams.via === "service-principal-user") || + (searchParams.type !== "aws" && + searchParams.type !== "gcp" && + searchParams.type !== "m365")) && ( )} diff --git a/ui/app/(prowler)/providers/(set-up-provider)/update-credentials/page.tsx b/ui/app/(prowler)/providers/(set-up-provider)/update-credentials/page.tsx index 6d59149b82..8232396b06 100644 --- a/ui/app/(prowler)/providers/(set-up-provider)/update-credentials/page.tsx +++ b/ui/app/(prowler)/providers/(set-up-provider)/update-credentials/page.tsx @@ -20,7 +20,9 @@ interface Props { export default function UpdateCredentialsPage({ searchParams }: Props) { return ( <> - {(searchParams.type === "aws" || searchParams.type === "gcp" || searchParams.type === "m365") && + {(searchParams.type === "aws" || + searchParams.type === "gcp" || + searchParams.type === "m365") && !searchParams.via && ( )} diff --git a/ui/components/providers/workflow/forms/base-credentials-form.tsx b/ui/components/providers/workflow/forms/base-credentials-form.tsx index 47a3806ad7..533f2b27ee 100644 --- a/ui/components/providers/workflow/forms/base-credentials-form.tsx +++ b/ui/components/providers/workflow/forms/base-credentials-form.tsx @@ -24,10 +24,10 @@ import { AWSStaticCredentialsForm } from "./select-credentials-type/aws/credenti import { AWSRoleCredentialsForm } from "./select-credentials-type/aws/credentials-type/aws-role-credentials-form"; import { GCPDefaultCredentialsForm } from "./select-credentials-type/gcp/credentials-type"; import { GCPServiceAccountKeyForm } from "./select-credentials-type/gcp/credentials-type/gcp-service-account-key-form"; -import { AzureCredentialsForm } from "./via-credentials/azure-credentials-form"; -import { KubernetesCredentialsForm } from "./via-credentials/k8s-credentials-form"; import { M365ServicePrincipalForm } from "./select-credentials-type/m365/credentials-type"; import { M365ServicePrincipalUserForm } from "./select-credentials-type/m365/credentials-type/m365-service-principal-user-form"; +import { AzureCredentialsForm } from "./via-credentials/azure-credentials-form"; +import { KubernetesCredentialsForm } from "./via-credentials/k8s-credentials-form"; type BaseCredentialsFormProps = { providerType: ProviderType; @@ -98,16 +98,18 @@ export const BaseCredentialsForm = ({ control={form.control as unknown as Control} /> )} - {providerType === "m365" && searchParamsObj.get("via") === "service-principal-user" && ( - } - /> - )} - {providerType === "m365" && searchParamsObj.get("via") !== "service-principal-user" && ( - } - /> - )} + {providerType === "m365" && + searchParamsObj.get("via") === "service-principal-user" && ( + } + /> + )} + {providerType === "m365" && + searchParamsObj.get("via") !== "service-principal-user" && ( + } + /> + )} {providerType === "gcp" && searchParamsObj.get("via") === "service-account" && ( ; - setValue: UseFormSetValue; - externalId: string; }) => { - const credentialsType = useWatch({ - control, - name: ProviderCredentialFields.CREDENTIALS_TYPE, - defaultValue: "m365-service-principal", - }); - return ( <>
- Connect using Application/Service Principal + Application/Service Principal
- Please provide the information for your Microsoft 365 Service Principal. + Please provide the Application/Service Principal information for your + Microsoft 365 tenant.
- Authentication - - - - {credentialsType === "m365-service-principal" && ( - <> - - - - - )} - - {credentialsType === "m365-user-credentials" && ( - <> - - )} ); }; diff --git a/ui/components/providers/workflow/forms/select-credentials-type/m365/credentials-type/m365-service-principal-user-form.tsx b/ui/components/providers/workflow/forms/select-credentials-type/m365/credentials-type/m365-service-principal-user-form.tsx index ee298ce3bb..618eff6a1b 100644 --- a/ui/components/providers/workflow/forms/select-credentials-type/m365/credentials-type/m365-service-principal-user-form.tsx +++ b/ui/components/providers/workflow/forms/select-credentials-type/m365/credentials-type/m365-service-principal-user-form.tsx @@ -18,15 +18,16 @@ export const M365ServicePrincipalUserForm = ({ Service Principal + User Credentials
- Connect using Service Principal credentials combined with user authentication for PowerShell modules. + Connect using Service Principal credentials combined with user + authentication for PowerShell modules.
-

This method provides:

-
    +

    This method provides:

    +
    • Service Principal authentication for Microsoft Graph APIs
    • User credentials for PowerShell modules access
    • Complete M365 service coverage
    • @@ -34,7 +35,9 @@ export const M365ServicePrincipalUserForm = ({
- Service Principal Information + + Service Principal Information + - User Credentials for PowerShell + + User Credentials for PowerShell +
diff --git a/ui/components/providers/workflow/forms/select-credentials-type/m365/index.ts b/ui/components/providers/workflow/forms/select-credentials-type/m365/index.ts index e5283a36b2..bdf8052a45 100644 --- a/ui/components/providers/workflow/forms/select-credentials-type/m365/index.ts +++ b/ui/components/providers/workflow/forms/select-credentials-type/m365/index.ts @@ -1,3 +1,3 @@ -export { SelectViaM365 } from "./select-via-m365"; -export { RadioGroupM365ViaCredentialsTypeForm } from "./radio-group-m365-via-credentials-type-form"; export * from "./credentials-type"; +export { RadioGroupM365ViaCredentialsTypeForm } from "./radio-group-m365-via-credentials-type-form"; +export { SelectViaM365 } from "./select-via-m365"; diff --git a/ui/components/providers/workflow/forms/select-credentials-type/m365/radio-group-m365-via-credentials-type-form.tsx b/ui/components/providers/workflow/forms/select-credentials-type/m365/radio-group-m365-via-credentials-type-form.tsx index 61ecd28122..013f1768ab 100644 --- a/ui/components/providers/workflow/forms/select-credentials-type/m365/radio-group-m365-via-credentials-type-form.tsx +++ b/ui/components/providers/workflow/forms/select-credentials-type/m365/radio-group-m365-via-credentials-type-form.tsx @@ -36,7 +36,9 @@ export const RadioGroupM365ViaCredentialsTypeForm = ({ }} >
- Application Authentication + + Application Authentication +
- Service Principal + User Credentials + + Service Principal + User Credentials +
diff --git a/ui/hooks/use-credentials-form.ts b/ui/hooks/use-credentials-form.ts index fc0e89a48d..73c97c9cd8 100644 --- a/ui/hooks/use-credentials-form.ts +++ b/ui/hooks/use-credentials-form.ts @@ -9,9 +9,9 @@ import { PROVIDER_CREDENTIALS_ERROR_MAPPING } from "@/lib/error-mappings"; import { ProviderCredentialFields } from "@/lib/provider-credentials/provider-credential-fields"; import { addCredentialsFormSchema, + addCredentialsM365UserFormSchema, addCredentialsRoleFormSchema, addCredentialsServiceAccountFormSchema, - addCredentialsM365UserFormSchema, ProviderType, } from "@/types";