outpost: forwardAuth mode (#790)

This commit is contained in:
Jens L
2021-04-29 18:17:10 +02:00
committed by GitHub
parent ad8ee83697
commit 2a409215d3
12 changed files with 433 additions and 97 deletions

View File

@ -117,7 +117,7 @@ msgid "Additional user DN, prepended to the Base DN."
msgstr "Additional user DN, prepended to the Base DN."
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:132
#: src/pages/providers/proxy/ProxyProviderForm.ts:130
#: src/pages/providers/proxy/ProxyProviderForm.ts:153
#: src/pages/providers/saml/SAMLProviderForm.ts:117
#: src/pages/sources/saml/SAMLSourceForm.ts:134
msgid "Advanced protocol settings"
@ -305,7 +305,7 @@ msgid "Authorization URL"
msgstr "Authorization URL"
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:62
#: src/pages/providers/proxy/ProxyProviderForm.ts:80
#: src/pages/providers/proxy/ProxyProviderForm.ts:104
#: src/pages/providers/saml/SAMLProviderForm.ts:59
#: src/pages/providers/saml/SAMLProviderImportForm.ts:44
msgid "Authorization flow"
@ -433,7 +433,7 @@ msgid "Case insensitive matching"
msgstr "Case insensitive matching"
#: src/pages/crypto/CertificateKeyPairForm.ts:51
#: src/pages/providers/proxy/ProxyProviderForm.ts:134
#: src/pages/providers/proxy/ProxyProviderForm.ts:157
msgid "Certificate"
msgstr "Certificate"
@ -1123,6 +1123,14 @@ msgstr "Enable Static Tokens"
msgid "Enable TOTP"
msgstr "Enable TOTP"
#: src/pages/providers/proxy/ProxyProviderForm.ts:140
msgid "Enable forward-auth mode"
msgstr "Enable forward-auth mode"
#: src/pages/providers/proxy/ProxyProviderForm.ts:144
msgid "Enable this if you don't want to use this provider as a proxy, and want to use it with Traefik's forwardAuth or nginx's auth_request."
msgstr "Enable this if you don't want to use this provider as a proxy, and want to use it with Traefik's forwardAuth or nginx's auth_request."
#: src/pages/policies/BoundPoliciesList.ts:41
#: src/pages/policies/PolicyBindingForm.ts:199
#: src/pages/sources/ldap/LDAPSourceForm.ts:69
@ -1281,7 +1289,7 @@ msgstr "External Applications which use authentik as Identity-Provider, utilizin
msgid "External Host"
msgstr "External Host"
#: src/pages/providers/proxy/ProxyProviderForm.ts:119
#: src/pages/providers/proxy/ProxyProviderForm.ts:127
msgid "External host"
msgstr "External host"
@ -1376,7 +1384,7 @@ msgid "Flow used by an authenticated user to configure this Stage. If empty, use
msgstr "Flow used by an authenticated user to configure this Stage. If empty, user will not be able to configure this stage."
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:76
#: src/pages/providers/proxy/ProxyProviderForm.ts:94
#: src/pages/providers/proxy/ProxyProviderForm.ts:118
#: src/pages/providers/saml/SAMLProviderForm.ts:73
#: src/pages/providers/saml/SAMLProviderImportForm.ts:57
msgid "Flow used when authorizing this provider."
@ -1474,11 +1482,11 @@ msgstr "Groups"
msgid "HS256 (Symmetric Encryption)"
msgstr "HS256 (Symmetric Encryption)"
#: src/pages/providers/proxy/ProxyProviderForm.ts:64
#: src/pages/providers/proxy/ProxyProviderForm.ts:66
msgid "HTTP-Basic Password Key"
msgstr "HTTP-Basic Password Key"
#: src/pages/providers/proxy/ProxyProviderForm.ts:58
#: src/pages/providers/proxy/ProxyProviderForm.ts:60
msgid "HTTP-Basic Username Key"
msgstr "HTTP-Basic Username Key"
@ -1587,11 +1595,11 @@ msgstr "Internal Host"
msgid "Internal application name, used in URLs."
msgstr "Internal application name, used in URLs."
#: src/pages/providers/proxy/ProxyProviderForm.ts:103
#: src/pages/providers/proxy/ProxyProviderForm.ts:78
msgid "Internal host"
msgstr "Internal host"
#: src/pages/providers/proxy/ProxyProviderForm.ts:113
#: src/pages/providers/proxy/ProxyProviderForm.ts:88
msgid "Internal host SSL Validation"
msgstr "Internal host SSL Validation"
@ -1728,8 +1736,8 @@ msgstr "Loading"
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:74
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:185
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:203
#: src/pages/providers/proxy/ProxyProviderForm.ts:92
#: src/pages/providers/proxy/ProxyProviderForm.ts:145
#: src/pages/providers/proxy/ProxyProviderForm.ts:116
#: src/pages/providers/proxy/ProxyProviderForm.ts:168
#: src/pages/providers/saml/SAMLProviderForm.ts:71
#: src/pages/providers/saml/SAMLProviderForm.ts:133
#: src/pages/providers/saml/SAMLProviderForm.ts:149
@ -1899,7 +1907,7 @@ msgstr "Monitor"
#: src/pages/providers/ProviderListPage.ts:52
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:56
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:73
#: src/pages/providers/proxy/ProxyProviderForm.ts:74
#: src/pages/providers/proxy/ProxyProviderForm.ts:98
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:64
#: src/pages/providers/saml/SAMLProviderForm.ts:53
#: src/pages/providers/saml/SAMLProviderImportForm.ts:38
@ -2400,7 +2408,7 @@ msgid "Property mappings used to user creation."
msgstr "Property mappings used to user creation."
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:81
#: src/pages/providers/proxy/ProxyProviderForm.ts:99
#: src/pages/providers/proxy/ProxyProviderForm.ts:123
#: src/pages/providers/saml/SAMLProviderForm.ts:78
#: src/pages/sources/oauth/OAuthSourceForm.ts:122
#: src/pages/sources/saml/SAMLSourceForm.ts:76
@ -2531,7 +2539,7 @@ msgstr "Refresh Code"
msgid "Register device"
msgstr "Register device"
#: src/pages/providers/proxy/ProxyProviderForm.ts:153
#: src/pages/providers/proxy/ProxyProviderForm.ts:176
msgid "Regular expressions for which authentication is not required. Each new line is interpreted as a new Regular Expression."
msgstr "Regular expressions for which authentication is not required. Each new line is interpreted as a new Regular Expression."
@ -2774,11 +2782,11 @@ msgstr "Session not valid on or after current time + this value (Format: hours=1
msgid "Session valid not on or after"
msgstr "Session valid not on or after"
#: src/pages/providers/proxy/ProxyProviderForm.ts:163
#: src/pages/providers/proxy/ProxyProviderForm.ts:186
msgid "Set HTTP-Basic Authentication"
msgstr "Set HTTP-Basic Authentication"
#: src/pages/providers/proxy/ProxyProviderForm.ts:166
#: src/pages/providers/proxy/ProxyProviderForm.ts:189
msgid "Set a custom HTTP-Basic Authentication header based on values from authentik."
msgstr "Set a custom HTTP-Basic Authentication header based on values from authentik."
@ -2828,7 +2836,7 @@ msgstr "Signing keypair"
msgid "Single Prompts that can be used for Prompt Stages."
msgstr "Single Prompts that can be used for Prompt Stages."
#: src/pages/providers/proxy/ProxyProviderForm.ts:150
#: src/pages/providers/proxy/ProxyProviderForm.ts:173
msgid "Skip path regex"
msgstr "Skip path regex"
@ -3040,7 +3048,7 @@ msgid "Successfully created prompt."
msgstr "Successfully created prompt."
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:49
#: src/pages/providers/proxy/ProxyProviderForm.ts:49
#: src/pages/providers/proxy/ProxyProviderForm.ts:51
#: src/pages/providers/saml/SAMLProviderForm.ts:46
msgid "Successfully created provider."
msgstr "Successfully created provider."
@ -3176,7 +3184,7 @@ msgid "Successfully updated prompt."
msgstr "Successfully updated prompt."
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:46
#: src/pages/providers/proxy/ProxyProviderForm.ts:46
#: src/pages/providers/proxy/ProxyProviderForm.ts:48
#: src/pages/providers/saml/SAMLProviderForm.ts:43
msgid "Successfully updated provider."
msgstr "Successfully updated provider."
@ -3325,7 +3333,7 @@ msgstr "Text: Simple Text input"
msgid "The URL \"{0}\" was not found."
msgstr "The URL \"{0}\" was not found."
#: src/pages/providers/proxy/ProxyProviderForm.ts:123
#: src/pages/providers/proxy/ProxyProviderForm.ts:131
msgid "The external URL you'll access the outpost at."
msgstr "The external URL you'll access the outpost at."
@ -3635,7 +3643,7 @@ msgstr "Update details"
msgid "Update {0}"
msgstr "Update {0}"
#: src/pages/providers/proxy/ProxyProviderForm.ts:107
#: src/pages/providers/proxy/ProxyProviderForm.ts:82
msgid "Upstream host that the requests are forwarded to."
msgstr "Upstream host that the requests are forwarded to."
@ -3721,11 +3729,11 @@ msgstr "User's avatar"
msgid "User's display name."
msgstr "User's display name."
#: src/pages/providers/proxy/ProxyProviderForm.ts:67
#: src/pages/providers/proxy/ProxyProviderForm.ts:69
msgid "User/Group Attribute used for the password part of the HTTP-Basic Header."
msgstr "User/Group Attribute used for the password part of the HTTP-Basic Header."
#: src/pages/providers/proxy/ProxyProviderForm.ts:61
#: src/pages/providers/proxy/ProxyProviderForm.ts:63
msgid "User/Group Attribute used for the user part of the HTTP-Basic Header. If not set, the user's Email address is used."
msgstr "User/Group Attribute used for the user part of the HTTP-Basic Header. If not set, the user's Email address is used."
@ -3766,7 +3774,7 @@ msgstr "Using source"
msgid "Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows."
msgstr "Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows."
#: src/pages/providers/proxy/ProxyProviderForm.ts:116
#: src/pages/providers/proxy/ProxyProviderForm.ts:91
msgid "Validate SSL Certificates of upstream servers."
msgstr "Validate SSL Certificates of upstream servers."

View File

@ -117,7 +117,7 @@ msgid "Additional user DN, prepended to the Base DN."
msgstr ""
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:132
#: src/pages/providers/proxy/ProxyProviderForm.ts:130
#: src/pages/providers/proxy/ProxyProviderForm.ts:153
#: src/pages/providers/saml/SAMLProviderForm.ts:117
#: src/pages/sources/saml/SAMLSourceForm.ts:134
msgid "Advanced protocol settings"
@ -301,7 +301,7 @@ msgid "Authorization URL"
msgstr ""
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:62
#: src/pages/providers/proxy/ProxyProviderForm.ts:80
#: src/pages/providers/proxy/ProxyProviderForm.ts:104
#: src/pages/providers/saml/SAMLProviderForm.ts:59
#: src/pages/providers/saml/SAMLProviderImportForm.ts:44
msgid "Authorization flow"
@ -429,7 +429,7 @@ msgid "Case insensitive matching"
msgstr ""
#: src/pages/crypto/CertificateKeyPairForm.ts:51
#: src/pages/providers/proxy/ProxyProviderForm.ts:134
#: src/pages/providers/proxy/ProxyProviderForm.ts:157
msgid "Certificate"
msgstr ""
@ -1115,6 +1115,14 @@ msgstr ""
msgid "Enable TOTP"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:140
msgid "Enable forward-auth mode"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:144
msgid "Enable this if you don't want to use this provider as a proxy, and want to use it with Traefik's forwardAuth or nginx's auth_request."
msgstr ""
#: src/pages/policies/BoundPoliciesList.ts:41
#: src/pages/policies/PolicyBindingForm.ts:199
#: src/pages/sources/ldap/LDAPSourceForm.ts:69
@ -1273,7 +1281,7 @@ msgstr ""
msgid "External Host"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:119
#: src/pages/providers/proxy/ProxyProviderForm.ts:127
msgid "External host"
msgstr ""
@ -1368,7 +1376,7 @@ msgid "Flow used by an authenticated user to configure this Stage. If empty, use
msgstr ""
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:76
#: src/pages/providers/proxy/ProxyProviderForm.ts:94
#: src/pages/providers/proxy/ProxyProviderForm.ts:118
#: src/pages/providers/saml/SAMLProviderForm.ts:73
#: src/pages/providers/saml/SAMLProviderImportForm.ts:57
msgid "Flow used when authorizing this provider."
@ -1466,11 +1474,11 @@ msgstr ""
msgid "HS256 (Symmetric Encryption)"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:64
#: src/pages/providers/proxy/ProxyProviderForm.ts:66
msgid "HTTP-Basic Password Key"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:58
#: src/pages/providers/proxy/ProxyProviderForm.ts:60
msgid "HTTP-Basic Username Key"
msgstr ""
@ -1579,11 +1587,11 @@ msgstr ""
msgid "Internal application name, used in URLs."
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:103
#: src/pages/providers/proxy/ProxyProviderForm.ts:78
msgid "Internal host"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:113
#: src/pages/providers/proxy/ProxyProviderForm.ts:88
msgid "Internal host SSL Validation"
msgstr ""
@ -1720,8 +1728,8 @@ msgstr ""
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:74
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:185
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:203
#: src/pages/providers/proxy/ProxyProviderForm.ts:92
#: src/pages/providers/proxy/ProxyProviderForm.ts:145
#: src/pages/providers/proxy/ProxyProviderForm.ts:116
#: src/pages/providers/proxy/ProxyProviderForm.ts:168
#: src/pages/providers/saml/SAMLProviderForm.ts:71
#: src/pages/providers/saml/SAMLProviderForm.ts:133
#: src/pages/providers/saml/SAMLProviderForm.ts:149
@ -1891,7 +1899,7 @@ msgstr ""
#: src/pages/providers/ProviderListPage.ts:52
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:56
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:73
#: src/pages/providers/proxy/ProxyProviderForm.ts:74
#: src/pages/providers/proxy/ProxyProviderForm.ts:98
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:64
#: src/pages/providers/saml/SAMLProviderForm.ts:53
#: src/pages/providers/saml/SAMLProviderImportForm.ts:38
@ -2392,7 +2400,7 @@ msgid "Property mappings used to user creation."
msgstr ""
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:81
#: src/pages/providers/proxy/ProxyProviderForm.ts:99
#: src/pages/providers/proxy/ProxyProviderForm.ts:123
#: src/pages/providers/saml/SAMLProviderForm.ts:78
#: src/pages/sources/oauth/OAuthSourceForm.ts:122
#: src/pages/sources/saml/SAMLSourceForm.ts:76
@ -2523,7 +2531,7 @@ msgstr ""
msgid "Register device"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:153
#: src/pages/providers/proxy/ProxyProviderForm.ts:176
msgid "Regular expressions for which authentication is not required. Each new line is interpreted as a new Regular Expression."
msgstr ""
@ -2766,11 +2774,11 @@ msgstr ""
msgid "Session valid not on or after"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:163
#: src/pages/providers/proxy/ProxyProviderForm.ts:186
msgid "Set HTTP-Basic Authentication"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:166
#: src/pages/providers/proxy/ProxyProviderForm.ts:189
msgid "Set a custom HTTP-Basic Authentication header based on values from authentik."
msgstr ""
@ -2820,7 +2828,7 @@ msgstr ""
msgid "Single Prompts that can be used for Prompt Stages."
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:150
#: src/pages/providers/proxy/ProxyProviderForm.ts:173
msgid "Skip path regex"
msgstr ""
@ -3032,7 +3040,7 @@ msgid "Successfully created prompt."
msgstr ""
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:49
#: src/pages/providers/proxy/ProxyProviderForm.ts:49
#: src/pages/providers/proxy/ProxyProviderForm.ts:51
#: src/pages/providers/saml/SAMLProviderForm.ts:46
msgid "Successfully created provider."
msgstr ""
@ -3168,7 +3176,7 @@ msgid "Successfully updated prompt."
msgstr ""
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:46
#: src/pages/providers/proxy/ProxyProviderForm.ts:46
#: src/pages/providers/proxy/ProxyProviderForm.ts:48
#: src/pages/providers/saml/SAMLProviderForm.ts:43
msgid "Successfully updated provider."
msgstr ""
@ -3317,7 +3325,7 @@ msgstr ""
msgid "The URL \"{0}\" was not found."
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:123
#: src/pages/providers/proxy/ProxyProviderForm.ts:131
msgid "The external URL you'll access the outpost at."
msgstr ""
@ -3623,7 +3631,7 @@ msgstr ""
msgid "Update {0}"
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:107
#: src/pages/providers/proxy/ProxyProviderForm.ts:82
msgid "Upstream host that the requests are forwarded to."
msgstr ""
@ -3709,11 +3717,11 @@ msgstr ""
msgid "User's display name."
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:67
#: src/pages/providers/proxy/ProxyProviderForm.ts:69
msgid "User/Group Attribute used for the password part of the HTTP-Basic Header."
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:61
#: src/pages/providers/proxy/ProxyProviderForm.ts:63
msgid "User/Group Attribute used for the user part of the HTTP-Basic Header. If not set, the user's Email address is used."
msgstr ""
@ -3754,7 +3762,7 @@ msgstr ""
msgid "Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows."
msgstr ""
#: src/pages/providers/proxy/ProxyProviderForm.ts:116
#: src/pages/providers/proxy/ProxyProviderForm.ts:91
msgid "Validate SSL Certificates of upstream servers."
msgstr ""

View File

@ -19,6 +19,7 @@ export class ProxyProviderFormPage extends Form<ProxyProvider> {
}).then(provider => {
this.provider = provider;
this.showHttpBasic = first(provider.basicAuthEnabled, true);
this.showInternalServer = first(!provider.forwardAuthMode, true);
});
}
@ -28,6 +29,9 @@ export class ProxyProviderFormPage extends Form<ProxyProvider> {
@property({type: Boolean})
showHttpBasic = true;
@property({type: Boolean})
showInternalServer = true;
getSuccessMessage(): string {
if (this.provider) {
return t`Successfully updated provider.`;
@ -67,6 +71,28 @@ export class ProxyProviderFormPage extends Form<ProxyProvider> {
</ak-form-element-horizontal>`;
}
renderInternalServer(): TemplateResult {
if (!this.showInternalServer) {
return html``;
}
return html`<ak-form-element-horizontal
label=${t`Internal host`}
?required=${true}
name="internalHost">
<input type="text" value="${ifDefined(this.provider?.internalHost)}" class="pf-c-form-control" required>
<p class="pf-c-form__helper-text">${t`Upstream host that the requests are forwarded to.`}</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal name="internalHostSslValidation">
<div class="pf-c-check">
<input type="checkbox" class="pf-c-check__input" ?checked=${first(this.provider?.internalHostSslValidation, true)}>
<label class="pf-c-check__label">
${t`Internal host SSL Validation`}
</label>
</div>
<p class="pf-c-form__helper-text">${t`Validate SSL Certificates of upstream servers.`}</p>
</ak-form-element-horizontal>`;
}
renderForm(): TemplateResult {
return html`<form class="pf-c-form pf-m-horizontal">
<ak-form-element-horizontal
@ -97,22 +123,6 @@ export class ProxyProviderFormPage extends Form<ProxyProvider> {
${t`Protocol settings`}
</span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${t`Internal host`}
?required=${true}
name="internalHost">
<input type="text" value="${ifDefined(this.provider?.internalHost)}" class="pf-c-form-control" required>
<p class="pf-c-form__helper-text">${t`Upstream host that the requests are forwarded to.`}</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal name="internalHostSslValidation">
<div class="pf-c-check">
<input type="checkbox" class="pf-c-check__input" ?checked=${first(this.provider?.internalHostSslValidation, true)}>
<label class="pf-c-check__label">
${t`Internal host SSL Validation`}
</label>
</div>
<p class="pf-c-form__helper-text">${t`Validate SSL Certificates of upstream servers.`}</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${t`External host`}
?required=${true}
@ -120,6 +130,21 @@ export class ProxyProviderFormPage extends Form<ProxyProvider> {
<input type="text" value="${ifDefined(this.provider?.externalHost)}" class="pf-c-form-control" required>
<p class="pf-c-form__helper-text">${t`The external URL you'll access the outpost at.`}</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal name="forwardAuthMode">
<div class="pf-c-check">
<input type="checkbox" class="pf-c-check__input" ?checked=${first(this.provider?.forwardAuthMode, false)} @change=${(ev: Event) => {
const el = ev.target as HTMLInputElement;
this.showInternalServer = !el.checked;
}}>
<label class="pf-c-check__label">
${t`Enable forward-auth mode`}
</label>
</div>
<p class="pf-c-form__helper-text">
${t`Enable this if you don't want to use this provider as a proxy, and want to use it with Traefik's forwardAuth or nginx's auth_request.`}
</p>
</ak-form-element-horizontal>
${this.renderInternalServer()}
</div>
</ak-form-group>