*: rename akprox to outpost.goauthentik.io (#2266)
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
3f6f83b4b6
commit
4343246a41
|
@ -12,4 +12,8 @@ class AuthentikProviderProxyConfig(AppConfig):
|
||||||
verbose_name = "authentik Providers.Proxy"
|
verbose_name = "authentik Providers.Proxy"
|
||||||
|
|
||||||
def ready(self) -> None:
|
def ready(self) -> None:
|
||||||
|
from authentik.providers.proxy.tasks import proxy_set_defaults
|
||||||
|
|
||||||
import_module("authentik.providers.proxy.managed")
|
import_module("authentik.providers.proxy.managed")
|
||||||
|
|
||||||
|
proxy_set_defaults.delay()
|
||||||
|
|
|
@ -28,12 +28,12 @@ class ProxyDockerController(DockerController):
|
||||||
labels["traefik.enable"] = "true"
|
labels["traefik.enable"] = "true"
|
||||||
labels[
|
labels[
|
||||||
f"traefik.http.routers.{traefik_name}-router.rule"
|
f"traefik.http.routers.{traefik_name}-router.rule"
|
||||||
] = f"Host({','.join(hosts)}) && PathPrefix(`/akprox`)"
|
] = f"Host({','.join(hosts)}) && PathPrefix(`/outpost.goauthentik.io`)"
|
||||||
labels[f"traefik.http.routers.{traefik_name}-router.tls"] = "true"
|
labels[f"traefik.http.routers.{traefik_name}-router.tls"] = "true"
|
||||||
labels[f"traefik.http.routers.{traefik_name}-router.service"] = f"{traefik_name}-service"
|
labels[f"traefik.http.routers.{traefik_name}-router.service"] = f"{traefik_name}-service"
|
||||||
labels[
|
labels[
|
||||||
f"traefik.http.services.{traefik_name}-service.loadbalancer.healthcheck.path"
|
f"traefik.http.services.{traefik_name}-service.loadbalancer.healthcheck.path"
|
||||||
] = "/akprox/ping"
|
] = "/outpost.goauthentik.io/ping"
|
||||||
labels[
|
labels[
|
||||||
f"traefik.http.services.{traefik_name}-service.loadbalancer.healthcheck.port"
|
f"traefik.http.services.{traefik_name}-service.loadbalancer.healthcheck.port"
|
||||||
] = "9300"
|
] = "9300"
|
||||||
|
|
|
@ -126,7 +126,7 @@ class IngressReconciler(KubernetesObjectReconciler[V1Ingress]):
|
||||||
port=V1ServiceBackendPort(name="http"),
|
port=V1ServiceBackendPort(name="http"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
path="/akprox",
|
path="/outpost.goauthentik.io",
|
||||||
path_type="ImplementationSpecific",
|
path_type="ImplementationSpecific",
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
|
@ -119,7 +119,10 @@ class TraefikMiddlewareReconciler(KubernetesObjectReconciler[TraefikMiddleware])
|
||||||
),
|
),
|
||||||
spec=TraefikMiddlewareSpec(
|
spec=TraefikMiddlewareSpec(
|
||||||
forwardAuth=TraefikMiddlewareSpecForwardAuth(
|
forwardAuth=TraefikMiddlewareSpecForwardAuth(
|
||||||
address=f"http://{self.name}.{self.namespace}:9000/akprox/auth/traefik",
|
address=(
|
||||||
|
f"http://{self.name}.{self.namespace}:9000/"
|
||||||
|
"outpost.goauthentik.io/auth/traefik"
|
||||||
|
),
|
||||||
authResponseHeaders=[
|
authResponseHeaders=[
|
||||||
"X-authentik-username",
|
"X-authentik-username",
|
||||||
"X-authentik-groups",
|
"X-authentik-groups",
|
||||||
|
|
|
@ -27,7 +27,7 @@ def get_cookie_secret():
|
||||||
|
|
||||||
|
|
||||||
def _get_callback_url(uri: str) -> str:
|
def _get_callback_url(uri: str) -> str:
|
||||||
return urljoin(uri, "/akprox/callback")
|
return urljoin(uri, "/outpost.goauthentik.io/callback")
|
||||||
|
|
||||||
|
|
||||||
class ProxyMode(models.TextChoices):
|
class ProxyMode(models.TextChoices):
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
"""proxy provider tasks"""
|
||||||
|
from authentik.providers.proxy.models import ProxyProvider
|
||||||
|
from authentik.root.celery import CELERY_APP
|
||||||
|
|
||||||
|
|
||||||
|
@CELERY_APP.task()
|
||||||
|
def proxy_set_defaults():
|
||||||
|
"""Ensure correct defaults are set for all providers"""
|
||||||
|
for provider in ProxyProvider.objects.all():
|
||||||
|
provider.set_oauth_defaults()
|
||||||
|
provider.save()
|
|
@ -25,7 +25,7 @@ var (
|
||||||
func RunServer() {
|
func RunServer() {
|
||||||
m := mux.NewRouter()
|
m := mux.NewRouter()
|
||||||
l := log.WithField("logger", "authentik.outpost.metrics")
|
l := log.WithField("logger", "authentik.outpost.metrics")
|
||||||
m.HandleFunc("/akprox/ping", func(rw http.ResponseWriter, r *http.Request) {
|
m.HandleFunc("/outpost.goauthentik.io/ping", func(rw http.ResponseWriter, r *http.Request) {
|
||||||
rw.WriteHeader(204)
|
rw.WriteHeader(204)
|
||||||
})
|
})
|
||||||
m.Path("/metrics").Handler(promhttp.Handler())
|
m.Path("/metrics").Handler(promhttp.Handler())
|
||||||
|
|
|
@ -78,7 +78,7 @@ func NewApplication(p api.ProxyOutpostConfig, c *http.Client, cs *ak.CryptoStore
|
||||||
oauth2Config := oauth2.Config{
|
oauth2Config := oauth2.Config{
|
||||||
ClientID: *p.ClientId,
|
ClientID: *p.ClientId,
|
||||||
ClientSecret: *p.ClientSecret,
|
ClientSecret: *p.ClientSecret,
|
||||||
RedirectURL: urlJoin(p.ExternalHost, "/akprox/callback"),
|
RedirectURL: urlJoin(p.ExternalHost, "/outpost.goauthentik.io/callback"),
|
||||||
Endpoint: endpoint.Endpoint,
|
Endpoint: endpoint.Endpoint,
|
||||||
Scopes: p.ScopesToRequest,
|
Scopes: p.ScopesToRequest,
|
||||||
}
|
}
|
||||||
|
@ -145,10 +145,10 @@ func NewApplication(p api.ProxyOutpostConfig, c *http.Client, cs *ak.CryptoStore
|
||||||
mux.Use(sentryhttp.New(sentryhttp.Options{}).Handle)
|
mux.Use(sentryhttp.New(sentryhttp.Options{}).Handle)
|
||||||
|
|
||||||
// Support /start and /sign_in for backwards compatibility
|
// Support /start and /sign_in for backwards compatibility
|
||||||
mux.HandleFunc("/akprox/start", a.handleRedirect)
|
mux.HandleFunc("/outpost.goauthentik.io/start", a.handleRedirect)
|
||||||
mux.HandleFunc("/akprox/sign_in", a.handleRedirect)
|
mux.HandleFunc("/outpost.goauthentik.io/sign_in", a.handleRedirect)
|
||||||
mux.HandleFunc("/akprox/callback", a.handleCallback)
|
mux.HandleFunc("/outpost.goauthentik.io/callback", a.handleCallback)
|
||||||
mux.HandleFunc("/akprox/sign_out", a.handleSignOut)
|
mux.HandleFunc("/outpost.goauthentik.io/sign_out", a.handleSignOut)
|
||||||
switch *p.Mode {
|
switch *p.Mode {
|
||||||
case api.PROXYMODE_PROXY:
|
case api.PROXYMODE_PROXY:
|
||||||
err = a.configureProxy()
|
err = a.configureProxy()
|
||||||
|
|
|
@ -18,7 +18,7 @@ func (a *Application) ErrorPage(rw http.ResponseWriter, r *http.Request, err str
|
||||||
data := ErrorPageData{
|
data := ErrorPageData{
|
||||||
Title: "Bad Gateway",
|
Title: "Bad Gateway",
|
||||||
Message: "Error proxying to upstream server",
|
Message: "Error proxying to upstream server",
|
||||||
ProxyPrefix: "/akprox",
|
ProxyPrefix: "/outpost.goauthentik.io",
|
||||||
}
|
}
|
||||||
if claims != nil && len(err) > 0 {
|
if claims != nil && len(err) > 0 {
|
||||||
data.Message = err
|
data.Message = err
|
||||||
|
|
|
@ -12,15 +12,15 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *Application) configureForward() error {
|
func (a *Application) configureForward() error {
|
||||||
a.mux.HandleFunc("/akprox/auth", func(rw http.ResponseWriter, r *http.Request) {
|
a.mux.HandleFunc("/outpost.goauthentik.io/auth", func(rw http.ResponseWriter, r *http.Request) {
|
||||||
if _, ok := r.URL.Query()["traefik"]; ok {
|
if _, ok := r.URL.Query()["traefik"]; ok {
|
||||||
a.forwardHandleTraefik(rw, r)
|
a.forwardHandleTraefik(rw, r)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
a.forwardHandleNginx(rw, r)
|
a.forwardHandleNginx(rw, r)
|
||||||
})
|
})
|
||||||
a.mux.HandleFunc("/akprox/auth/traefik", a.forwardHandleTraefik)
|
a.mux.HandleFunc("/outpost.goauthentik.io/auth/traefik", a.forwardHandleTraefik)
|
||||||
a.mux.HandleFunc("/akprox/auth/nginx", a.forwardHandleNginx)
|
a.mux.HandleFunc("/outpost.goauthentik.io/auth/nginx", a.forwardHandleNginx)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,8 +49,8 @@ func (a *Application) forwardHandleTraefik(rw http.ResponseWriter, r *http.Reque
|
||||||
a.log.Trace("path can be accessed without authentication")
|
a.log.Trace("path can be accessed without authentication")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(r.Header.Get("X-Forwarded-Uri"), "/akprox") {
|
if strings.HasPrefix(r.Header.Get("X-Forwarded-Uri"), "/outpost.goauthentik.io") {
|
||||||
a.log.WithField("url", r.URL.String()).Trace("path begins with /akprox, allowing access")
|
a.log.WithField("url", r.URL.String()).Trace("path begins with /outpost.goauthentik.io, allowing access")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
host := ""
|
host := ""
|
||||||
|
@ -80,7 +80,7 @@ func (a *Application) forwardHandleTraefik(rw http.ResponseWriter, r *http.Reque
|
||||||
if proto != "" {
|
if proto != "" {
|
||||||
proto = proto + ":"
|
proto = proto + ":"
|
||||||
}
|
}
|
||||||
rdFinal := fmt.Sprintf("%s//%s%s", proto, host, "/akprox/start")
|
rdFinal := fmt.Sprintf("%s//%s%s", proto, host, "/outpost.goauthentik.io/start")
|
||||||
a.log.WithField("url", rdFinal).Debug("Redirecting to login")
|
a.log.WithField("url", rdFinal).Debug("Redirecting to login")
|
||||||
http.Redirect(rw, r, rdFinal, http.StatusTemporaryRedirect)
|
http.Redirect(rw, r, rdFinal, http.StatusTemporaryRedirect)
|
||||||
}
|
}
|
||||||
|
@ -119,8 +119,8 @@ func (a *Application) forwardHandleNginx(rw http.ResponseWriter, r *http.Request
|
||||||
}
|
}
|
||||||
|
|
||||||
if fwd.String() != r.URL.String() {
|
if fwd.String() != r.URL.String() {
|
||||||
if strings.HasPrefix(fwd.Path, "/akprox") {
|
if strings.HasPrefix(fwd.Path, "/outpost.goauthentik.io") {
|
||||||
a.log.WithField("url", r.URL.String()).Trace("path begins with /akprox, allowing access")
|
a.log.WithField("url", r.URL.String()).Trace("path begins with /outpost.goauthentik.io, allowing access")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ import (
|
||||||
|
|
||||||
func TestForwardHandleNginx_Single_Blank(t *testing.T) {
|
func TestForwardHandleNginx_Single_Blank(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/nginx", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/nginx", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
a.forwardHandleNginx(rr, req)
|
a.forwardHandleNginx(rr, req)
|
||||||
|
@ -22,7 +22,7 @@ func TestForwardHandleNginx_Single_Blank(t *testing.T) {
|
||||||
|
|
||||||
func TestForwardHandleNginx_Single_Skip(t *testing.T) {
|
func TestForwardHandleNginx_Single_Skip(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/nginx", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/nginx", nil)
|
||||||
req.Header.Set("X-Original-URL", "http://test.goauthentik.io/skip")
|
req.Header.Set("X-Original-URL", "http://test.goauthentik.io/skip")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
@ -33,7 +33,7 @@ func TestForwardHandleNginx_Single_Skip(t *testing.T) {
|
||||||
|
|
||||||
func TestForwardHandleNginx_Single_Headers(t *testing.T) {
|
func TestForwardHandleNginx_Single_Headers(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/nginx", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/nginx", nil)
|
||||||
req.Header.Set("X-Original-URL", "http://test.goauthentik.io/app")
|
req.Header.Set("X-Original-URL", "http://test.goauthentik.io/app")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
@ -47,7 +47,7 @@ func TestForwardHandleNginx_Single_Headers(t *testing.T) {
|
||||||
|
|
||||||
func TestForwardHandleNginx_Single_URI(t *testing.T) {
|
func TestForwardHandleNginx_Single_URI(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
req, _ := http.NewRequest("GET", "https://foo.bar/akprox/auth/nginx", nil)
|
req, _ := http.NewRequest("GET", "https://foo.bar/outpost.goauthentik.io/auth/nginx", nil)
|
||||||
req.Header.Set("X-Original-URI", "/app")
|
req.Header.Set("X-Original-URI", "/app")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
@ -61,7 +61,7 @@ func TestForwardHandleNginx_Single_URI(t *testing.T) {
|
||||||
|
|
||||||
func TestForwardHandleNginx_Single_Claims(t *testing.T) {
|
func TestForwardHandleNginx_Single_Claims(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/nginx", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/nginx", nil)
|
||||||
req.Header.Set("X-Original-URI", "/")
|
req.Header.Set("X-Original-URI", "/")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
@ -108,7 +108,7 @@ func TestForwardHandleNginx_Domain_Blank(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
a.proxyConfig.Mode = api.PROXYMODE_FORWARD_DOMAIN.Ptr()
|
a.proxyConfig.Mode = api.PROXYMODE_FORWARD_DOMAIN.Ptr()
|
||||||
a.proxyConfig.CookieDomain = api.PtrString("foo")
|
a.proxyConfig.CookieDomain = api.PtrString("foo")
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/nginx", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/nginx", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
a.forwardHandleNginx(rr, req)
|
a.forwardHandleNginx(rr, req)
|
||||||
|
@ -121,7 +121,7 @@ func TestForwardHandleNginx_Domain_Header(t *testing.T) {
|
||||||
a.proxyConfig.Mode = api.PROXYMODE_FORWARD_DOMAIN.Ptr()
|
a.proxyConfig.Mode = api.PROXYMODE_FORWARD_DOMAIN.Ptr()
|
||||||
a.proxyConfig.CookieDomain = api.PtrString("foo")
|
a.proxyConfig.CookieDomain = api.PtrString("foo")
|
||||||
a.proxyConfig.ExternalHost = "http://auth.test.goauthentik.io"
|
a.proxyConfig.ExternalHost = "http://auth.test.goauthentik.io"
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/nginx", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/nginx", nil)
|
||||||
req.Header.Set("X-Original-URL", "http://test.goauthentik.io/app")
|
req.Header.Set("X-Original-URL", "http://test.goauthentik.io/app")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
|
@ -12,7 +12,7 @@ import (
|
||||||
|
|
||||||
func TestForwardHandleTraefik_Single_Blank(t *testing.T) {
|
func TestForwardHandleTraefik_Single_Blank(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/traefik", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/traefik", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
a.forwardHandleTraefik(rr, req)
|
a.forwardHandleTraefik(rr, req)
|
||||||
|
@ -22,7 +22,7 @@ func TestForwardHandleTraefik_Single_Blank(t *testing.T) {
|
||||||
|
|
||||||
func TestForwardHandleTraefik_Single_Skip(t *testing.T) {
|
func TestForwardHandleTraefik_Single_Skip(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/traefik", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/traefik", nil)
|
||||||
req.Header.Set("X-Forwarded-Proto", "http")
|
req.Header.Set("X-Forwarded-Proto", "http")
|
||||||
req.Header.Set("X-Forwarded-Host", "test.goauthentik.io")
|
req.Header.Set("X-Forwarded-Host", "test.goauthentik.io")
|
||||||
req.Header.Set("X-Forwarded-Uri", "/skip")
|
req.Header.Set("X-Forwarded-Uri", "/skip")
|
||||||
|
@ -35,7 +35,7 @@ func TestForwardHandleTraefik_Single_Skip(t *testing.T) {
|
||||||
|
|
||||||
func TestForwardHandleTraefik_Single_Headers(t *testing.T) {
|
func TestForwardHandleTraefik_Single_Headers(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/traefik", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/traefik", nil)
|
||||||
req.Header.Set("X-Forwarded-Proto", "http")
|
req.Header.Set("X-Forwarded-Proto", "http")
|
||||||
req.Header.Set("X-Forwarded-Host", "test.goauthentik.io")
|
req.Header.Set("X-Forwarded-Host", "test.goauthentik.io")
|
||||||
req.Header.Set("X-Forwarded-Uri", "/app")
|
req.Header.Set("X-Forwarded-Uri", "/app")
|
||||||
|
@ -45,7 +45,7 @@ func TestForwardHandleTraefik_Single_Headers(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, rr.Code, http.StatusTemporaryRedirect)
|
assert.Equal(t, rr.Code, http.StatusTemporaryRedirect)
|
||||||
loc, _ := rr.Result().Location()
|
loc, _ := rr.Result().Location()
|
||||||
assert.Equal(t, loc.String(), "http://test.goauthentik.io/akprox/start")
|
assert.Equal(t, loc.String(), "http://test.goauthentik.io/outpost.goauthentik.io/start")
|
||||||
|
|
||||||
s, _ := a.sessions.Get(req, constants.SeesionName)
|
s, _ := a.sessions.Get(req, constants.SeesionName)
|
||||||
assert.Equal(t, "http://test.goauthentik.io/app", s.Values[constants.SessionRedirect])
|
assert.Equal(t, "http://test.goauthentik.io/app", s.Values[constants.SessionRedirect])
|
||||||
|
@ -53,7 +53,7 @@ func TestForwardHandleTraefik_Single_Headers(t *testing.T) {
|
||||||
|
|
||||||
func TestForwardHandleTraefik_Single_Claims(t *testing.T) {
|
func TestForwardHandleTraefik_Single_Claims(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/traefik", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/traefik", nil)
|
||||||
req.Header.Set("X-Forwarded-Proto", "http")
|
req.Header.Set("X-Forwarded-Proto", "http")
|
||||||
req.Header.Set("X-Forwarded-Host", "test.goauthentik.io")
|
req.Header.Set("X-Forwarded-Host", "test.goauthentik.io")
|
||||||
req.Header.Set("X-Forwarded-Uri", "/app")
|
req.Header.Set("X-Forwarded-Uri", "/app")
|
||||||
|
@ -102,7 +102,7 @@ func TestForwardHandleTraefik_Domain_Blank(t *testing.T) {
|
||||||
a := newTestApplication()
|
a := newTestApplication()
|
||||||
a.proxyConfig.Mode = api.PROXYMODE_FORWARD_DOMAIN.Ptr()
|
a.proxyConfig.Mode = api.PROXYMODE_FORWARD_DOMAIN.Ptr()
|
||||||
a.proxyConfig.CookieDomain = api.PtrString("foo")
|
a.proxyConfig.CookieDomain = api.PtrString("foo")
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/traefik", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/traefik", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
a.forwardHandleTraefik(rr, req)
|
a.forwardHandleTraefik(rr, req)
|
||||||
|
@ -115,7 +115,7 @@ func TestForwardHandleTraefik_Domain_Header(t *testing.T) {
|
||||||
a.proxyConfig.Mode = api.PROXYMODE_FORWARD_DOMAIN.Ptr()
|
a.proxyConfig.Mode = api.PROXYMODE_FORWARD_DOMAIN.Ptr()
|
||||||
a.proxyConfig.CookieDomain = api.PtrString("foo")
|
a.proxyConfig.CookieDomain = api.PtrString("foo")
|
||||||
a.proxyConfig.ExternalHost = "http://auth.test.goauthentik.io"
|
a.proxyConfig.ExternalHost = "http://auth.test.goauthentik.io"
|
||||||
req, _ := http.NewRequest("GET", "/akprox/auth/traefik", nil)
|
req, _ := http.NewRequest("GET", "/outpost.goauthentik.io/auth/traefik", nil)
|
||||||
req.Header.Set("X-Forwarded-Proto", "http")
|
req.Header.Set("X-Forwarded-Proto", "http")
|
||||||
req.Header.Set("X-Forwarded-Host", "test.goauthentik.io")
|
req.Header.Set("X-Forwarded-Host", "test.goauthentik.io")
|
||||||
req.Header.Set("X-Forwarded-Uri", "/app")
|
req.Header.Set("X-Forwarded-Uri", "/app")
|
||||||
|
@ -125,7 +125,7 @@ func TestForwardHandleTraefik_Domain_Header(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, http.StatusTemporaryRedirect, rr.Code)
|
assert.Equal(t, http.StatusTemporaryRedirect, rr.Code)
|
||||||
loc, _ := rr.Result().Location()
|
loc, _ := rr.Result().Location()
|
||||||
assert.Equal(t, "http://auth.test.goauthentik.io/akprox/start", loc.String())
|
assert.Equal(t, "http://auth.test.goauthentik.io/outpost.goauthentik.io/start", loc.String())
|
||||||
|
|
||||||
s, _ := a.sessions.Get(req, constants.SeesionName)
|
s, _ := a.sessions.Get(req, constants.SeesionName)
|
||||||
assert.Equal(t, "http://test.goauthentik.io/app", s.Values[constants.SessionRedirect])
|
assert.Equal(t, "http://test.goauthentik.io/app", s.Values[constants.SessionRedirect])
|
||||||
|
|
|
@ -42,7 +42,7 @@ func (a *Application) redirectToStart(rw http.ResponseWriter, r *http.Request) {
|
||||||
a.log.WithError(err).Warning("failed to save session before redirect")
|
a.log.WithError(err).Warning("failed to save session before redirect")
|
||||||
}
|
}
|
||||||
|
|
||||||
authUrl := urlJoin(a.proxyConfig.ExternalHost, "/akprox/start")
|
authUrl := urlJoin(a.proxyConfig.ExternalHost, "/outpost.goauthentik.io/start")
|
||||||
http.Redirect(rw, r, authUrl, http.StatusFound)
|
http.Redirect(rw, r, authUrl, http.StatusFound)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ func TestRedirectToStart_Proxy(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, http.StatusFound, rr.Code)
|
assert.Equal(t, http.StatusFound, rr.Code)
|
||||||
loc, _ := rr.Result().Location()
|
loc, _ := rr.Result().Location()
|
||||||
assert.Equal(t, "https://test.goauthentik.io/akprox/start", loc.String())
|
assert.Equal(t, "https://test.goauthentik.io/outpost.goauthentik.io/start", loc.String())
|
||||||
|
|
||||||
s, _ := a.sessions.Get(req, constants.SeesionName)
|
s, _ := a.sessions.Get(req, constants.SeesionName)
|
||||||
assert.Equal(t, "https://test.goauthentik.io/foo/bar/baz", s.Values[constants.SessionRedirect])
|
assert.Equal(t, "https://test.goauthentik.io/foo/bar/baz", s.Values[constants.SessionRedirect])
|
||||||
|
@ -38,7 +38,7 @@ func TestRedirectToStart_Forward(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, http.StatusFound, rr.Code)
|
assert.Equal(t, http.StatusFound, rr.Code)
|
||||||
loc, _ := rr.Result().Location()
|
loc, _ := rr.Result().Location()
|
||||||
assert.Equal(t, "https://test.goauthentik.io/akprox/start", loc.String())
|
assert.Equal(t, "https://test.goauthentik.io/outpost.goauthentik.io/start", loc.String())
|
||||||
|
|
||||||
s, _ := a.sessions.Get(req, constants.SeesionName)
|
s, _ := a.sessions.Get(req, constants.SeesionName)
|
||||||
assert.Equal(t, "https://test.goauthentik.io/foo/bar/baz", s.Values[constants.SessionRedirect])
|
assert.Equal(t, "https://test.goauthentik.io/foo/bar/baz", s.Values[constants.SessionRedirect])
|
||||||
|
@ -56,7 +56,7 @@ func TestRedirectToStart_Forward_Domain_Invalid(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, http.StatusFound, rr.Code)
|
assert.Equal(t, http.StatusFound, rr.Code)
|
||||||
loc, _ := rr.Result().Location()
|
loc, _ := rr.Result().Location()
|
||||||
assert.Equal(t, "https://test.goauthentik.io/akprox/start", loc.String())
|
assert.Equal(t, "https://test.goauthentik.io/outpost.goauthentik.io/start", loc.String())
|
||||||
|
|
||||||
s, _ := a.sessions.Get(req, constants.SeesionName)
|
s, _ := a.sessions.Get(req, constants.SeesionName)
|
||||||
assert.Equal(t, "https://test.goauthentik.io", s.Values[constants.SessionRedirect])
|
assert.Equal(t, "https://test.goauthentik.io", s.Values[constants.SessionRedirect])
|
||||||
|
@ -74,7 +74,7 @@ func TestRedirectToStart_Forward_Domain(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, http.StatusFound, rr.Code)
|
assert.Equal(t, http.StatusFound, rr.Code)
|
||||||
loc, _ := rr.Result().Location()
|
loc, _ := rr.Result().Location()
|
||||||
assert.Equal(t, "https://test.goauthentik.io/akprox/start", loc.String())
|
assert.Equal(t, "https://test.goauthentik.io/outpost.goauthentik.io/start", loc.String())
|
||||||
|
|
||||||
s, _ := a.sessions.Get(req, constants.SeesionName)
|
s, _ := a.sessions.Get(req, constants.SeesionName)
|
||||||
assert.Equal(t, "https://test.goauthentik.io", s.Values[constants.SessionRedirect])
|
assert.Equal(t, "https://test.goauthentik.io", s.Values[constants.SessionRedirect])
|
||||||
|
|
|
@ -32,7 +32,7 @@ func (ps *ProxyServer) HandlePing(rw http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
func (ps *ProxyServer) HandleStatic(rw http.ResponseWriter, r *http.Request) {
|
func (ps *ProxyServer) HandleStatic(rw http.ResponseWriter, r *http.Request) {
|
||||||
before := time.Now()
|
before := time.Now()
|
||||||
web.DisableIndex(http.StripPrefix("/akprox/static/dist", staticWeb.StaticHandler)).ServeHTTP(rw, r)
|
web.DisableIndex(http.StripPrefix("/outpost.goauthentik.io/static/dist", staticWeb.StaticHandler)).ServeHTTP(rw, r)
|
||||||
after := time.Since(before)
|
after := time.Since(before)
|
||||||
metrics.Requests.With(prometheus.Labels{
|
metrics.Requests.With(prometheus.Labels{
|
||||||
"outpost_name": ps.akAPI.Outpost.Name,
|
"outpost_name": ps.akAPI.Outpost.Name,
|
||||||
|
@ -90,11 +90,11 @@ func (ps *ProxyServer) lookupApp(r *http.Request) (*application.Application, str
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ps *ProxyServer) Handle(rw http.ResponseWriter, r *http.Request) {
|
func (ps *ProxyServer) Handle(rw http.ResponseWriter, r *http.Request) {
|
||||||
if strings.HasPrefix(r.URL.Path, "/akprox/static") {
|
if strings.HasPrefix(r.URL.Path, "/outpost.goauthentik.io/static") {
|
||||||
ps.HandleStatic(rw, r)
|
ps.HandleStatic(rw, r)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(r.URL.Path, "/akprox/ping") {
|
if strings.HasPrefix(r.URL.Path, "/outpost.goauthentik.io/ping") {
|
||||||
ps.HandlePing(rw, r)
|
ps.HandlePing(rw, r)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ var (
|
||||||
func RunServer() {
|
func RunServer() {
|
||||||
m := mux.NewRouter()
|
m := mux.NewRouter()
|
||||||
l := log.WithField("logger", "authentik.outpost.metrics")
|
l := log.WithField("logger", "authentik.outpost.metrics")
|
||||||
m.HandleFunc("/akprox/ping", func(rw http.ResponseWriter, r *http.Request) {
|
m.HandleFunc("/outpost.goauthentik.io/ping", func(rw http.ResponseWriter, r *http.Request) {
|
||||||
rw.WriteHeader(204)
|
rw.WriteHeader(204)
|
||||||
})
|
})
|
||||||
m.Path("/metrics").Handler(promhttp.Handler())
|
m.Path("/metrics").Handler(promhttp.Handler())
|
||||||
|
|
|
@ -64,8 +64,8 @@ func NewProxyServer(ac *ak.APIController, portOffset int) *ProxyServer {
|
||||||
akAPI: ac,
|
akAPI: ac,
|
||||||
defaultCert: defaultCert,
|
defaultCert: defaultCert,
|
||||||
}
|
}
|
||||||
globalMux.PathPrefix("/akprox/static").HandlerFunc(s.HandleStatic)
|
globalMux.PathPrefix("/outpost.goauthentik.io/static").HandlerFunc(s.HandleStatic)
|
||||||
globalMux.Path("/akprox/ping").HandlerFunc(s.HandlePing)
|
globalMux.Path("/outpost.goauthentik.io/ping").HandlerFunc(s.HandlePing)
|
||||||
rootMux.PathPrefix("/").HandlerFunc(s.Handle)
|
rootMux.PathPrefix("/").HandlerFunc(s.Handle)
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||||
<title>{{.Title}}</title>
|
<title>{{.Title}}</title>
|
||||||
<link rel="shortcut icon" type="image/png" href="/akprox/static/dist/assets/icons/icon.png">
|
<link rel="shortcut icon" type="image/png" href="/outpost.goauthentik.io/static/dist/assets/icons/icon.png">
|
||||||
<link rel="stylesheet" type="text/css" href="/akprox/static/dist/patternfly.min.css">
|
<link rel="stylesheet" type="text/css" href="/outpost.goauthentik.io/static/dist/patternfly.min.css">
|
||||||
<link rel="stylesheet" type="text/css" href="/akprox/static/dist/authentik.css">
|
<link rel="stylesheet" type="text/css" href="/outpost.goauthentik.io/static/dist/authentik.css">
|
||||||
<style>
|
<style>
|
||||||
.pf-c-background-image::before {
|
.pf-c-background-image::before {
|
||||||
--ak-flow-background: url("/akprox/static/dist/assets/images/flow_background.jpg");
|
--ak-flow-background: url("/outpost.goauthentik.io/static/dist/assets/images/flow_background.jpg");
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
<div class="ak-login-container">
|
<div class="ak-login-container">
|
||||||
<header class="pf-c-login__header">
|
<header class="pf-c-login__header">
|
||||||
<div class="pf-c-brand ak-brand">
|
<div class="pf-c-brand ak-brand">
|
||||||
<img src="/akprox/static/dist/assets/icons/icon_left_brand.svg" alt="authentik icon" />
|
<img src="/outpost.goauthentik.io/static/dist/assets/icons/icon_left_brand.svg" alt="authentik icon" />
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<main class="pf-c-login__main">
|
<main class="pf-c-login__main">
|
||||||
|
|
|
@ -28,7 +28,7 @@ func (ws *WebServer) configureProxy() {
|
||||||
rp := &httputil.ReverseProxy{Director: director}
|
rp := &httputil.ReverseProxy{Director: director}
|
||||||
rp.ErrorHandler = ws.proxyErrorHandler
|
rp.ErrorHandler = ws.proxyErrorHandler
|
||||||
rp.ModifyResponse = ws.proxyModifyResponse
|
rp.ModifyResponse = ws.proxyModifyResponse
|
||||||
ws.m.PathPrefix("/akprox").HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
|
ws.m.PathPrefix("/outpost.goauthentik.io").HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
|
||||||
if ws.ProxyServer != nil {
|
if ws.ProxyServer != nil {
|
||||||
before := time.Now()
|
before := time.Now()
|
||||||
ws.ProxyServer.Handle(rw, r)
|
ws.ProxyServer.Handle(rw, r)
|
||||||
|
|
|
@ -19,7 +19,7 @@ ENV GIT_BUILD_HASH=$GIT_BUILD_HASH
|
||||||
|
|
||||||
COPY --from=builder /go/ldap /
|
COPY --from=builder /go/ldap /
|
||||||
|
|
||||||
HEALTHCHECK CMD [ "wget", "--spider", "http://localhost:9300/akprox/ping" ]
|
HEALTHCHECK CMD [ "wget", "--spider", "http://localhost:9300/outpost.goauthentik.io/ping" ]
|
||||||
|
|
||||||
EXPOSE 3389 6636 9300
|
EXPOSE 3389 6636 9300
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ COPY --from=web-builder /static/security.txt /web/security.txt
|
||||||
COPY --from=web-builder /static/dist/ /web/dist/
|
COPY --from=web-builder /static/dist/ /web/dist/
|
||||||
COPY --from=web-builder /static/authentik/ /web/authentik/
|
COPY --from=web-builder /static/authentik/ /web/authentik/
|
||||||
|
|
||||||
HEALTHCHECK CMD [ "wget", "--spider", "http://localhost:9300/akprox/ping" ]
|
HEALTHCHECK CMD [ "wget", "--spider", "http://localhost:9300/outpost.goauthentik.io/ping" ]
|
||||||
|
|
||||||
EXPOSE 9000 9300 9443
|
EXPOSE 9000 9300 9443
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ class TestProviderProxy(SeleniumTestCase):
|
||||||
self.assertIn(f"X-Authentik-Username: {self.user.username}", full_body_text)
|
self.assertIn(f"X-Authentik-Username: {self.user.username}", full_body_text)
|
||||||
self.assertIn("X-Foo: bar", full_body_text)
|
self.assertIn("X-Foo: bar", full_body_text)
|
||||||
|
|
||||||
self.driver.get("http://localhost:9000/akprox/sign_out")
|
self.driver.get("http://localhost:9000/outpost.goauthentik.io/sign_out")
|
||||||
sleep(2)
|
sleep(2)
|
||||||
full_body_text = self.driver.find_element(By.CSS_SELECTOR, ".pf-c-title.pf-m-3xl").text
|
full_body_text = self.driver.find_element(By.CSS_SELECTOR, ".pf-c-title.pf-m-3xl").text
|
||||||
self.assertIn("You've logged out of proxy.", full_body_text)
|
self.assertIn("You've logged out of proxy.", full_body_text)
|
||||||
|
|
|
@ -13,7 +13,7 @@ msgstr ""
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Plural-Forms: \n"
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "#/identity/users/{0}"
|
#~ msgid "#/identity/users/{0}"
|
||||||
#~ msgstr "#/identity/users/{0}"
|
#~ msgstr "#/identity/users/{0}"
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ msgstr "About applications"
|
||||||
msgid "Access Key"
|
msgid "Access Key"
|
||||||
msgstr "Access Key"
|
msgstr "Access Key"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Access code validity"
|
#~ msgid "Access code validity"
|
||||||
#~ msgstr "Access code validity"
|
#~ msgstr "Access code validity"
|
||||||
|
|
||||||
|
@ -461,7 +461,7 @@ msgstr "Attributes"
|
||||||
msgid "Audience"
|
msgid "Audience"
|
||||||
msgstr "Audience"
|
msgstr "Audience"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Auth Type"
|
#~ msgid "Auth Type"
|
||||||
#~ msgstr "Auth Type"
|
#~ msgstr "Auth Type"
|
||||||
|
|
||||||
|
@ -504,7 +504,7 @@ msgstr "Authenticator Attachment"
|
||||||
msgid "Authorization"
|
msgid "Authorization"
|
||||||
msgstr "Authorization"
|
msgstr "Authorization"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Authorization Code"
|
#~ msgid "Authorization Code"
|
||||||
#~ msgstr "Authorization Code"
|
#~ msgstr "Authorization Code"
|
||||||
|
|
||||||
|
@ -656,7 +656,7 @@ msgstr "Browser"
|
||||||
msgid "Build hash:"
|
msgid "Build hash:"
|
||||||
msgstr "Build hash:"
|
msgstr "Build hash:"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Build hash: {0}"
|
#~ msgid "Build hash: {0}"
|
||||||
#~ msgstr "Build hash: {0}"
|
#~ msgstr "Build hash: {0}"
|
||||||
|
|
||||||
|
@ -733,7 +733,7 @@ msgstr "Certificate Subject"
|
||||||
msgid "Certificate used to sign outgoing Responses going to the Service Provider."
|
msgid "Certificate used to sign outgoing Responses going to the Service Provider."
|
||||||
msgstr "Certificate used to sign outgoing Responses going to the Service Provider."
|
msgstr "Certificate used to sign outgoing Responses going to the Service Provider."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Certificate-Key Pair"
|
#~ msgid "Certificate-Key Pair"
|
||||||
#~ msgstr "Certificate-Key Pair"
|
#~ msgstr "Certificate-Key Pair"
|
||||||
|
|
||||||
|
@ -816,7 +816,7 @@ msgstr "Check the IP of the Kubernetes service, or"
|
||||||
msgid "Check the logs"
|
msgid "Check the logs"
|
||||||
msgstr "Check the logs"
|
msgstr "Check the logs"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Check your Emails for a password reset link."
|
#~ msgid "Check your Emails for a password reset link."
|
||||||
#~ msgstr "Check your Emails for a password reset link."
|
#~ msgstr "Check your Emails for a password reset link."
|
||||||
|
|
||||||
|
@ -951,11 +951,11 @@ msgstr "Configuration flow"
|
||||||
msgid "Configuration stage"
|
msgid "Configuration stage"
|
||||||
msgstr "Configuration stage"
|
msgstr "Configuration stage"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Configure WebAuthn"
|
#~ msgid "Configure WebAuthn"
|
||||||
#~ msgstr "Configure WebAuthn"
|
#~ msgstr "Configure WebAuthn"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Configure how long access codes are valid for."
|
#~ msgid "Configure how long access codes are valid for."
|
||||||
#~ msgstr "Configure how long access codes are valid for."
|
#~ msgstr "Configure how long access codes are valid for."
|
||||||
|
|
||||||
|
@ -987,8 +987,8 @@ msgstr "Configure how the issuer field of the ID Token should be filled."
|
||||||
msgid "Configure how the outpost queries the core authentik server's users."
|
msgid "Configure how the outpost queries the core authentik server's users."
|
||||||
msgstr "Configure how the outpost queries the core authentik server's users."
|
msgstr "Configure how the outpost queries the core authentik server's users."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Configure settings relevant to your user profile."
|
#~ msgid "Configure settings relevant to your user profile."
|
||||||
#~ msgstr "Configure settings relevant to your user profile."
|
#~ msgstr "Configure settings relevant to your user profile."
|
||||||
|
|
||||||
|
@ -1110,7 +1110,7 @@ msgstr "Cookie domain"
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copy"
|
msgstr "Copy"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Copy Key"
|
#~ msgid "Copy Key"
|
||||||
#~ msgstr "Copy Key"
|
#~ msgstr "Copy Key"
|
||||||
|
|
||||||
|
@ -1293,7 +1293,7 @@ msgstr "Create {0}"
|
||||||
msgid "Created by"
|
msgid "Created by"
|
||||||
msgstr "Created by"
|
msgstr "Created by"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Created {0}"
|
#~ msgid "Created {0}"
|
||||||
#~ msgstr "Created {0}"
|
#~ msgstr "Created {0}"
|
||||||
|
|
||||||
|
@ -1303,7 +1303,7 @@ msgstr "Created by"
|
||||||
msgid "Creation Date"
|
msgid "Creation Date"
|
||||||
msgstr "Creation Date"
|
msgstr "Creation Date"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Current plan cntext"
|
#~ msgid "Current plan cntext"
|
||||||
#~ msgstr "Current plan cntext"
|
#~ msgstr "Current plan cntext"
|
||||||
|
|
||||||
|
@ -1398,24 +1398,24 @@ msgstr "Define how notifications are sent to users, like Email or Webhook."
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Delete"
|
msgstr "Delete"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Authorization Code"
|
#~ msgid "Delete Authorization Code"
|
||||||
#~ msgstr "Delete Authorization Code"
|
#~ msgstr "Delete Authorization Code"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Binding"
|
#~ msgid "Delete Binding"
|
||||||
#~ msgstr "Delete Binding"
|
#~ msgstr "Delete Binding"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Consent"
|
#~ msgid "Delete Consent"
|
||||||
#~ msgstr "Delete Consent"
|
#~ msgstr "Delete Consent"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Refresh Code"
|
#~ msgid "Delete Refresh Code"
|
||||||
#~ msgstr "Delete Refresh Code"
|
#~ msgstr "Delete Refresh Code"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Session"
|
#~ msgid "Delete Session"
|
||||||
#~ msgstr "Delete Session"
|
#~ msgstr "Delete Session"
|
||||||
|
|
||||||
|
@ -1496,7 +1496,7 @@ msgstr "Device classes"
|
||||||
msgid "Device classes which can be used to authenticate."
|
msgid "Device classes which can be used to authenticate."
|
||||||
msgstr "Device classes which can be used to authenticate."
|
msgstr "Device classes which can be used to authenticate."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Device name"
|
#~ msgid "Device name"
|
||||||
#~ msgstr "Device name"
|
#~ msgstr "Device name"
|
||||||
|
|
||||||
|
@ -1525,24 +1525,24 @@ msgstr "Direct querying, always returns the latest data, but slower than cached
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Directory"
|
msgstr "Directory"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable"
|
#~ msgid "Disable"
|
||||||
#~ msgstr "Disable"
|
#~ msgstr "Disable"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable Duo authenticator"
|
#~ msgid "Disable Duo authenticator"
|
||||||
#~ msgstr "Disable Duo authenticator"
|
#~ msgstr "Disable Duo authenticator"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable SMS authenticator"
|
#~ msgid "Disable SMS authenticator"
|
||||||
#~ msgstr "Disable SMS authenticator"
|
#~ msgstr "Disable SMS authenticator"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable Static Tokens"
|
#~ msgid "Disable Static Tokens"
|
||||||
#~ msgstr "Disable Static Tokens"
|
#~ msgstr "Disable Static Tokens"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable Time-based OTP"
|
#~ msgid "Disable Time-based OTP"
|
||||||
#~ msgstr "Disable Time-based OTP"
|
#~ msgstr "Disable Time-based OTP"
|
||||||
|
|
||||||
|
@ -1592,7 +1592,7 @@ msgstr "Due to protocol limitations, this certificate is only used when the outp
|
||||||
msgid "Dummy stage used for testing. Shows a simple continue button and always passes."
|
msgid "Dummy stage used for testing. Shows a simple continue button and always passes."
|
||||||
msgstr "Dummy stage used for testing. Shows a simple continue button and always passes."
|
msgstr "Dummy stage used for testing. Shows a simple continue button and always passes."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Duo"
|
#~ msgid "Duo"
|
||||||
#~ msgstr "Duo"
|
#~ msgstr "Duo"
|
||||||
|
|
||||||
|
@ -1702,16 +1702,16 @@ msgstr "Email: Text field with Email type."
|
||||||
msgid "Embedded outpost is not configured correctly."
|
msgid "Embedded outpost is not configured correctly."
|
||||||
msgstr "Embedded outpost is not configured correctly."
|
msgstr "Embedded outpost is not configured correctly."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable"
|
#~ msgid "Enable"
|
||||||
#~ msgstr "Enable"
|
#~ msgstr "Enable"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable Duo authenticator"
|
#~ msgid "Enable Duo authenticator"
|
||||||
#~ msgstr "Enable Duo authenticator"
|
#~ msgstr "Enable Duo authenticator"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable SMS authenticator"
|
#~ msgid "Enable SMS authenticator"
|
||||||
#~ msgstr "Enable SMS authenticator"
|
#~ msgstr "Enable SMS authenticator"
|
||||||
|
|
||||||
|
@ -1719,11 +1719,11 @@ msgstr "Embedded outpost is not configured correctly."
|
||||||
msgid "Enable StartTLS"
|
msgid "Enable StartTLS"
|
||||||
msgstr "Enable StartTLS"
|
msgstr "Enable StartTLS"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable Static Tokens"
|
#~ msgid "Enable Static Tokens"
|
||||||
#~ msgstr "Enable Static Tokens"
|
#~ msgstr "Enable Static Tokens"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable TOTP"
|
#~ msgid "Enable TOTP"
|
||||||
#~ msgstr "Enable TOTP"
|
#~ msgstr "Enable TOTP"
|
||||||
|
|
||||||
|
@ -1787,7 +1787,7 @@ msgstr "Error when validating assertion on server: {err}"
|
||||||
msgid "Error: unsupported source settings: {0}"
|
msgid "Error: unsupported source settings: {0}"
|
||||||
msgstr "Error: unsupported source settings: {0}"
|
msgstr "Error: unsupported source settings: {0}"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Error: unsupported stage settings: {0}"
|
#~ msgid "Error: unsupported stage settings: {0}"
|
||||||
#~ msgstr "Error: unsupported stage settings: {0}"
|
#~ msgstr "Error: unsupported stage settings: {0}"
|
||||||
|
|
||||||
|
@ -1833,7 +1833,7 @@ msgstr "Everything is ok."
|
||||||
msgid "Exception"
|
msgid "Exception"
|
||||||
msgstr "Exception"
|
msgstr "Exception"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Execute"
|
#~ msgid "Execute"
|
||||||
#~ msgstr "Execute"
|
#~ msgstr "Execute"
|
||||||
|
|
||||||
|
@ -1841,7 +1841,7 @@ msgstr "Exception"
|
||||||
msgid "Execute flow"
|
msgid "Execute flow"
|
||||||
msgstr "Execute flow"
|
msgstr "Execute flow"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Execute with inspector"
|
#~ msgid "Execute with inspector"
|
||||||
#~ msgstr "Execute with inspector"
|
#~ msgstr "Execute with inspector"
|
||||||
|
|
||||||
|
@ -2013,7 +2013,7 @@ msgstr "Field of the user object this value is written to."
|
||||||
msgid "Field which contains a unique Identifier."
|
msgid "Field which contains a unique Identifier."
|
||||||
msgstr "Field which contains a unique Identifier."
|
msgstr "Field which contains a unique Identifier."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Field which contains members of a group."
|
#~ msgid "Field which contains members of a group."
|
||||||
#~ msgstr "Field which contains members of a group."
|
#~ msgstr "Field which contains members of a group."
|
||||||
|
|
||||||
|
@ -2210,7 +2210,7 @@ msgstr "Generic OpenID Connect"
|
||||||
msgid "Get this value from https://console.twilio.com"
|
msgid "Get this value from https://console.twilio.com"
|
||||||
msgstr "Get this value from https://console.twilio.com"
|
msgstr "Get this value from https://console.twilio.com"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Go to admin interface"
|
#~ msgid "Go to admin interface"
|
||||||
#~ msgstr "Go to admin interface"
|
#~ msgstr "Go to admin interface"
|
||||||
|
|
||||||
|
@ -2222,7 +2222,7 @@ msgstr "Go to next page"
|
||||||
msgid "Go to previous page"
|
msgid "Go to previous page"
|
||||||
msgstr "Go to previous page"
|
msgstr "Go to previous page"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Go to user interface"
|
#~ msgid "Go to user interface"
|
||||||
#~ msgstr "Go to user interface"
|
#~ msgstr "Go to user interface"
|
||||||
|
|
||||||
|
@ -2526,7 +2526,7 @@ msgstr "Invalidation"
|
||||||
msgid "Invalidation flow"
|
msgid "Invalidation flow"
|
||||||
msgstr "Invalidation flow"
|
msgstr "Invalidation flow"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Invitation"
|
#~ msgid "Invitation"
|
||||||
#~ msgstr "Invitation"
|
#~ msgstr "Invitation"
|
||||||
|
|
||||||
|
@ -2648,7 +2648,7 @@ msgstr "Launch URL"
|
||||||
msgid "Let the user identify themselves with their username or Email address."
|
msgid "Let the user identify themselves with their username or Email address."
|
||||||
msgstr "Let the user identify themselves with their username or Email address."
|
msgstr "Let the user identify themselves with their username or Email address."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Library"
|
#~ msgid "Library"
|
||||||
#~ msgstr "Library"
|
#~ msgstr "Library"
|
||||||
|
|
||||||
|
@ -2952,7 +2952,7 @@ msgstr "Model deleted"
|
||||||
msgid "Model updated"
|
msgid "Model updated"
|
||||||
msgstr "Model updated"
|
msgstr "Model updated"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Monitor"
|
#~ msgid "Monitor"
|
||||||
#~ msgstr "Monitor"
|
#~ msgstr "Monitor"
|
||||||
|
|
||||||
|
@ -3241,7 +3241,7 @@ msgstr "Notification Rules"
|
||||||
msgid "Notification Transports"
|
msgid "Notification Transports"
|
||||||
msgstr "Notification Transports"
|
msgstr "Notification Transports"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Notification rule"
|
#~ msgid "Notification rule"
|
||||||
#~ msgstr "Notification rule"
|
#~ msgstr "Notification rule"
|
||||||
|
|
||||||
|
@ -3261,7 +3261,7 @@ msgstr "Notification transport(s)"
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notifications"
|
msgstr "Notifications"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Notifications Transport"
|
#~ msgid "Notifications Transport"
|
||||||
#~ msgstr "Notifications Transport"
|
#~ msgstr "Notifications Transport"
|
||||||
|
|
||||||
|
@ -3324,7 +3324,7 @@ msgstr "Only send notification once, for example when sending a webhook into a c
|
||||||
msgid "Open API Browser"
|
msgid "Open API Browser"
|
||||||
msgstr "Open API Browser"
|
msgstr "Open API Browser"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Open application"
|
#~ msgid "Open application"
|
||||||
#~ msgstr "Open application"
|
#~ msgstr "Open application"
|
||||||
|
|
||||||
|
@ -3398,7 +3398,7 @@ msgstr "Other global settings"
|
||||||
msgid "Outdated outposts"
|
msgid "Outdated outposts"
|
||||||
msgstr "Outdated outposts"
|
msgstr "Outdated outposts"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Outpost"
|
#~ msgid "Outpost"
|
||||||
#~ msgstr "Outpost"
|
#~ msgstr "Outpost"
|
||||||
|
|
||||||
|
@ -3410,11 +3410,11 @@ msgstr "Outpost Deployment Info"
|
||||||
msgid "Outpost Integrations"
|
msgid "Outpost Integrations"
|
||||||
msgstr "Outpost Integrations"
|
msgstr "Outpost Integrations"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Outpost Service-connection"
|
#~ msgid "Outpost Service-connection"
|
||||||
#~ msgstr "Outpost Service-connection"
|
#~ msgstr "Outpost Service-connection"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Outpost integration"
|
#~ msgid "Outpost integration"
|
||||||
#~ msgstr "Outpost integration"
|
#~ msgstr "Outpost integration"
|
||||||
|
|
||||||
|
@ -3494,7 +3494,7 @@ msgstr "Password set"
|
||||||
msgid "Password stage"
|
msgid "Password stage"
|
||||||
msgstr "Password stage"
|
msgstr "Password stage"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Password, 2FA, etc"
|
#~ msgid "Password, 2FA, etc"
|
||||||
#~ msgstr "Password, 2FA, etc"
|
#~ msgstr "Password, 2FA, etc"
|
||||||
|
|
||||||
|
@ -3571,7 +3571,7 @@ msgstr "Policy / User / Group"
|
||||||
msgid "Policy Bindings"
|
msgid "Policy Bindings"
|
||||||
msgstr "Policy Bindings"
|
msgstr "Policy Bindings"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Policy binding"
|
#~ msgid "Policy binding"
|
||||||
#~ msgstr "Policy binding"
|
#~ msgstr "Policy binding"
|
||||||
|
|
||||||
|
@ -3649,7 +3649,7 @@ msgstr "Private key, acquired from https://www.google.com/recaptcha/intro/v3.htm
|
||||||
msgid "Profile URL"
|
msgid "Profile URL"
|
||||||
msgstr "Profile URL"
|
msgstr "Profile URL"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Prompt"
|
#~ msgid "Prompt"
|
||||||
#~ msgstr "Prompt"
|
#~ msgstr "Prompt"
|
||||||
|
|
||||||
|
@ -3666,7 +3666,7 @@ msgstr "Prompt(s)"
|
||||||
msgid "Prompts"
|
msgid "Prompts"
|
||||||
msgstr "Prompts"
|
msgstr "Prompts"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Property Mapping"
|
#~ msgid "Property Mapping"
|
||||||
#~ msgstr "Property Mapping"
|
#~ msgstr "Property Mapping"
|
||||||
|
|
||||||
|
@ -3726,7 +3726,7 @@ msgstr "Provider"
|
||||||
msgid "Provider Type"
|
msgid "Provider Type"
|
||||||
msgstr "Provider Type"
|
msgstr "Provider Type"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Provider type"
|
#~ msgid "Provider type"
|
||||||
#~ msgstr "Provider type"
|
#~ msgstr "Provider type"
|
||||||
|
|
||||||
|
@ -3863,7 +3863,7 @@ msgstr "Redirect binding"
|
||||||
msgid "Refresh"
|
msgid "Refresh"
|
||||||
msgstr "Refresh"
|
msgstr "Refresh"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Refresh Code"
|
#~ msgid "Refresh Code"
|
||||||
#~ msgstr "Refresh Code"
|
#~ msgstr "Refresh Code"
|
||||||
|
|
||||||
|
@ -3977,7 +3977,7 @@ msgstr "Result"
|
||||||
msgid "Retry"
|
msgid "Retry"
|
||||||
msgstr "Retry"
|
msgstr "Retry"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Retry Task"
|
#~ msgid "Retry Task"
|
||||||
#~ msgstr "Retry Task"
|
#~ msgstr "Retry Task"
|
||||||
|
|
||||||
|
@ -4125,7 +4125,7 @@ msgstr "Secret key"
|
||||||
msgid "Secret was rotated"
|
msgid "Secret was rotated"
|
||||||
msgstr "Secret was rotated"
|
msgstr "Secret was rotated"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Secret was rotation"
|
#~ msgid "Secret was rotation"
|
||||||
#~ msgstr "Secret was rotation"
|
#~ msgstr "Secret was rotation"
|
||||||
|
|
||||||
|
@ -4165,7 +4165,7 @@ msgstr "Select an authentication method."
|
||||||
msgid "Select an enrollment flow"
|
msgid "Select an enrollment flow"
|
||||||
msgstr "Select an enrollment flow"
|
msgstr "Select an enrollment flow"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Select an identification method."
|
#~ msgid "Select an identification method."
|
||||||
#~ msgstr "Select an identification method."
|
#~ msgstr "Select an identification method."
|
||||||
|
|
||||||
|
@ -4201,7 +4201,7 @@ msgstr "Select which transports should be used to notify the user. If none are s
|
||||||
msgid "Selected policies are executed when the stage is submitted to validate the data."
|
msgid "Selected policies are executed when the stage is submitted to validate the data."
|
||||||
msgstr "Selected policies are executed when the stage is submitted to validate the data."
|
msgstr "Selected policies are executed when the stage is submitted to validate the data."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Selecting a service-connection enables the management of the outpost by authentik."
|
#~ msgid "Selecting a service-connection enables the management of the outpost by authentik."
|
||||||
#~ msgstr "Selecting a service-connection enables the management of the outpost by authentik."
|
#~ msgstr "Selecting a service-connection enables the management of the outpost by authentik."
|
||||||
|
|
||||||
|
@ -4250,7 +4250,7 @@ msgstr "Server URI"
|
||||||
msgid "Server and client are further than 5 seconds apart."
|
msgid "Server and client are further than 5 seconds apart."
|
||||||
msgstr "Server and client are further than 5 seconds apart."
|
msgstr "Server and client are further than 5 seconds apart."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Server name for which this provider's certificate is valid for."
|
#~ msgid "Server name for which this provider's certificate is valid for."
|
||||||
#~ msgstr "Server name for which this provider's certificate is valid for."
|
#~ msgstr "Server name for which this provider's certificate is valid for."
|
||||||
|
|
||||||
|
@ -4258,7 +4258,7 @@ msgstr "Server and client are further than 5 seconds apart."
|
||||||
msgid "Server validation of credential failed: {err}"
|
msgid "Server validation of credential failed: {err}"
|
||||||
msgstr "Server validation of credential failed: {err}"
|
msgstr "Server validation of credential failed: {err}"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Service Connections"
|
#~ msgid "Service Connections"
|
||||||
#~ msgstr "Service Connections"
|
#~ msgstr "Service Connections"
|
||||||
|
|
||||||
|
@ -4266,12 +4266,12 @@ msgstr "Server validation of credential failed: {err}"
|
||||||
msgid "Service Provider Binding"
|
msgid "Service Provider Binding"
|
||||||
msgstr "Service Provider Binding"
|
msgstr "Service Provider Binding"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Service connection"
|
#~ msgid "Service connection"
|
||||||
#~ msgstr "Service connection"
|
#~ msgstr "Service connection"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Session"
|
#~ msgid "Session"
|
||||||
#~ msgstr "Session"
|
#~ msgstr "Session"
|
||||||
|
|
||||||
|
@ -4404,7 +4404,7 @@ msgstr "Slug"
|
||||||
msgid "Something went wrong! Please try again later."
|
msgid "Something went wrong! Please try again later."
|
||||||
msgstr "Something went wrong! Please try again later."
|
msgstr "Something went wrong! Please try again later."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Source"
|
#~ msgid "Source"
|
||||||
#~ msgstr "Source"
|
#~ msgstr "Source"
|
||||||
|
|
||||||
|
@ -4412,7 +4412,7 @@ msgstr "Something went wrong! Please try again later."
|
||||||
msgid "Source linked"
|
msgid "Source linked"
|
||||||
msgstr "Source linked"
|
msgstr "Source linked"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Source name"
|
#~ msgid "Source name"
|
||||||
#~ msgstr "Source name"
|
#~ msgstr "Source name"
|
||||||
|
|
||||||
|
@ -4429,7 +4429,7 @@ msgstr "Source(s)"
|
||||||
msgid "Sources"
|
msgid "Sources"
|
||||||
msgstr "Sources"
|
msgstr "Sources"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Sources of identities, which can either be synced into authentik's database, like LDAP, or can be used by users to authenticate and enroll themselves, like OAuth and social logins"
|
#~ msgid "Sources of identities, which can either be synced into authentik's database, like LDAP, or can be used by users to authenticate and enroll themselves, like OAuth and social logins"
|
||||||
#~ msgstr "Sources of identities, which can either be synced into authentik's database, like LDAP, or can be used by users to authenticate and enroll themselves, like OAuth and social logins"
|
#~ msgstr "Sources of identities, which can either be synced into authentik's database, like LDAP, or can be used by users to authenticate and enroll themselves, like OAuth and social logins"
|
||||||
|
|
||||||
|
@ -4458,7 +4458,7 @@ msgstr "Stage Bindings"
|
||||||
msgid "Stage Configuration"
|
msgid "Stage Configuration"
|
||||||
msgstr "Stage Configuration"
|
msgstr "Stage Configuration"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Stage binding"
|
#~ msgid "Stage binding"
|
||||||
#~ msgstr "Stage binding"
|
#~ msgstr "Stage binding"
|
||||||
|
|
||||||
|
@ -4575,17 +4575,17 @@ msgstr "Statically deny the flow. To use this stage effectively, disable *Evalua
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Status: Disabled"
|
#~ msgid "Status: Disabled"
|
||||||
#~ msgstr "Status: Disabled"
|
#~ msgstr "Status: Disabled"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Status: Enabled"
|
#~ msgid "Status: Enabled"
|
||||||
#~ msgstr "Status: Enabled"
|
#~ msgstr "Status: Enabled"
|
||||||
|
|
||||||
|
@ -4697,8 +4697,8 @@ msgstr "Successfully created provider."
|
||||||
msgid "Successfully created rule."
|
msgid "Successfully created rule."
|
||||||
msgstr "Successfully created rule."
|
msgstr "Successfully created rule."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Successfully created service-connection."
|
#~ msgid "Successfully created service-connection."
|
||||||
#~ msgstr "Successfully created service-connection."
|
#~ msgstr "Successfully created service-connection."
|
||||||
|
|
||||||
|
@ -4859,8 +4859,8 @@ msgstr "Successfully updated provider."
|
||||||
msgid "Successfully updated rule."
|
msgid "Successfully updated rule."
|
||||||
msgstr "Successfully updated rule."
|
msgstr "Successfully updated rule."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Successfully updated service-connection."
|
#~ msgid "Successfully updated service-connection."
|
||||||
#~ msgstr "Successfully updated service-connection."
|
#~ msgstr "Successfully updated service-connection."
|
||||||
|
|
||||||
|
@ -4940,7 +4940,7 @@ msgstr "Suspicious request"
|
||||||
msgid "Symbol charset"
|
msgid "Symbol charset"
|
||||||
msgstr "Symbol charset"
|
msgstr "Symbol charset"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Sync"
|
#~ msgid "Sync"
|
||||||
#~ msgstr "Sync"
|
#~ msgstr "Sync"
|
||||||
|
|
||||||
|
@ -4948,7 +4948,7 @@ msgstr "Symbol charset"
|
||||||
msgid "Sync groups"
|
msgid "Sync groups"
|
||||||
msgstr "Sync groups"
|
msgstr "Sync groups"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Sync parent group"
|
#~ msgid "Sync parent group"
|
||||||
#~ msgstr "Sync parent group"
|
#~ msgstr "Sync parent group"
|
||||||
|
|
||||||
|
@ -4993,7 +4993,7 @@ msgstr "System task execution"
|
||||||
msgid "TLS Authentication Certificate/SSH Keypair"
|
msgid "TLS Authentication Certificate/SSH Keypair"
|
||||||
msgstr "TLS Authentication Certificate/SSH Keypair"
|
msgstr "TLS Authentication Certificate/SSH Keypair"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "TLS Server name"
|
#~ msgid "TLS Server name"
|
||||||
#~ msgstr "TLS Server name"
|
#~ msgstr "TLS Server name"
|
||||||
|
|
||||||
|
@ -5098,7 +5098,7 @@ msgstr "The external URL you'll access the application at. Include any non-stand
|
||||||
msgid "The external URL you'll authenticate at. The authentik core server should be reachable under this URL."
|
msgid "The external URL you'll authenticate at. The authentik core server should be reachable under this URL."
|
||||||
msgstr "The external URL you'll authenticate at. The authentik core server should be reachable under this URL."
|
msgstr "The external URL you'll authenticate at. The authentik core server should be reachable under this URL."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "The following objects use {0}:"
|
#~ msgid "The following objects use {0}:"
|
||||||
#~ msgstr "The following objects use {0}:"
|
#~ msgstr "The following objects use {0}:"
|
||||||
|
|
||||||
|
@ -5212,7 +5212,7 @@ msgstr "Time in minutes the token sent is valid."
|
||||||
msgid "Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3)."
|
msgid "Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3)."
|
||||||
msgstr "Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3)."
|
msgstr "Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3)."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Time-based One-Time Passwords"
|
#~ msgid "Time-based One-Time Passwords"
|
||||||
#~ msgstr "Time-based One-Time Passwords"
|
#~ msgstr "Time-based One-Time Passwords"
|
||||||
|
|
||||||
|
@ -5251,8 +5251,8 @@ msgstr "To let a user directly reset a their password, configure a recovery flow
|
||||||
msgid "To use SSL instead, use 'ldaps://' and disable this option."
|
msgid "To use SSL instead, use 'ldaps://' and disable this option."
|
||||||
msgstr "To use SSL instead, use 'ldaps://' and disable this option."
|
msgstr "To use SSL instead, use 'ldaps://' and disable this option."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Token"
|
#~ msgid "Token"
|
||||||
#~ msgstr "Token"
|
#~ msgstr "Token"
|
||||||
|
|
||||||
|
@ -5451,7 +5451,7 @@ msgstr "Unique identifier the token is referenced by."
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Unknown"
|
msgstr "Unknown"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Unmanaged"
|
#~ msgid "Unmanaged"
|
||||||
#~ msgstr "Unmanaged"
|
#~ msgstr "Unmanaged"
|
||||||
|
|
||||||
|
@ -5673,8 +5673,8 @@ msgid "Use the username and password below to authenticate. The password can be
|
||||||
msgstr "Use the username and password below to authenticate. The password can be retrieved later on the Tokens page."
|
msgstr "Use the username and password below to authenticate. The password can be retrieved later on the Tokens page."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /akprox must be routed to the outpost (when using a manged outpost, this is done for you)."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is done for you)."
|
||||||
msgstr "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /akprox must be routed to the outpost (when using a manged outpost, this is done for you)."
|
msgstr "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is done for you)."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
||||||
|
@ -5714,8 +5714,8 @@ msgstr "User Property Mappings"
|
||||||
#~ msgid "User Reputation"
|
#~ msgid "User Reputation"
|
||||||
#~ msgstr "User Reputation"
|
#~ msgstr "User Reputation"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "User Settings"
|
#~ msgid "User Settings"
|
||||||
#~ msgstr "User Settings"
|
#~ msgstr "User Settings"
|
||||||
|
|
||||||
|
@ -5984,7 +5984,7 @@ msgstr "Web Certificate"
|
||||||
msgid "WebAuthn Authenticators"
|
msgid "WebAuthn Authenticators"
|
||||||
msgstr "WebAuthn Authenticators"
|
msgstr "WebAuthn Authenticators"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "WebAuthn Devices"
|
#~ msgid "WebAuthn Devices"
|
||||||
#~ msgstr "WebAuthn Devices"
|
#~ msgstr "WebAuthn Devices"
|
||||||
|
|
||||||
|
@ -6126,11 +6126,11 @@ msgstr "You're currently impersonating {0}. Click to stop."
|
||||||
msgid "app1 running on app1.example.com"
|
msgid "app1 running on app1.example.com"
|
||||||
msgstr "app1 running on app1.example.com"
|
msgstr "app1 running on app1.example.com"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "authentik Builtin Database"
|
#~ msgid "authentik Builtin Database"
|
||||||
#~ msgstr "authentik Builtin Database"
|
#~ msgstr "authentik Builtin Database"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "authentik LDAP Backend"
|
#~ msgid "authentik LDAP Backend"
|
||||||
#~ msgstr "authentik LDAP Backend"
|
#~ msgstr "authentik LDAP Backend"
|
||||||
|
|
||||||
|
|
|
@ -5556,8 +5556,8 @@ msgid "Use the username and password below to authenticate. The password can be
|
||||||
msgstr "Use el nombre de usuario y la contraseña a continuación para autenticarse. La contraseña se puede recuperar más adelante en la página Tokens."
|
msgstr "Use el nombre de usuario y la contraseña a continuación para autenticarse. La contraseña se puede recuperar más adelante en la página Tokens."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /akprox must be routed to the outpost (when using a manged outpost, this is done for you)."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is done for you)."
|
||||||
msgstr "Use este proveedor con auth_request de nginx o ForwardAuth de traefik. Cada aplicación/dominio necesita su propio proveedor. Además, en cada dominio, /akprox debe enrutarse al puesto avanzado (cuando se usa un puesto avanzado administrado, esto se hace por usted)."
|
msgstr "Use este proveedor con auth_request de nginx o ForwardAuth de traefik. Cada aplicación/dominio necesita su propio proveedor. Además, en cada dominio, /outpost.goauthentik.io debe enrutarse al puesto avanzado (cuando se usa un puesto avanzado administrado, esto se hace por usted)."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
||||||
|
|
|
@ -19,7 +19,7 @@ msgstr ""
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
"X-Generator: @lingui/cli\n"
|
"X-Generator: @lingui/cli\n"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "#/identity/users/{0}"
|
#~ msgid "#/identity/users/{0}"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -466,7 +466,7 @@ msgstr "Attributs"
|
||||||
msgid "Audience"
|
msgid "Audience"
|
||||||
msgstr "Audience"
|
msgstr "Audience"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Auth Type"
|
#~ msgid "Auth Type"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -818,7 +818,7 @@ msgstr ""
|
||||||
msgid "Check the logs"
|
msgid "Check the logs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Check your Emails for a password reset link."
|
#~ msgid "Check your Emails for a password reset link."
|
||||||
#~ msgstr "Vérifiez vos courriels pour un lien de récupération de mot de passe."
|
#~ msgstr "Vérifiez vos courriels pour un lien de récupération de mot de passe."
|
||||||
|
|
||||||
|
@ -953,7 +953,7 @@ msgstr "Flux de configuration"
|
||||||
msgid "Configuration stage"
|
msgid "Configuration stage"
|
||||||
msgstr "Étape de configuration"
|
msgstr "Étape de configuration"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Configure WebAuthn"
|
#~ msgid "Configure WebAuthn"
|
||||||
#~ msgstr "Configurer WebAuthn"
|
#~ msgstr "Configurer WebAuthn"
|
||||||
|
|
||||||
|
@ -1109,7 +1109,7 @@ msgstr "Domaine des cookies"
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copier"
|
msgstr "Copier"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Copy Key"
|
#~ msgid "Copy Key"
|
||||||
#~ msgstr "Copier la clé"
|
#~ msgstr "Copier la clé"
|
||||||
|
|
||||||
|
@ -1292,7 +1292,7 @@ msgstr "Créer {0}"
|
||||||
msgid "Created by"
|
msgid "Created by"
|
||||||
msgstr "Créé par"
|
msgstr "Créé par"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Created {0}"
|
#~ msgid "Created {0}"
|
||||||
#~ msgstr "Créé {0}"
|
#~ msgstr "Créé {0}"
|
||||||
|
|
||||||
|
@ -1302,7 +1302,7 @@ msgstr "Créé par"
|
||||||
msgid "Creation Date"
|
msgid "Creation Date"
|
||||||
msgstr "Date de création"
|
msgstr "Date de création"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Current plan cntext"
|
#~ msgid "Current plan cntext"
|
||||||
#~ msgstr "Contexte du plan courant"
|
#~ msgstr "Contexte du plan courant"
|
||||||
|
|
||||||
|
@ -1487,7 +1487,7 @@ msgstr "Classes d'équipement"
|
||||||
msgid "Device classes which can be used to authenticate."
|
msgid "Device classes which can be used to authenticate."
|
||||||
msgstr "Classe d'équipement qui peut être utilisé pour s'authentifier"
|
msgstr "Classe d'équipement qui peut être utilisé pour s'authentifier"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Device name"
|
#~ msgid "Device name"
|
||||||
#~ msgstr "Nom de l'équipement"
|
#~ msgstr "Nom de l'équipement"
|
||||||
|
|
||||||
|
@ -1519,19 +1519,19 @@ msgstr ""
|
||||||
#~ msgid "Disable"
|
#~ msgid "Disable"
|
||||||
#~ msgstr "Désactiver"
|
#~ msgstr "Désactiver"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable Duo authenticator"
|
#~ msgid "Disable Duo authenticator"
|
||||||
#~ msgstr "Désactiver l'authentificateur Duo"
|
#~ msgstr "Désactiver l'authentificateur Duo"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable SMS authenticator"
|
#~ msgid "Disable SMS authenticator"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable Static Tokens"
|
#~ msgid "Disable Static Tokens"
|
||||||
#~ msgstr "Désactiver les jetons statiques"
|
#~ msgstr "Désactiver les jetons statiques"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable Time-based OTP"
|
#~ msgid "Disable Time-based OTP"
|
||||||
#~ msgstr "Désactiver les OTP basés sur le temps"
|
#~ msgstr "Désactiver les OTP basés sur le temps"
|
||||||
|
|
||||||
|
@ -1581,7 +1581,7 @@ msgstr "En raison des limitations de protocole, ce certificat n'est utilisé que
|
||||||
msgid "Dummy stage used for testing. Shows a simple continue button and always passes."
|
msgid "Dummy stage used for testing. Shows a simple continue button and always passes."
|
||||||
msgstr "Étape factice utilisée pour les tests. Montre un simple bouton continuer et réussit toujours."
|
msgstr "Étape factice utilisée pour les tests. Montre un simple bouton continuer et réussit toujours."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Duo"
|
#~ msgid "Duo"
|
||||||
#~ msgstr "Duo"
|
#~ msgstr "Duo"
|
||||||
|
|
||||||
|
@ -1694,11 +1694,11 @@ msgstr "L'avant poste intégré n'est pas configuré correctement"
|
||||||
#~ msgid "Enable"
|
#~ msgid "Enable"
|
||||||
#~ msgstr "Activer"
|
#~ msgstr "Activer"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable Duo authenticator"
|
#~ msgid "Enable Duo authenticator"
|
||||||
#~ msgstr "Activer l'authentificateur Duo"
|
#~ msgstr "Activer l'authentificateur Duo"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable SMS authenticator"
|
#~ msgid "Enable SMS authenticator"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1706,11 +1706,11 @@ msgstr "L'avant poste intégré n'est pas configuré correctement"
|
||||||
msgid "Enable StartTLS"
|
msgid "Enable StartTLS"
|
||||||
msgstr "Activer StartTLS"
|
msgstr "Activer StartTLS"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable Static Tokens"
|
#~ msgid "Enable Static Tokens"
|
||||||
#~ msgstr "Activer les jetons statiques"
|
#~ msgstr "Activer les jetons statiques"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable TOTP"
|
#~ msgid "Enable TOTP"
|
||||||
#~ msgstr "Activer TOTP"
|
#~ msgstr "Activer TOTP"
|
||||||
|
|
||||||
|
@ -1774,7 +1774,7 @@ msgstr "Erreur lors de la validation de l'assertion sur le serveur : {err}"
|
||||||
msgid "Error: unsupported source settings: {0}"
|
msgid "Error: unsupported source settings: {0}"
|
||||||
msgstr "Erreur : paramètres source non supportés : {0}"
|
msgstr "Erreur : paramètres source non supportés : {0}"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Error: unsupported stage settings: {0}"
|
#~ msgid "Error: unsupported stage settings: {0}"
|
||||||
#~ msgstr "Erreur : paramètres d'étape non supporté : {0}"
|
#~ msgstr "Erreur : paramètres d'étape non supporté : {0}"
|
||||||
|
|
||||||
|
@ -1820,7 +1820,7 @@ msgstr "Tout va bien."
|
||||||
msgid "Exception"
|
msgid "Exception"
|
||||||
msgstr "Exception"
|
msgstr "Exception"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Execute"
|
#~ msgid "Execute"
|
||||||
#~ msgstr "Exécuter"
|
#~ msgstr "Exécuter"
|
||||||
|
|
||||||
|
@ -1828,7 +1828,7 @@ msgstr "Exception"
|
||||||
msgid "Execute flow"
|
msgid "Execute flow"
|
||||||
msgstr "Exécuter le flux"
|
msgstr "Exécuter le flux"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Execute with inspector"
|
#~ msgid "Execute with inspector"
|
||||||
#~ msgstr "Exécuter avec inspection"
|
#~ msgstr "Exécuter avec inspection"
|
||||||
|
|
||||||
|
@ -3467,7 +3467,7 @@ msgstr "Mot de passe défini"
|
||||||
msgid "Password stage"
|
msgid "Password stage"
|
||||||
msgstr "Étape de mot de passe"
|
msgstr "Étape de mot de passe"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Password, 2FA, etc"
|
#~ msgid "Password, 2FA, etc"
|
||||||
#~ msgstr "Mot de passe, 2FA, etc"
|
#~ msgstr "Mot de passe, 2FA, etc"
|
||||||
|
|
||||||
|
@ -4096,7 +4096,7 @@ msgstr "Clé secrète"
|
||||||
msgid "Secret was rotated"
|
msgid "Secret was rotated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Secret was rotation"
|
#~ msgid "Secret was rotation"
|
||||||
#~ msgstr "Rotation du secret effectuée"
|
#~ msgstr "Rotation du secret effectuée"
|
||||||
|
|
||||||
|
@ -4375,7 +4375,7 @@ msgstr "Une erreur s'est produite ! Veuillez réessayer plus tard."
|
||||||
msgid "Source linked"
|
msgid "Source linked"
|
||||||
msgstr "Source liée"
|
msgstr "Source liée"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Source name"
|
#~ msgid "Source name"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4536,17 +4536,17 @@ msgstr "Refuser statiquement le flux. Pour utiliser cette étape efficacement, d
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Statut"
|
msgstr "Statut"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Status: Disabled"
|
#~ msgid "Status: Disabled"
|
||||||
#~ msgstr "Statut : Désactivé"
|
#~ msgstr "Statut : Désactivé"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Status: Enabled"
|
#~ msgid "Status: Enabled"
|
||||||
#~ msgstr "Statut : Activé"
|
#~ msgstr "Statut : Activé"
|
||||||
|
|
||||||
|
@ -4897,7 +4897,7 @@ msgstr "Requête suspecte"
|
||||||
msgid "Symbol charset"
|
msgid "Symbol charset"
|
||||||
msgstr "Set de symboles"
|
msgstr "Set de symboles"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Sync"
|
#~ msgid "Sync"
|
||||||
#~ msgstr "Synchroniser"
|
#~ msgstr "Synchroniser"
|
||||||
|
|
||||||
|
@ -5156,7 +5156,7 @@ msgstr "Temps en minutes durant lequel le jeton envoyé est valide."
|
||||||
msgid "Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3)."
|
msgid "Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3)."
|
||||||
msgstr "Délai de suppression des utilisateurs temporaires. Ceci s'applique uniquement si votre fournisseur d'identité utilise le format NameID transitoire ('transient') et que l'utilisateur ne se déconnecte pas manuellement. (Format : heures=1;minutes=2;secondes=3)."
|
msgstr "Délai de suppression des utilisateurs temporaires. Ceci s'applique uniquement si votre fournisseur d'identité utilise le format NameID transitoire ('transient') et que l'utilisateur ne se déconnecte pas manuellement. (Format : heures=1;minutes=2;secondes=3)."
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Time-based One-Time Passwords"
|
#~ msgid "Time-based One-Time Passwords"
|
||||||
#~ msgstr "Mots de passe unique basés sur le temps"
|
#~ msgstr "Mots de passe unique basés sur le temps"
|
||||||
|
|
||||||
|
@ -5614,8 +5614,8 @@ msgid "Use the username and password below to authenticate. The password can be
|
||||||
msgstr "Utilisez le nom d'utilisateur et le mot de passe ci-dessous pour vous authentifier. Le mot de passe peut être récupéré plus tard sur la page Jetons."
|
msgstr "Utilisez le nom d'utilisateur et le mot de passe ci-dessous pour vous authentifier. Le mot de passe peut être récupéré plus tard sur la page Jetons."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /akprox must be routed to the outpost (when using a manged outpost, this is done for you)."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is done for you)."
|
||||||
msgstr "Utilisez ce fournisseur avec auth_request de nginx ou forwardAuth de traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, /akprox doit être routé vers l'avant-poste (si vous utilisez un avant-poste géré, cela est fait pour vous)."
|
msgstr "Utilisez ce fournisseur avec auth_request de nginx ou forwardAuth de traefik. Chaque application/domaine a besoin de son propre fournisseur. De plus, sur chaque domaine, /outpost.goauthentik.io doit être routé vers l'avant-poste (si vous utilisez un avant-poste géré, cela est fait pour vous)."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
||||||
|
@ -5923,7 +5923,7 @@ msgstr ""
|
||||||
msgid "WebAuthn Authenticators"
|
msgid "WebAuthn Authenticators"
|
||||||
msgstr "Authentificateurs WebAuthn"
|
msgstr "Authentificateurs WebAuthn"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "WebAuthn Devices"
|
#~ msgid "WebAuthn Devices"
|
||||||
#~ msgstr "Équipements WebAuthn"
|
#~ msgstr "Équipements WebAuthn"
|
||||||
|
|
||||||
|
|
|
@ -5556,8 +5556,8 @@ msgid "Use the username and password below to authenticate. The password can be
|
||||||
msgstr "Użyj poniższej nazwy użytkownika i hasła do uwierzytelnienia. Hasło można później odzyskać na stronie Tokeny."
|
msgstr "Użyj poniższej nazwy użytkownika i hasła do uwierzytelnienia. Hasło można później odzyskać na stronie Tokeny."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /akprox must be routed to the outpost (when using a manged outpost, this is done for you)."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is done for you)."
|
||||||
msgstr "Użyj tego dostawcy z auth_request nginx lub forwardAuth traefik. Każda aplikacja/domena potrzebuje własnego dostawcy. Dodatkowo w każdej domenie /akprox musi być przekierowany do placówki (w przypadku korzystania z zarządzanej placówki jest to zrobione za Ciebie)."
|
msgstr "Użyj tego dostawcy z auth_request nginx lub forwardAuth traefik. Każda aplikacja/domena potrzebuje własnego dostawcy. Dodatkowo w każdej domenie /outpost.goauthentik.io musi być przekierowany do placówki (w przypadku korzystania z zarządzanej placówki jest to zrobione za Ciebie)."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Darek NeroPcStation <dareknowacki2001@gmail.com>, 2022
|
# Darek NeroPcStation <dareknowacki2001@gmail.com>, 2022
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
|
@ -6020,12 +6020,12 @@ msgstr ""
|
||||||
msgid ""
|
msgid ""
|
||||||
"Use this provider with nginx's auth_request or traefik's forwardAuth. Each "
|
"Use this provider with nginx's auth_request or traefik's forwardAuth. Each "
|
||||||
"application/domain needs its own provider. Additionally, on each domain, "
|
"application/domain needs its own provider. Additionally, on each domain, "
|
||||||
"/akprox must be routed to the outpost (when using a manged outpost, this is "
|
"/outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is "
|
||||||
"done for you)."
|
"done for you)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Użyj tego dostawcy z auth_request nginx lub forwardAuth traefik. Każda "
|
"Użyj tego dostawcy z auth_request nginx lub forwardAuth traefik. Każda "
|
||||||
"aplikacja/domena potrzebuje własnego dostawcy. Dodatkowo w każdej domenie "
|
"aplikacja/domena potrzebuje własnego dostawcy. Dodatkowo w każdej domenie "
|
||||||
"/akprox musi być przekierowany do placówki (w przypadku korzystania z "
|
"/outpost.goauthentik.io musi być przekierowany do placówki (w przypadku korzystania z "
|
||||||
"zarządzanej placówki jest to zrobione za Ciebie)."
|
"zarządzanej placówki jest to zrobione za Ciebie)."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
|
|
|
@ -13,7 +13,7 @@ msgstr ""
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Plural-Forms: \n"
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "#/identity/users/{0}"
|
#~ msgid "#/identity/users/{0}"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ msgstr ""
|
||||||
msgid "Access Key"
|
msgid "Access Key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Access code validity"
|
#~ msgid "Access code validity"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -457,7 +457,7 @@ msgstr ""
|
||||||
msgid "Audience"
|
msgid "Audience"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Auth Type"
|
#~ msgid "Auth Type"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -500,7 +500,7 @@ msgstr ""
|
||||||
msgid "Authorization"
|
msgid "Authorization"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Authorization Code"
|
#~ msgid "Authorization Code"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -652,7 +652,7 @@ msgstr ""
|
||||||
msgid "Build hash:"
|
msgid "Build hash:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Build hash: {0}"
|
#~ msgid "Build hash: {0}"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -729,7 +729,7 @@ msgstr ""
|
||||||
msgid "Certificate used to sign outgoing Responses going to the Service Provider."
|
msgid "Certificate used to sign outgoing Responses going to the Service Provider."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Certificate-Key Pair"
|
#~ msgid "Certificate-Key Pair"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -812,7 +812,7 @@ msgstr ""
|
||||||
msgid "Check the logs"
|
msgid "Check the logs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Check your Emails for a password reset link."
|
#~ msgid "Check your Emails for a password reset link."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -945,11 +945,11 @@ msgstr ""
|
||||||
msgid "Configuration stage"
|
msgid "Configuration stage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Configure WebAuthn"
|
#~ msgid "Configure WebAuthn"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Configure how long access codes are valid for."
|
#~ msgid "Configure how long access codes are valid for."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -981,8 +981,8 @@ msgstr ""
|
||||||
msgid "Configure how the outpost queries the core authentik server's users."
|
msgid "Configure how the outpost queries the core authentik server's users."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Configure settings relevant to your user profile."
|
#~ msgid "Configure settings relevant to your user profile."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1104,7 +1104,7 @@ msgstr ""
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Copy Key"
|
#~ msgid "Copy Key"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1287,7 +1287,7 @@ msgstr ""
|
||||||
msgid "Created by"
|
msgid "Created by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Created {0}"
|
#~ msgid "Created {0}"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1297,7 +1297,7 @@ msgstr ""
|
||||||
msgid "Creation Date"
|
msgid "Creation Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Current plan cntext"
|
#~ msgid "Current plan cntext"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1392,24 +1392,24 @@ msgstr ""
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Authorization Code"
|
#~ msgid "Delete Authorization Code"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Binding"
|
#~ msgid "Delete Binding"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Consent"
|
#~ msgid "Delete Consent"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Refresh Code"
|
#~ msgid "Delete Refresh Code"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Delete Session"
|
#~ msgid "Delete Session"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1488,7 +1488,7 @@ msgstr ""
|
||||||
msgid "Device classes which can be used to authenticate."
|
msgid "Device classes which can be used to authenticate."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Device name"
|
#~ msgid "Device name"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1517,24 +1517,24 @@ msgstr ""
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable"
|
#~ msgid "Disable"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable Duo authenticator"
|
#~ msgid "Disable Duo authenticator"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable SMS authenticator"
|
#~ msgid "Disable SMS authenticator"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable Static Tokens"
|
#~ msgid "Disable Static Tokens"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Disable Time-based OTP"
|
#~ msgid "Disable Time-based OTP"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1584,7 +1584,7 @@ msgstr ""
|
||||||
msgid "Dummy stage used for testing. Shows a simple continue button and always passes."
|
msgid "Dummy stage used for testing. Shows a simple continue button and always passes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Duo"
|
#~ msgid "Duo"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1694,16 +1694,16 @@ msgstr ""
|
||||||
msgid "Embedded outpost is not configured correctly."
|
msgid "Embedded outpost is not configured correctly."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable"
|
#~ msgid "Enable"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable Duo authenticator"
|
#~ msgid "Enable Duo authenticator"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable SMS authenticator"
|
#~ msgid "Enable SMS authenticator"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1711,11 +1711,11 @@ msgstr ""
|
||||||
msgid "Enable StartTLS"
|
msgid "Enable StartTLS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable Static Tokens"
|
#~ msgid "Enable Static Tokens"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Enable TOTP"
|
#~ msgid "Enable TOTP"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1779,7 +1779,7 @@ msgstr ""
|
||||||
msgid "Error: unsupported source settings: {0}"
|
msgid "Error: unsupported source settings: {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Error: unsupported stage settings: {0}"
|
#~ msgid "Error: unsupported stage settings: {0}"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1825,7 +1825,7 @@ msgstr ""
|
||||||
msgid "Exception"
|
msgid "Exception"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Execute"
|
#~ msgid "Execute"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -1833,7 +1833,7 @@ msgstr ""
|
||||||
msgid "Execute flow"
|
msgid "Execute flow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Execute with inspector"
|
#~ msgid "Execute with inspector"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -2005,7 +2005,7 @@ msgstr ""
|
||||||
msgid "Field which contains a unique Identifier."
|
msgid "Field which contains a unique Identifier."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Field which contains members of a group."
|
#~ msgid "Field which contains members of a group."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -2202,7 +2202,7 @@ msgstr ""
|
||||||
msgid "Get this value from https://console.twilio.com"
|
msgid "Get this value from https://console.twilio.com"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Go to admin interface"
|
#~ msgid "Go to admin interface"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -2214,7 +2214,7 @@ msgstr ""
|
||||||
msgid "Go to previous page"
|
msgid "Go to previous page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Go to user interface"
|
#~ msgid "Go to user interface"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -2516,7 +2516,7 @@ msgstr ""
|
||||||
msgid "Invalidation flow"
|
msgid "Invalidation flow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Invitation"
|
#~ msgid "Invitation"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -2638,7 +2638,7 @@ msgstr ""
|
||||||
msgid "Let the user identify themselves with their username or Email address."
|
msgid "Let the user identify themselves with their username or Email address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Library"
|
#~ msgid "Library"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -2942,7 +2942,7 @@ msgstr ""
|
||||||
msgid "Model updated"
|
msgid "Model updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Monitor"
|
#~ msgid "Monitor"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3231,7 +3231,7 @@ msgstr ""
|
||||||
msgid "Notification Transports"
|
msgid "Notification Transports"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Notification rule"
|
#~ msgid "Notification rule"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3251,7 +3251,7 @@ msgstr ""
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Notifications Transport"
|
#~ msgid "Notifications Transport"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3314,7 +3314,7 @@ msgstr ""
|
||||||
msgid "Open API Browser"
|
msgid "Open API Browser"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Open application"
|
#~ msgid "Open application"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3388,7 +3388,7 @@ msgstr ""
|
||||||
msgid "Outdated outposts"
|
msgid "Outdated outposts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Outpost"
|
#~ msgid "Outpost"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3400,11 +3400,11 @@ msgstr ""
|
||||||
msgid "Outpost Integrations"
|
msgid "Outpost Integrations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Outpost Service-connection"
|
#~ msgid "Outpost Service-connection"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Outpost integration"
|
#~ msgid "Outpost integration"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3484,7 +3484,7 @@ msgstr ""
|
||||||
msgid "Password stage"
|
msgid "Password stage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Password, 2FA, etc"
|
#~ msgid "Password, 2FA, etc"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3561,7 +3561,7 @@ msgstr ""
|
||||||
msgid "Policy Bindings"
|
msgid "Policy Bindings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Policy binding"
|
#~ msgid "Policy binding"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3639,7 +3639,7 @@ msgstr ""
|
||||||
msgid "Profile URL"
|
msgid "Profile URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Prompt"
|
#~ msgid "Prompt"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3656,7 +3656,7 @@ msgstr ""
|
||||||
msgid "Prompts"
|
msgid "Prompts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Property Mapping"
|
#~ msgid "Property Mapping"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3716,7 +3716,7 @@ msgstr ""
|
||||||
msgid "Provider Type"
|
msgid "Provider Type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Provider type"
|
#~ msgid "Provider type"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3853,7 +3853,7 @@ msgstr ""
|
||||||
msgid "Refresh"
|
msgid "Refresh"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Refresh Code"
|
#~ msgid "Refresh Code"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -3967,7 +3967,7 @@ msgstr ""
|
||||||
msgid "Retry"
|
msgid "Retry"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Retry Task"
|
#~ msgid "Retry Task"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4115,7 +4115,7 @@ msgstr ""
|
||||||
msgid "Secret was rotated"
|
msgid "Secret was rotated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Secret was rotation"
|
#~ msgid "Secret was rotation"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4155,7 +4155,7 @@ msgstr ""
|
||||||
msgid "Select an enrollment flow"
|
msgid "Select an enrollment flow"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Select an identification method."
|
#~ msgid "Select an identification method."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4191,7 +4191,7 @@ msgstr ""
|
||||||
msgid "Selected policies are executed when the stage is submitted to validate the data."
|
msgid "Selected policies are executed when the stage is submitted to validate the data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Selecting a service-connection enables the management of the outpost by authentik."
|
#~ msgid "Selecting a service-connection enables the management of the outpost by authentik."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4240,7 +4240,7 @@ msgstr ""
|
||||||
msgid "Server and client are further than 5 seconds apart."
|
msgid "Server and client are further than 5 seconds apart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Server name for which this provider's certificate is valid for."
|
#~ msgid "Server name for which this provider's certificate is valid for."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4248,7 +4248,7 @@ msgstr ""
|
||||||
msgid "Server validation of credential failed: {err}"
|
msgid "Server validation of credential failed: {err}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Service Connections"
|
#~ msgid "Service Connections"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4256,12 +4256,12 @@ msgstr ""
|
||||||
msgid "Service Provider Binding"
|
msgid "Service Provider Binding"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Service connection"
|
#~ msgid "Service connection"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Session"
|
#~ msgid "Session"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4394,7 +4394,7 @@ msgstr ""
|
||||||
msgid "Something went wrong! Please try again later."
|
msgid "Something went wrong! Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Source"
|
#~ msgid "Source"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4402,7 +4402,7 @@ msgstr ""
|
||||||
msgid "Source linked"
|
msgid "Source linked"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Source name"
|
#~ msgid "Source name"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4419,7 +4419,7 @@ msgstr ""
|
||||||
msgid "Sources"
|
msgid "Sources"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Sources of identities, which can either be synced into authentik's database, like LDAP, or can be used by users to authenticate and enroll themselves, like OAuth and social logins"
|
#~ msgid "Sources of identities, which can either be synced into authentik's database, like LDAP, or can be used by users to authenticate and enroll themselves, like OAuth and social logins"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4448,7 +4448,7 @@ msgstr ""
|
||||||
msgid "Stage Configuration"
|
msgid "Stage Configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Stage binding"
|
#~ msgid "Stage binding"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4565,17 +4565,17 @@ msgstr ""
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Status: Disabled"
|
#~ msgid "Status: Disabled"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Status: Enabled"
|
#~ msgid "Status: Enabled"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4687,8 +4687,8 @@ msgstr ""
|
||||||
msgid "Successfully created rule."
|
msgid "Successfully created rule."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Successfully created service-connection."
|
#~ msgid "Successfully created service-connection."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4849,8 +4849,8 @@ msgstr ""
|
||||||
msgid "Successfully updated rule."
|
msgid "Successfully updated rule."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Successfully updated service-connection."
|
#~ msgid "Successfully updated service-connection."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4930,7 +4930,7 @@ msgstr ""
|
||||||
msgid "Symbol charset"
|
msgid "Symbol charset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Sync"
|
#~ msgid "Sync"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4938,7 +4938,7 @@ msgstr ""
|
||||||
msgid "Sync groups"
|
msgid "Sync groups"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Sync parent group"
|
#~ msgid "Sync parent group"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -4983,7 +4983,7 @@ msgstr ""
|
||||||
msgid "TLS Authentication Certificate/SSH Keypair"
|
msgid "TLS Authentication Certificate/SSH Keypair"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "TLS Server name"
|
#~ msgid "TLS Server name"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -5088,7 +5088,7 @@ msgstr ""
|
||||||
msgid "The external URL you'll authenticate at. The authentik core server should be reachable under this URL."
|
msgid "The external URL you'll authenticate at. The authentik core server should be reachable under this URL."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "The following objects use {0}:"
|
#~ msgid "The following objects use {0}:"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -5192,7 +5192,7 @@ msgstr ""
|
||||||
msgid "Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3)."
|
msgid "Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Time-based One-Time Passwords"
|
#~ msgid "Time-based One-Time Passwords"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -5231,8 +5231,8 @@ msgstr ""
|
||||||
msgid "To use SSL instead, use 'ldaps://' and disable this option."
|
msgid "To use SSL instead, use 'ldaps://' and disable this option."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "Token"
|
#~ msgid "Token"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -5431,7 +5431,7 @@ msgstr ""
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "Unmanaged"
|
#~ msgid "Unmanaged"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -5653,7 +5653,7 @@ msgid "Use the username and password below to authenticate. The password can be
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /akprox must be routed to the outpost (when using a manged outpost, this is done for you)."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is done for you)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
|
@ -5694,8 +5694,8 @@ msgstr ""
|
||||||
#~ msgid "User Reputation"
|
#~ msgid "User Reputation"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#:
|
#:
|
||||||
#~ msgid "User Settings"
|
#~ msgid "User Settings"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -5964,7 +5964,7 @@ msgstr ""
|
||||||
msgid "WebAuthn Authenticators"
|
msgid "WebAuthn Authenticators"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "WebAuthn Devices"
|
#~ msgid "WebAuthn Devices"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
@ -6104,11 +6104,11 @@ msgstr ""
|
||||||
msgid "app1 running on app1.example.com"
|
msgid "app1 running on app1.example.com"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "authentik Builtin Database"
|
#~ msgid "authentik Builtin Database"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#:
|
#:
|
||||||
#~ msgid "authentik LDAP Backend"
|
#~ msgid "authentik LDAP Backend"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -5558,8 +5558,8 @@ msgid "Use the username and password below to authenticate. The password can be
|
||||||
msgstr "Kimlik doğrulaması için aşağıdaki kullanıcı adı ve parolayı kullanın. Parola daha sonra Belirteçler sayfasından alınabilir."
|
msgstr "Kimlik doğrulaması için aşağıdaki kullanıcı adı ve parolayı kullanın. Parola daha sonra Belirteçler sayfasından alınabilir."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /akprox must be routed to the outpost (when using a manged outpost, this is done for you)."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is done for you)."
|
||||||
msgstr "Bu sağlayıcıyı nginx'in auth_request veya traefik's forwardAuth ile kullanın. Her uygulama/etki alanının kendi sağlayıcısına ihtiyacı vardır. Ayrıca, her etki alanında /akprox üsse yönlendirilmelidir (manged bir üs kullanırken, bu sizin için yapılır)."
|
msgstr "Bu sağlayıcıyı nginx'in auth_request veya traefik's forwardAuth ile kullanın. Her uygulama/etki alanının kendi sağlayıcısına ihtiyacı vardır. Ayrıca, her etki alanında /outpost.goauthentik.io üsse yönlendirilmelidir (manged bir üs kullanırken, bu sizin için yapılır)."
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
msgid "Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application."
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Chen Zhikai, 2022
|
# Chen Zhikai, 2022
|
||||||
# 刘松, 2022
|
# 刘松, 2022
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
|
@ -5691,11 +5691,11 @@ msgstr "使用下面的用户名和密码进行身份验证。稍后可以在令
|
||||||
msgid ""
|
msgid ""
|
||||||
"Use this provider with nginx's auth_request or traefik's forwardAuth. Each "
|
"Use this provider with nginx's auth_request or traefik's forwardAuth. Each "
|
||||||
"application/domain needs its own provider. Additionally, on each domain, "
|
"application/domain needs its own provider. Additionally, on each domain, "
|
||||||
"/akprox must be routed to the outpost (when using a manged outpost, this is "
|
"/outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is "
|
||||||
"done for you)."
|
"done for you)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"将此提供程序与 nginx 的 auth_request 或 traefik 的 ForwardAuth "
|
"将此提供程序与 nginx 的 auth_request 或 traefik 的 ForwardAuth "
|
||||||
"一起使用。每个应用程序/域都需要自己的提供商。此外,在每个域上,/akprox必须路由到 Outpost(使用托管 Outpost "
|
"一起使用。每个应用程序/域都需要自己的提供商。此外,在每个域上,/outpost.goauthentik.io必须路由到 Outpost(使用托管 Outpost "
|
||||||
"时,这是为您完成的)。"
|
"时,这是为您完成的)。"
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Chen Zhikai, 2022
|
# Chen Zhikai, 2022
|
||||||
# 刘松, 2022
|
# 刘松, 2022
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
|
@ -5691,11 +5691,11 @@ msgstr "使用下面的用户名和密码进行身份验证。稍后可以在令
|
||||||
msgid ""
|
msgid ""
|
||||||
"Use this provider with nginx's auth_request or traefik's forwardAuth. Each "
|
"Use this provider with nginx's auth_request or traefik's forwardAuth. Each "
|
||||||
"application/domain needs its own provider. Additionally, on each domain, "
|
"application/domain needs its own provider. Additionally, on each domain, "
|
||||||
"/akprox must be routed to the outpost (when using a manged outpost, this is "
|
"/outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is "
|
||||||
"done for you)."
|
"done for you)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"将此提供程序与 nginx 的 auth_request 或 traefik 的 ForwardAuth "
|
"将此提供程序与 nginx 的 auth_request 或 traefik 的 ForwardAuth "
|
||||||
"一起使用。每个应用程序/域都需要自己的提供商。此外,在每个域上,/akprox必须路由到 Outpost(使用托管 Outpost "
|
"一起使用。每个应用程序/域都需要自己的提供商。此外,在每个域上,/outpost.goauthentik.io必须路由到 Outpost(使用托管 Outpost "
|
||||||
"时,这是为您完成的)。"
|
"时,这是为您完成的)。"
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Chen Zhikai, 2022
|
# Chen Zhikai, 2022
|
||||||
# 刘松, 2022
|
# 刘松, 2022
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
|
@ -5691,11 +5691,11 @@ msgstr "使用下面的用户名和密码进行身份验证。稍后可以在令
|
||||||
msgid ""
|
msgid ""
|
||||||
"Use this provider with nginx's auth_request or traefik's forwardAuth. Each "
|
"Use this provider with nginx's auth_request or traefik's forwardAuth. Each "
|
||||||
"application/domain needs its own provider. Additionally, on each domain, "
|
"application/domain needs its own provider. Additionally, on each domain, "
|
||||||
"/akprox must be routed to the outpost (when using a manged outpost, this is "
|
"/outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is "
|
||||||
"done for you)."
|
"done for you)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"将此提供程序与 nginx 的 auth_request 或 traefik 的 ForwardAuth "
|
"将此提供程序与 nginx 的 auth_request 或 traefik 的 ForwardAuth "
|
||||||
"一起使用。每个应用程序/域都需要自己的提供商。此外,在每个域上,/akprox必须路由到 Outpost(使用托管 Outpost "
|
"一起使用。每个应用程序/域都需要自己的提供商。此外,在每个域上,/outpost.goauthentik.io必须路由到 Outpost(使用托管 Outpost "
|
||||||
"时,这是为您完成的)。"
|
"时,这是为您完成的)。"
|
||||||
|
|
||||||
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
#: src/pages/providers/proxy/ProxyProviderForm.ts
|
||||||
|
|
|
@ -214,7 +214,7 @@ export class ProxyProviderFormPage extends ModelForm<ProxyProvider, number> {
|
||||||
</ak-form-element-horizontal>`;
|
</ak-form-element-horizontal>`;
|
||||||
case ProxyMode.ForwardSingle:
|
case ProxyMode.ForwardSingle:
|
||||||
return html`<p class="pf-u-mb-xl">
|
return html`<p class="pf-u-mb-xl">
|
||||||
${t`Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /akprox must be routed to the outpost (when using a manged outpost, this is done for you).`}
|
${t`Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a manged outpost, this is done for you).`}
|
||||||
</p>
|
</p>
|
||||||
<ak-form-element-horizontal
|
<ak-form-element-horizontal
|
||||||
label=${t`External host`}
|
label=${t`External host`}
|
||||||
|
|
|
@ -26,7 +26,7 @@ Make sure to set it to full URL, only configuring a hostname or FQDN will not wo
|
||||||
Routing is handled like this:
|
Routing is handled like this:
|
||||||
|
|
||||||
1. Paths starting with `/static`, `/media` and `/help` return packaged CSS/JS files, and user-uploaded media files.
|
1. Paths starting with `/static`, `/media` and `/help` return packaged CSS/JS files, and user-uploaded media files.
|
||||||
2. Paths starting with `/akprox` are sent to the embedded outpost.
|
2. Paths starting with `/outpost.goauthentik.io` are sent to the embedded outpost.
|
||||||
3. Any hosts configured in the providers assigned to the embedded outpost are sent to the outpost.
|
3. Any hosts configured in the providers assigned to the embedded outpost are sent to the outpost.
|
||||||
4. Everything remaining is sent to the authentik backend server.
|
4. Everything remaining is sent to the authentik backend server.
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ The container is created with the following hardcoded properties:
|
||||||
- `traefik.http.routers.ak-outpost-<outpost-name>-router.rule`: `Host(...)`
|
- `traefik.http.routers.ak-outpost-<outpost-name>-router.rule`: `Host(...)`
|
||||||
- `traefik.http.routers.ak-outpost-<outpost-name>-router.service`: `ak-outpost-<outpost-name>-service`
|
- `traefik.http.routers.ak-outpost-<outpost-name>-router.service`: `ak-outpost-<outpost-name>-service`
|
||||||
- `traefik.http.routers.ak-outpost-<outpost-name>-router.tls`: "true"
|
- `traefik.http.routers.ak-outpost-<outpost-name>-router.tls`: "true"
|
||||||
- `traefik.http.services.ak-outpost-<outpost-name>-service.loadbalancer.healthcheck.path`: "/akprox/ping"
|
- `traefik.http.services.ak-outpost-<outpost-name>-service.loadbalancer.healthcheck.path`: "/outpost.goauthentik.io/ping"
|
||||||
- `traefik.http.services.ak-outpost-<outpost-name>-service.loadbalancer.healthcheck.port`: "9300"
|
- `traefik.http.services.ak-outpost-<outpost-name>-service.loadbalancer.healthcheck.port`: "9300"
|
||||||
- `traefik.http.services.ak-outpost-<outpost-name>-service.loadbalancer.server.port`: "9000"
|
- `traefik.http.services.ak-outpost-<outpost-name>-service.loadbalancer.server.port`: "9000"
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ spec:
|
||||||
# See https://kubernetes.io/docs/concepts/services-networking/service/#externalname
|
# See https://kubernetes.io/docs/concepts/services-networking/service/#externalname
|
||||||
serviceName: ak-outpost-example-outpost
|
serviceName: ak-outpost-example-outpost
|
||||||
servicePort: 9000
|
servicePort: 9000
|
||||||
path: /akprox
|
path: /outpost.goauthentik.io
|
||||||
```
|
```
|
||||||
|
|
||||||
This ingress handles authentication requests, and the sign-in flow.
|
This ingress handles authentication requests, and the sign-in flow.
|
||||||
|
@ -26,9 +26,9 @@ Add these annotations to the ingress you want to protect
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/auth-url: |
|
nginx.ingress.kubernetes.io/auth-url: |
|
||||||
https://outpost.company/akprox/auth/nginx
|
https://outpost.company/outpost.goauthentik.io/auth/nginx
|
||||||
nginx.ingress.kubernetes.io/auth-signin: |
|
nginx.ingress.kubernetes.io/auth-signin: |
|
||||||
https://outpost.company/akprox/start?rd=$escaped_request_uri
|
https://outpost.company/outpost.goauthentik.io/start?rd=$escaped_request_uri
|
||||||
nginx.ingress.kubernetes.io/auth-response-headers: |
|
nginx.ingress.kubernetes.io/auth-response-headers: |
|
||||||
Set-Cookie,X-authentik-username,X-authentik-groups,X-authentik-email,X-authentik-name,X-authentik-uid
|
Set-Cookie,X-authentik-username,X-authentik-groups,X-authentik-email,X-authentik-name,X-authentik-uid
|
||||||
nginx.ingress.kubernetes.io/auth-snippet: |
|
nginx.ingress.kubernetes.io/auth-snippet: |
|
||||||
|
|
|
@ -12,8 +12,8 @@ location / {
|
||||||
proxy_pass $forward_scheme://$server:$port;
|
proxy_pass $forward_scheme://$server:$port;
|
||||||
|
|
||||||
# authentik-specific config
|
# authentik-specific config
|
||||||
auth_request /akprox/auth/nginx;
|
auth_request /outpost.goauthentik.io/auth/nginx;
|
||||||
error_page 401 = @akprox_signin;
|
error_page 401 = @goauthentik_proxy_signin;
|
||||||
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
||||||
add_header Set-Cookie $auth_cookie;
|
add_header Set-Cookie $auth_cookie;
|
||||||
|
|
||||||
|
@ -31,9 +31,9 @@ location / {
|
||||||
proxy_set_header X-authentik-uid $authentik_uid;
|
proxy_set_header X-authentik-uid $authentik_uid;
|
||||||
}
|
}
|
||||||
|
|
||||||
# all requests to /akprox must be accessible without authentication
|
# all requests to /outpost.goauthentik.io must be accessible without authentication
|
||||||
location /akprox {
|
location /outpost.goauthentik.io {
|
||||||
proxy_pass http://outpost.company:9000/akprox;
|
proxy_pass http://outpost.company:9000/outpost.goauthentik.io;
|
||||||
# ensure the host of this vserver matches your external URL you've configured
|
# ensure the host of this vserver matches your external URL you've configured
|
||||||
# in authentik
|
# in authentik
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
|
@ -44,9 +44,9 @@ location /akprox {
|
||||||
|
|
||||||
# Special location for when the /auth endpoint returns a 401,
|
# Special location for when the /auth endpoint returns a 401,
|
||||||
# redirect to the /start URL which initiates SSO
|
# redirect to the /start URL which initiates SSO
|
||||||
location @akprox_signin {
|
location @goauthentik_proxy_signin {
|
||||||
internal;
|
internal;
|
||||||
add_header Set-Cookie $auth_cookie;
|
add_header Set-Cookie $auth_cookie;
|
||||||
return 302 /akprox/start?rd=$request_uri;
|
return 302 /outpost.goauthentik.io/start?rd=$request_uri;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -19,10 +19,10 @@ server {
|
||||||
# proxy_pass http://localhost:5000;
|
# proxy_pass http://localhost:5000;
|
||||||
|
|
||||||
# authentik-specific config
|
# authentik-specific config
|
||||||
auth_request /akprox/auth/nginx;
|
auth_request /outpost.goauthentik.io/auth/nginx;
|
||||||
error_page 401 = @akprox_signin;
|
error_page 401 = @goauthentik_proxy_signin;
|
||||||
# For domain level, use the below error_page to redirect to your authentik server with the full redirect path
|
# For domain level, use the below error_page to redirect to your authentik server with the full redirect path
|
||||||
# error_page 401 =302 https://authentik.company/akprox/start?rd=$scheme://$http_host$request_uri;
|
# error_page 401 =302 https://authentik.company/outpost.goauthentik.io/start?rd=$scheme://$http_host$request_uri;
|
||||||
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
auth_request_set $auth_cookie $upstream_http_set_cookie;
|
||||||
add_header Set-Cookie $auth_cookie;
|
add_header Set-Cookie $auth_cookie;
|
||||||
|
|
||||||
|
@ -40,9 +40,9 @@ server {
|
||||||
proxy_set_header X-authentik-uid $authentik_uid;
|
proxy_set_header X-authentik-uid $authentik_uid;
|
||||||
}
|
}
|
||||||
|
|
||||||
# all requests to /akprox must be accessible without authentication
|
# all requests to /outpost.goauthentik.io must be accessible without authentication
|
||||||
location /akprox {
|
location /outpost.goauthentik.io {
|
||||||
proxy_pass http://outpost.company:9000/akprox;
|
proxy_pass http://outpost.company:9000/outpost.goauthentik.io;
|
||||||
# ensure the host of this vserver matches your external URL you've configured
|
# ensure the host of this vserver matches your external URL you've configured
|
||||||
# in authentik
|
# in authentik
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
|
@ -53,10 +53,10 @@ server {
|
||||||
|
|
||||||
# Special location for when the /auth endpoint returns a 401,
|
# Special location for when the /auth endpoint returns a 401,
|
||||||
# redirect to the /start URL which initiates SSO
|
# redirect to the /start URL which initiates SSO
|
||||||
location @akprox_signin {
|
location @goauthentik_proxy_signin {
|
||||||
internal;
|
internal;
|
||||||
add_header Set-Cookie $auth_cookie;
|
add_header Set-Cookie $auth_cookie;
|
||||||
return 302 /akprox/start?rd=$request_uri;
|
return 302 /outpost.goauthentik.io/start?rd=$request_uri;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -30,9 +30,9 @@ services:
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.enable: true
|
||||||
traefik.port: 9000
|
traefik.port: 9000
|
||||||
traefik.http.routers.authentik.rule: Host(`app.company`) && PathPrefix(`/akprox/`)
|
traefik.http.routers.authentik.rule: Host(`app.company`) && PathPrefix(`/outpost.goauthentik.io/`)
|
||||||
# `authentik-proxy` refers to the service name in the compose file.
|
# `authentik-proxy` refers to the service name in the compose file.
|
||||||
traefik.http.middlewares.authentik.forwardauth.address: http://authentik-proxy:9000/akprox/auth/traefik
|
traefik.http.middlewares.authentik.forwardauth.address: http://authentik-proxy:9000/outpost.goauthentik.io/auth/traefik
|
||||||
traefik.http.middlewares.authentik.forwardauth.trustForwardHeader: true
|
traefik.http.middlewares.authentik.forwardauth.trustForwardHeader: true
|
||||||
traefik.http.middlewares.authentik.forwardauth.authResponseHeaders: X-authentik-username,X-authentik-groups,X-authentik-email,X-authentik-name,X-authentik-uid,X-authentik-jwt,X-authentik-meta-jwks,X-authentik-meta-outpost,X-authentik-meta-provider,X-authentik-meta-app,X-authentik-meta-version
|
traefik.http.middlewares.authentik.forwardauth.authResponseHeaders: X-authentik-username,X-authentik-groups,X-authentik-email,X-authentik-name,X-authentik-uid,X-authentik-jwt,X-authentik-meta-jwks,X-authentik-meta-outpost,X-authentik-meta-provider,X-authentik-meta-app,X-authentik-meta-version
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
|
@ -7,7 +7,7 @@ metadata:
|
||||||
name: authentik
|
name: authentik
|
||||||
spec:
|
spec:
|
||||||
forwardAuth:
|
forwardAuth:
|
||||||
address: http://outpost.company:9000/akprox/auth/traefik
|
address: http://outpost.company:9000/outpost.goauthentik.io/auth/traefik
|
||||||
trustForwardHeader: true
|
trustForwardHeader: true
|
||||||
authResponseHeaders:
|
authResponseHeaders:
|
||||||
- X-authentik-username
|
- X-authentik-username
|
||||||
|
@ -41,7 +41,7 @@ spec:
|
||||||
services: # Unchanged
|
services: # Unchanged
|
||||||
# This part is only required for single-app setups
|
# This part is only required for single-app setups
|
||||||
- kind: Rule
|
- kind: Rule
|
||||||
match: "Host(`app.company`) && PathPrefix(`/akprox/`)"
|
match: "Host(`app.company`) && PathPrefix(`/outpost.goauthentik.io/`)"
|
||||||
priority: 15
|
priority: 15
|
||||||
services:
|
services:
|
||||||
- kind: Service
|
- kind: Service
|
||||||
|
|
|
@ -3,7 +3,7 @@ http:
|
||||||
middlewares:
|
middlewares:
|
||||||
authentik:
|
authentik:
|
||||||
forwardAuth:
|
forwardAuth:
|
||||||
address: http://outpost.company:9000/akprox/auth/traefik
|
address: http://outpost.company:9000/outpost.goauthentik.io/auth/traefik
|
||||||
trustForwardHeader: true
|
trustForwardHeader: true
|
||||||
authResponseHeaders:
|
authResponseHeaders:
|
||||||
- X-authentik-username
|
- X-authentik-username
|
||||||
|
@ -25,7 +25,7 @@ http:
|
||||||
priority: 10
|
priority: 10
|
||||||
services: # Unchanged
|
services: # Unchanged
|
||||||
default-router-auth:
|
default-router-auth:
|
||||||
match: "Host(`app.company`) && PathPrefix(`/akprox/`)"
|
match: "Host(`app.company`) && PathPrefix(`/outpost.goauthentik.io/`)"
|
||||||
priority: 15
|
priority: 15
|
||||||
services: http://outpost.company:9000/akprox
|
services: http://outpost.company:9000/outpost.goauthentik.io
|
||||||
```
|
```
|
||||||
|
|
|
@ -27,7 +27,7 @@ applications to different users.
|
||||||
|
|
||||||
The only configuration difference between single application and domain level is the host you specify.
|
The only configuration difference between single application and domain level is the host you specify.
|
||||||
|
|
||||||
For single application, you'd use the domain which the application is running on, and only /akprox
|
For single application, you'd use the domain which the application is running on, and only /outpost.goauthentik.io
|
||||||
is redirected to the outpost.
|
is redirected to the outpost.
|
||||||
|
|
||||||
For domain level, you'd use the same domain as authentik.
|
For domain level, you'd use the same domain as authentik.
|
||||||
|
|
|
@ -58,11 +58,11 @@ If your upstream host is HTTPS, and you're not using forward auth, you need to a
|
||||||
|
|
||||||
Login is done automatically when you visit the domain without a valid cookie.
|
Login is done automatically when you visit the domain without a valid cookie.
|
||||||
|
|
||||||
When using single-application mode, navigate to `app.domain.tld/akprox/sign_out`.
|
When using single-application mode, navigate to `app.domain.tld/outpost.goauthentik.io/sign_out`.
|
||||||
|
|
||||||
When using domain-level mode, navigate to `auth.domain.tld/akprox/sign_out`, where auth.domain.tld is the external host configured for the provider.
|
When using domain-level mode, navigate to `auth.domain.tld/outpost.goauthentik.io/sign_out`, where auth.domain.tld is the external host configured for the provider.
|
||||||
|
|
||||||
To log out, navigate to `/akprox/sign_out`.
|
To log out, navigate to `/outpost.goauthentik.io/sign_out`.
|
||||||
|
|
||||||
## Allowing unauthenticated requests
|
## Allowing unauthenticated requests
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ slug: "2021.8"
|
||||||
To simplify the setup, an embedded outpost has been added. This outpost runs as part of the main authentik server, and requires no additional setup.
|
To simplify the setup, an embedded outpost has been added. This outpost runs as part of the main authentik server, and requires no additional setup.
|
||||||
|
|
||||||
You can simply assign providers to the embedded outpost, and either use the integrations to configure reverse proxies, or point your traffic to the main authentik server.
|
You can simply assign providers to the embedded outpost, and either use the integrations to configure reverse proxies, or point your traffic to the main authentik server.
|
||||||
Traffic is routed based on host-header, meaning every host that has been configured as a provider and is assigned to the embedded proxy will be sent to the outpost, and every sub-path under `/akprox` is sent to the outpost too. The rest is sent to authentik itself.
|
Traffic is routed based on host-header, meaning every host that has been configured as a provider and is assigned to the embedded proxy will be sent to the outpost, and every sub-path under `/outpost.goauthentik.io` is sent to the outpost too. The rest is sent to authentik itself.
|
||||||
|
|
||||||
- App passwords
|
- App passwords
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ This release mostly removes legacy fields and features that have been deprecated
|
||||||
- internal: route traffic to proxy providers based on cookie domain when multiple domain-level providers exist
|
- internal: route traffic to proxy providers based on cookie domain when multiple domain-level providers exist
|
||||||
- internal: use math.MaxInt for compatibility
|
- internal: use math.MaxInt for compatibility
|
||||||
- lifecycle: add early check for missing/invalid secret key
|
- lifecycle: add early check for missing/invalid secret key
|
||||||
- outposts/proxyv2: allow access to /akprox urls in forward auth mode to make routing in nginx/traefik easier
|
- outposts/proxyv2: allow access to /outpost.goauthentik.io urls in forward auth mode to make routing in nginx/traefik easier
|
||||||
- outposts/proxyv2: fix before-redirect url not being saved in proxy mode
|
- outposts/proxyv2: fix before-redirect url not being saved in proxy mode
|
||||||
- outposts/proxyv2: fix JWKS url pointing to localhost on embedded outpost
|
- outposts/proxyv2: fix JWKS url pointing to localhost on embedded outpost
|
||||||
- providers/oauth2: change default redirect uri behaviour; set first used url when blank and use star for wildcard
|
- providers/oauth2: change default redirect uri behaviour; set first used url when blank and use star for wildcard
|
||||||
|
@ -60,7 +60,7 @@ This release mostly removes legacy fields and features that have been deprecated
|
||||||
|
|
||||||
## Fixed in 2022.1.2
|
## Fixed in 2022.1.2
|
||||||
|
|
||||||
- internal/proxyv2: only allow access to /akprox in nginx mode when forward url could be extracted
|
- internal/proxyv2: only allow access to /outpost.goauthentik.io in nginx mode when forward url could be extracted
|
||||||
- lib: disable backup by default, add note to configuration
|
- lib: disable backup by default, add note to configuration
|
||||||
- lifecycle: replace lowercase, deprecated prometheus_multiproc_dir
|
- lifecycle: replace lowercase, deprecated prometheus_multiproc_dir
|
||||||
- outposts: allow custom label for docker containers
|
- outposts: allow custom label for docker containers
|
||||||
|
|
Reference in New Issue