mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-25 11:46:40 +00:00
[management, infrastructure, idp] Simplified IdP Management - Embedded IdP (#5008)
Embed Dex as a built-in IdP to simplify self-hosting setup. Adds an embedded OIDC Identity Provider (Dex) with local user management and optional external IdP connectors (Google/GitHub/OIDC/SAML), plus device-auth flow for CLI login. Introduces instance onboarding/setup endpoints (including owner creation), field-level encryption for sensitive user data, a streamlined self-hosting provisioning script, and expanded APIs + test coverage for IdP management. more at https://github.com/netbirdio/netbird/pull/5008#issuecomment-3718987393
This commit is contained in:
56
idp/dex/web/templates/login.html
Executable file
56
idp/dex/web/templates/login.html
Executable file
@@ -0,0 +1,56 @@
|
||||
{{ template "header.html" . }}
|
||||
|
||||
<div class="nb-card">
|
||||
<h1 class="nb-heading">Sign in</h1>
|
||||
<p class="nb-subheading">Choose your login method</p>
|
||||
|
||||
{{/* First pass: render Email/Local connectors at the top */}}
|
||||
{{ range $c := .Connectors }}
|
||||
{{- $nameLower := lower $c.Name -}}
|
||||
{{- $idLower := lower $c.ID -}}
|
||||
{{- if or (contains "email" $nameLower) (contains "email" $idLower) (contains "local" $nameLower) (contains "local" $idLower) -}}
|
||||
<a href="{{ $c.URL }}" class="nb-btn-connector">
|
||||
<span class="nb-icon nb-icon-email"></span>
|
||||
<span>Continue with {{ $c.Name }}</span>
|
||||
</a>
|
||||
{{- end -}}
|
||||
{{ end }}
|
||||
|
||||
{{/* Second pass: render all other connectors */}}
|
||||
{{ range $c := .Connectors }}
|
||||
{{- $nameLower := lower $c.Name -}}
|
||||
{{- $idLower := lower $c.ID -}}
|
||||
{{- if not (or (contains "email" $nameLower) (contains "email" $idLower) (contains "local" $nameLower) (contains "local" $idLower)) -}}
|
||||
<a href="{{ $c.URL }}" class="nb-btn-connector">
|
||||
{{- $iconClass := "nb-icon-default" -}}
|
||||
{{- if or (contains "google" $nameLower) (contains "google" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-google" -}}
|
||||
{{- else if or (contains "github" $nameLower) (contains "github" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-github" -}}
|
||||
{{- else if or (contains "entra" $nameLower) (contains "entra" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-entra" -}}
|
||||
{{- else if or (contains "azure" $nameLower) (contains "azure" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-azure" -}}
|
||||
{{- else if or (contains "microsoft" $nameLower) (contains "microsoft" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-microsoft" -}}
|
||||
{{- else if or (contains "okta" $nameLower) (contains "okta" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-okta" -}}
|
||||
{{- else if or (contains "jumpcloud" $nameLower) (contains "jumpcloud" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-jumpcloud" -}}
|
||||
{{- else if or (contains "pocket" $nameLower) (contains "pocket" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-pocketid" -}}
|
||||
{{- else if or (contains "zitadel" $nameLower) (contains "zitadel" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-zitadel" -}}
|
||||
{{- else if or (contains "authentik" $nameLower) (contains "authentik" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-authentik" -}}
|
||||
{{- else if or (contains "keycloak" $nameLower) (contains "keycloak" $idLower) -}}
|
||||
{{- $iconClass = "nb-icon-keycloak" -}}
|
||||
{{- end -}}
|
||||
<span class="nb-icon {{ $iconClass }}"></span>
|
||||
<span>Continue with {{ $c.Name }}</span>
|
||||
</a>
|
||||
{{- end -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ template "footer.html" . }}
|
||||
Reference in New Issue
Block a user