Could not authenticate you from OpenIDConnect because "<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="darkreader-lock">
<title>
authentik
</title>
<link rel="icon" href="/static/dist/assets/icons/icon.png">
<link rel="shortcut icon" href="/static/dist/assets/icons/icon.png">
<link rel="prefetch" href="/static/dist/assets/images/flow background.jpg" />
<link rel="stylesheet" type="text/css" href="/static/dist/patternfly.min.css">
<link rel="stylesheet" type="text/css" href="/static/dist/theme-dark.css" media="(prefers-color-scheme: dark)">
<script>
window.authentik = {
locale: "fr",
config: json.parse(''),
brand: json.parse(''),
versionfamily: "",
versionsubdomain: "",
build: "",
api: {
base: "",
relbase: "",
},
};
window.addeventlistener("domcontentloaded", function () {
});
</script>
<link rel="stylesheet" type="text/css" href="/static/dist/authentik.css">
<link rel="stylesheet" type="text/css" href="/static/dist/custom.css" data-inject>
<script src="/static/dist/poly-2025.2.4.js" type="module"></script>
<script src="/static/dist/standalone/loading/index-2025.2.4.js" type="module"></script>
<style>
:root {
--ak-flow-background: url("/static/dist/assets/images/flow background.jpg");
--pf-c-background-image--backgroundimage: var(--ak-flow-background);
--pf-c-background-image--backgroundimage-2x: var(--ak-flow-background);
--pf-c-background-image--backgroundimage--sm: var(--ak-flow-background);
--pf-c-background-image--backgroundimage--sm-2x: var(--ak-flow-background);
--pf-c-background-image--backgroundimage--lg: var(--ak-flow-background);
}
/* form with user */
.form-control-static {
margin-top: var(--pf-global--spacer--sm);
display: flex;
align-items: center;
justify-content: space-between;
}
.form-control-static .avatar {
display: flex;
align-items: center;
}
.form-control-static img {
margin-right: var(--pf-global--spacer--xs);
}
.form-control-static a {
padding-top: var(--pf-global--spacer--xs);
padding-bottom: var(--pf-global--spacer--xs);
line-height: var(--pf-global--spacer--xl);
}
</style>
<meta name="sentry-trace" content="f3b5526042124b60b7f369eebafcf870-a3e893aa9ab488dd-0" />
<!-- codincloud sso - branding script -->
<style id="codincloud-hide-footer">
/* masquage immédiat du footer avant le rendu */
footer.pf-c-login footer,
.pf-c-login footer,
.pf-c-login main-footer,
[class*="login footer"] {
display: none !important;
visibility: hidden !important;
opacity: 0 !important;
height: 0 !important;
width: 0 !important;
overflow: hidden !important;
position: absolute !important;
left: -99999px !important;
}
</style>
</head>
<body>
<div class="pf-c-background-image">
</div>
<ak-message-container></ak-message-container>
<div class="pf-c-login stacked">
<div class="ak-login-container">
<main class="pf-c-login main">
<div class="pf-c-login main-header pf-c-brand ak-brand">
<img src="/static/dist/assets/icons/icon left brand.svg" alt="authentik logo" />
</div>
<header class="pf-c-login main-header">
<h1 class="pf-c-title pf-m-3xl">
server error
</h1>
</header>
<div class="pf-c-login main-body">
<form method="post" class="pf-c-form">
<p></p>
<a id="ak-back-home" href="/" class="pf-c-button pf-m-primary">
retourner à l'accueil
</a>
</form>
</div>
</main>
<footer class="pf-c-login footer">
<ul class="pf-c-list pf-m-inline">
<li>
<span>
propulsé par authentik
</span>
</li>
</ul>
</footer>
</div>
</div>
<!-- codincloud sso - footer removal script -->
<script>
(function() {
'use strict';
// configuration codincloud sso
const config = {
footertext: '© 2024 codincloud • connexion sécurisée',
hideselectors: [
'footer.pf-c-login footer',
'.pf-c-login footer',
'.pf-c-login main-footer',
'[class*="login footer"]'
],
checkinterval: 100,
maxattempts: 50
};
// fonction pour masquer le footer dans le dom normal et shadow dom
function hidefooter() {
// 1. masquer dans le dom principal
config.hideselectors.foreach(selector => {
document.queryselectorall(selector).foreach(el => {
el.style.csstext = 'display:none!important;visibility:hidden!important;height:0!important;width:0!important;overflow:hidden!important;position:absolute!important;left:-99999px!important;';
});
});
// 2. parcourir tous les shadow roots
function processelement(element) {
if (element.shadowroot) {
const shadow = element.shadowroot;
// injecter css dans le shadow root
const style = document.createelement('style');
style.textcontent = `
footer.pf-c-login footer,
.pf-c-login footer,
.pf-c-login main-footer,
[class*="login footer"],
footer ul.pf-c-list,
footer li,
footer span {
display: none !important;
visibility: hidden !important;
height: 0 !important;
width: 0 !important;
overflow: hidden !important;
position: absolute !important;
left: -99999px !important;
}
`;
// vérifier si le style existe déjà
if (!shadow.queryselector('#codincloud-shadow-style')) {
style.id = 'codincloud-shadow-style';
shadow.appendchild(style);
}
// masquer directement les éléments
config.hideselectors.foreach(selector => {
shadow.queryselectorall(selector).foreach(el => {
el.style.csstext = 'display:none!important;visibility:hidden!important;height:0!important;width:0!important;';
});
});
// masquer les éléments contenant "authentik" ou "powered"
shadow.queryselectorall('footer li, footer span, .pf-c-login footer li, .pf-c-login footer span').foreach(el => {
if (el.textcontent && (el.textcontent.includes('authentik') || el.textcontent.includes('powered') || el.textcontent.includes('propulsé'))) {
el.style.csstext = 'display:none!important;';
if (el.parentelement) {
el.parentelement.style.csstext = 'display:none!important;';
}
}
});
// récursif pour les éléments dans le shadow
shadow.queryselectorall('*').foreach(processelement);
}
// traiter les enfants
element.queryselectorall('*').foreach(child => {
if (child.shadowroot) {
processelement(child);
}
});
}
// traiter le document entier
processelement(document.body);
// 3. chercher spécifiquement ak-flow-executor
const flowexecutor = document.queryselector('ak-flow-executor');
if (flowexecutor && flowexecutor.shadowroot) {
processelement(flowexecutor);
}
}
// observer pour les changements dom
let attempts = 0;
const observer = new mutationobserver((mutations) => {
hidefooter();
});
// fonction d'initialisation
function init() {
// masquer immédiatement
hidefooter();
// observer les changements
observer.observe(document.body, {
childlist: true,
subtree: true,
attributes: true,
attributefilter: ['class', 'style']
});
// vérification périodique pour les éléments chargés dynamiquement
const interval = setinterval(() => {
hidefooter();
attempts++;
if (attempts >= config.maxattempts) {
clearinterval(interval);
}
}, config.checkinterval);
// arrêter après 10 secondes
settimeout(() => {
clearinterval(interval);
}, 10000);
}
// lancer à différents moments
if (document.readystate === 'loading') {
document.addeventlistener('domcontentloaded', init);
} else {
init();
}
// aussi au chargement complet
window.addeventlistener('load', hidefooter);
// et après un délai pour les composants asynchrones
settimeout(hidefooter, 500);
settimeout(hidefooter, 1000);
settimeout(hidefooter, 2000);
settimeout(hidefooter, 3000);
console.log('🔒 codincloud sso branding active');
})();
</script>
</body>
</html>
".
GitLab CodinCloud
☁️ GitLab CodinCloud
Plateforme DevOps unifiée pour vos projets
🔐 Authentification Centralisée
Connectez-vous avec votre compte
CodinCloud SSO
CI/CD • Code Review • Container Registry • DevSecOps