#!/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."