{username}); all the global permissions, project, and cluster role bindings of this {vendor} user will also apply to the {provider} user.'
+ associatedWarning: 'Note: The {provider} user you authenticate as will be associated as an alternate way to login to the {vendor} user you are currently logged in as {username}; all the global permissions, project, and cluster role bindings of this {vendor} user will also apply to the {provider} user.'
github:
clientId:
label: Client ID
@@ -376,6 +376,27 @@ authConfig:
graphEndpoint: Graph Endpoint
tokenEndpoint: Token Endpoint
authEndpoint: Auth Endpoint
+ oidc:
+ oidc: Configure an OIDC account
+ keycloakoidc: Configure a Keycloak OIDC account
+ rancherUrl: Rancher URL
+ clientId: Client ID
+ clientSecret: Client Secret
+ customEndpoint:
+ label: Endpoints
+ custom: Specify (advanced)
+ standard: Generate
+ keycloak:
+ url: Keycloak URL
+ realm: Keycloak Realm
+ issuer: Issuer
+ authEndpoint: Auth Endpoint
+ cert:
+ label: Certificate
+ placeholder: Paste in the certificate, starting with -----BEGIN CERTIFICATE-----
+ key:
+ label: Private Key
+ placeholder: Paste in the private key, typically starting with -----BEGIN RSA PRIVATE KEY-----
stateBanner:
disabled: 'The {provider} authentication provider is currently disabled.'
enabled: 'The {provider} authentication provider is currently enabled.'
@@ -3912,6 +3933,10 @@ model:
ldap: LDAP
saml: SAML
oauth: OAuth
+ oidc: OIDC
+ name:
+ keycloak: Keycloak (SAML)
+ keycloakoidc: Keycloak (OIDC)
provider:
system: System
local: Local
@@ -3928,6 +3953,8 @@ model:
okta: Okta
freeipa: FreeIPA
googleoauth: Google
+ oidc: OIDC
+ keycloakoidc: Keycloak
cluster:
name: Cluster Name
diff --git a/components/InfoBox.vue b/components/InfoBox.vue
index 306f0fe84d..0c48479299 100644
--- a/components/InfoBox.vue
+++ b/components/InfoBox.vue
@@ -37,7 +37,6 @@ export default {
.step-number {
border-radius: var(--border-radius);
background: var(--secondary);
- color: var(--body-bg);
display: inline-block;
padding: 5px 10px;
}
diff --git a/components/auth/Principal.vue b/components/auth/Principal.vue
index 2e96b09aed..fa32a3a7df 100644
--- a/components/auth/Principal.vue
+++ b/components/auth/Principal.vue
@@ -24,14 +24,16 @@ export default {
return;
}
+ const principalId = escape(this.value).replace(/\//g, '%2F');
+
try {
this.principal = await this.$store.dispatch('rancher/find', {
type: NORMAN.PRINCIPAL,
id: this.value,
- opt: { url: `/v3/principals/${ escape(this.value).replace(/\//g, '%2F') }` }
+ opt: { url: `/v3/principals/${ principalId }` }
});
} catch (e) {
- // Meh...
+ console.error('Failed to fetch principal', this.value, principalId); // eslint-disable-line no-console
}
},
diff --git a/components/auth/login/oidc.vue b/components/auth/login/oidc.vue
new file mode 100644
index 0000000000..1c3f2b7c4b
--- /dev/null
+++ b/components/auth/login/oidc.vue
@@ -0,0 +1,21 @@
+
+
+
+