
* web/config-provider-2-tenant: web: bump API Client version (#7803) events: add graph for event volume (#7639) website/docs: change links to point to our YouTube (#7794) web: bump core-js from 3.33.3 to 3.34.0 in /web (#7796) core: bump golang from 1.21.4-bookworm to 1.21.5-bookworm (#7798) web: bump the wdio group in /tests/wdio with 4 updates (#7799) web/admin: revise wizard form handling (#7331) web: bump the eslint group in /tests/wdio with 2 updates (#7783) web: bump the sentry group in /web with 2 updates (#7784) web: bump the eslint group in /web with 2 updates (#7785) web: bump chart.js from 4.4.0 to 4.4.1 in /web (#7786) website: bump @types/react from 18.2.41 to 18.2.42 in /website (#7787) website: bump react-tooltip from 5.24.0 to 5.25.0 in /website (#7788) outposts/ldap: avoid nil ptr deref in MemorySearcher (#7767)
168 lines
7.2 KiB
TypeScript
168 lines
7.2 KiB
TypeScript
import "@goauthentik/admin/applications/wizard/ak-wizard-title";
|
|
import "@goauthentik/admin/common/ak-core-group-search";
|
|
import "@goauthentik/admin/common/ak-crypto-certificate-search";
|
|
import "@goauthentik/admin/common/ak-flow-search/ak-tenanted-flow-search";
|
|
import { first } from "@goauthentik/common/utils";
|
|
import "@goauthentik/components/ak-number-input";
|
|
import "@goauthentik/components/ak-radio-input";
|
|
import "@goauthentik/components/ak-switch-input";
|
|
import "@goauthentik/components/ak-text-input";
|
|
import { WithBrandConfig } from "@goauthentik/elements/Interface/brandProvider";
|
|
import "@goauthentik/elements/forms/FormGroup";
|
|
import "@goauthentik/elements/forms/HorizontalFormElement";
|
|
|
|
import { msg } from "@lit/localize";
|
|
import { customElement } from "@lit/reactive-element/decorators/custom-element.js";
|
|
import { html, nothing } from "lit";
|
|
import { ifDefined } from "lit/directives/if-defined.js";
|
|
|
|
import { FlowsInstancesListDesignationEnum } from "@goauthentik/api";
|
|
import type { LDAPProvider } from "@goauthentik/api";
|
|
|
|
import BaseProviderPanel from "../BaseProviderPanel";
|
|
import {
|
|
bindModeOptions,
|
|
cryptoCertificateHelp,
|
|
gidStartNumberHelp,
|
|
groupHelp,
|
|
mfaSupportHelp,
|
|
searchModeOptions,
|
|
tlsServerNameHelp,
|
|
uidStartNumberHelp,
|
|
} from "./LDAPOptionsAndHelp";
|
|
|
|
@customElement("ak-application-wizard-authentication-by-ldap")
|
|
export class ApplicationWizardApplicationDetails extends WithBrandConfig(BaseProviderPanel) {
|
|
render() {
|
|
const provider = this.wizard.provider as LDAPProvider | undefined;
|
|
const errors = this.wizard.errors.provider;
|
|
|
|
return html` <ak-wizard-title>${msg("Configure LDAP Provider")}</ak-wizard-title>
|
|
<form class="pf-c-form pf-m-horizontal" @input=${this.handleChange}>
|
|
<ak-text-input
|
|
name="name"
|
|
value=${ifDefined(provider?.name)}
|
|
label=${msg("Name")}
|
|
.errorMessages=${errors?.name ?? []}
|
|
required
|
|
help=${msg("Method's display Name.")}
|
|
></ak-text-input>
|
|
|
|
<ak-form-element-horizontal
|
|
label=${msg("Bind flow")}
|
|
?required=${true}
|
|
name="authorizationFlow"
|
|
.errorMessages=${errors?.authorizationFlow ?? []}
|
|
>
|
|
<ak-tenanted-flow-search
|
|
flowType=${FlowsInstancesListDesignationEnum.Authentication}
|
|
.currentFlow=${provider?.authorizationFlow}
|
|
.tenantFlow=${this.brand.flowAuthentication}
|
|
required
|
|
></ak-tenanted-flow-search>
|
|
<p class="pf-c-form__helper-text">
|
|
${msg("Flow used for users to authenticate.")}
|
|
</p>
|
|
</ak-form-element-horizontal>
|
|
|
|
<ak-form-element-horizontal
|
|
label=${msg("Search group")}
|
|
name="searchGroup"
|
|
.errorMessages=${errors?.searchGroup ?? []}
|
|
>
|
|
<ak-core-group-search
|
|
name="searchGroup"
|
|
group=${ifDefined(provider?.searchGroup ?? nothing)}
|
|
></ak-core-group-search>
|
|
<p class="pf-c-form__helper-text">${groupHelp}</p>
|
|
</ak-form-element-horizontal>
|
|
|
|
<ak-radio-input
|
|
label=${msg("Bind mode")}
|
|
name="bindMode"
|
|
.options=${bindModeOptions}
|
|
.value=${provider?.bindMode}
|
|
help=${msg("Configure how the outpost authenticates requests.")}
|
|
>
|
|
</ak-radio-input>
|
|
|
|
<ak-radio-input
|
|
label=${msg("Search mode")}
|
|
name="searchMode"
|
|
.options=${searchModeOptions}
|
|
.value=${provider?.searchMode}
|
|
help=${msg(
|
|
"Configure how the outpost queries the core authentik server's users."
|
|
)}
|
|
>
|
|
</ak-radio-input>
|
|
|
|
<ak-switch-input
|
|
name="openInNewTab"
|
|
label=${msg("Code-based MFA Support")}
|
|
?checked=${provider?.mfaSupport ?? true}
|
|
help=${mfaSupportHelp}
|
|
>
|
|
</ak-switch-input>
|
|
|
|
<ak-form-group .expanded=${true}>
|
|
<span slot="header"> ${msg("Protocol settings")} </span>
|
|
<div slot="body" class="pf-c-form">
|
|
<ak-text-input
|
|
name="baseDn"
|
|
label=${msg("Base DN")}
|
|
required
|
|
value="${first(provider?.baseDn, "DC=ldap,DC=goauthentik,DC=io")}"
|
|
.errorMessages=${errors?.baseDn ?? []}
|
|
help=${msg(
|
|
"LDAP DN under which bind requests and search requests can be made."
|
|
)}
|
|
>
|
|
</ak-text-input>
|
|
|
|
<ak-form-element-horizontal
|
|
label=${msg("Certificate")}
|
|
name="certificate"
|
|
.errorMessages=${errors?.certificate ?? []}
|
|
>
|
|
<ak-crypto-certificate-search
|
|
certificate=${ifDefined(provider?.certificate ?? nothing)}
|
|
name="certificate"
|
|
>
|
|
</ak-crypto-certificate-search>
|
|
<p class="pf-c-form__helper-text">${cryptoCertificateHelp}</p>
|
|
</ak-form-element-horizontal>
|
|
|
|
<ak-text-input
|
|
label=${msg("TLS Server name")}
|
|
name="tlsServerName"
|
|
value="${first(provider?.tlsServerName, "")}"
|
|
.errorMessages=${errors?.tlsServerName ?? []}
|
|
help=${tlsServerNameHelp}
|
|
></ak-text-input>
|
|
|
|
<ak-number-input
|
|
label=${msg("UID start number")}
|
|
required
|
|
name="uidStartNumber"
|
|
value="${first(provider?.uidStartNumber, 2000)}"
|
|
.errorMessages=${errors?.uidStartNumber ?? []}
|
|
help=${uidStartNumberHelp}
|
|
></ak-number-input>
|
|
|
|
<ak-number-input
|
|
label=${msg("GID start number")}
|
|
required
|
|
name="gidStartNumber"
|
|
value="${first(provider?.gidStartNumber, 4000)}"
|
|
.errorMessages=${errors?.gidStartNumber ?? []}
|
|
help=${gidStartNumberHelp}
|
|
></ak-number-input>
|
|
</div>
|
|
</ak-form-group>
|
|
</form>`;
|
|
}
|
|
}
|
|
|
|
export default ApplicationWizardApplicationDetails;
|