25 lines
1.1 KiB
Text
25 lines
1.1 KiB
Text
|
|
#!/bin/bash
|
||
|
|
# GENERE par Set-OPS (role serveur_keycloak). Ne pas editer a la main.
|
||
|
|
#
|
||
|
|
# SONDE « identite » — le realm sert sa decouverte OIDC
|
||
|
|
#
|
||
|
|
# Contrat : docs/supervision-conception.md (API des greffons Nagios) — une ligne, 0/1/2.
|
||
|
|
# Mise en defaut PAR PARAMETRE : `serveur_keycloak_sonde_realm` (realm inexistant).
|
||
|
|
set -uo pipefail
|
||
|
|
|
||
|
|
URL={{ serveur_keycloak_sonde_url }}
|
||
|
|
REALM={{ serveur_keycloak_sonde_realm }}
|
||
|
|
|
||
|
|
s=$(curl -s --max-time 10 "${URL}/realms/${REALM}/.well-known/openid-configuration" 2>/dev/null)
|
||
|
|
[[ -n "${s}" ]] || { echo "Keycloak ne repond pas sur ${URL}."; exit 2; }
|
||
|
|
printf '%s' "${s}" | grep -q '"issuer"' \
|
||
|
|
|| { echo "Le realm « ${REALM} » ne sert pas sa decouverte OIDC : ${s:0:70}"; exit 2; }
|
||
|
|
|
||
|
|
# LES POINTS D'ENTREE QUE LES CLIENTS UTILISENT VRAIMENT. Un document de decouverte
|
||
|
|
# tronque se lit comme du JSON valide et casse chaque client a la premiere redirection.
|
||
|
|
for cle in authorization_endpoint token_endpoint jwks_uri; do
|
||
|
|
printf '%s' "${s}" | grep -q "\"${cle}\"" \
|
||
|
|
|| { echo "Decouverte OIDC incomplete pour « ${REALM} » : ${cle} absent."; exit 2; }
|
||
|
|
done
|
||
|
|
echo "Realm « ${REALM} » : decouverte OIDC complete."
|