Keycloak - Interconnexions#
Keycloak peut s'appuyer sur des sources d'authentifications externes par le biais d'IDP (IDentity Provider). Cette documentation décrit les étapes nécessaires pour celles actuellement supportées.
IDP Caascad#
L'IDP Caascad est utilisé comme source d'authentification et d'autorisation pour les membres de la Product Factory.
La liste de ces utilisateurs est définie dans le fichier envs-ng/users.cue. Ils sont provisionnés sur le Keycloak de la zone Corp.
Procédure pour NGOT#
Déployer Keycloak#
Déployer Keycloak sur la zone de service souhaitée en suivant la documentation de Bootstrap.
Configurer la whitelist Corp#
Il faut autoriser les connexions provenant du nouveau Keycloak sur le Load Balancer de Corp, à destination du Keycloak Caascad.
Récupérer l'adresse IP du Load Balancer soit :
- Via l'URL du Keycloak, par défaut :
auth.\(zone.dns_domain) - Via l'URL du Load Balancer, par défaut :
keycloak-\(zone.name).\(zone.service_dns_domain).
dig +short "${URL}"
# Exemple :
# $ dig +short auth.obs-signon-stg.csfpriv.com
# keycloak-svc-signon-stg.svc.csfpriv.com.
# 90.84.169.189
Ajouter cette adresse IP dans l'IPAM NGOT, par exemple :
ipam_ngot: services: mon_service: {
"svc-mon-service-stg": ["90.x.x.x/32"]
"svc-mon-service-prd": ["90.y.y.y/32"]
}
Éditer la whitelist de Corp
whitelists: private: {
"TCP/443": {
// Allow keycloak from signon NGOT zones to reach keycloak corp
"svc-signon-stg": strings.Join(ipam_ngot.services.signon["svc-signon-stg"], ",")
"svc-signon-prd": strings.Join(ipam_ngot.services.signon["svc-signon-prd"], ",")
// Allow keycloak mon-service to reach keycloak corp
"svc-mon-service-stg": strings.Join(ipam_ngot.services.signon["svc-mon-service-stg"], ",")
"svc-mon-service-prd": strings.Join(ipam_ngot.services.signon["svc-mon-service-prd"], ",")
}
...
}
Se positionner dans le contexte PF et appliquer la whitelist sur Corp :
trackbone apply -z corp -c fe_whitelist
Ajouter les clients OIDC sur Corp#
Ajouter un client OIDC sur Corp.
Déployer l'IDP#
Déployer l'IDP Caascad sur la zone de service souhaitée, dans le realm souhaité (par défaut zone.name) :
export ZONE_NAME='svc-mon-service-stg'
trackbone apply -z "${ZONE_NAME}" -c keycloak_idp_caascad
IDP Signon#
L'IDP Signon est utilisé comme source d'authentification et d'autorisation pour le projet NGOT. Il se base sur l'AD-SUBS. Le provisioning des droits, habilitations, applications est réalisé via le service MyPortal.
À noter que nos environnements de staging sont à raccorder sur le Signon de Production et en utilisant les objets Signon dédié à nos plateformes de staging (applications, groupes fonctionnels, utilisateurs internes et clients externes).
Procédure pour NGOT#
Déployer Keycloak#
Déployer Keycloak sur la zone de service souhaitée en suivant la documentation de Bootstrap.
Déployer l'IDP#
Déployer l'IDP Signon sur la zone de service souhaitée, dans le realm souhaité (par défaut zone.name) :
export ZONE_NAME='svc-mon-service-stg'
trackbone apply -z "${ZONE_NAME}" -c keycloak_idp_signon
Demande d'interconnexion#
Pour créer une interconnexion entre Keycloak et Signon, il faut créer un ticket Jira (Ressource DX ISA / SIGNON) :
- Produit :
Sign-On sign-on.orange-business.com - Catalogue :
Enregistrement d'une application.
S'il s'agit d'un nouveau domaine (Par ex : caascad.com ; cloudservicesfactory.com ; csfpriv.com) côté Keycloak, préciser le dans le ticket car côté Signon, ils doivent autoriser ce domaine.
Il faudra fournir les métadonnées de l'IDP du précédant realm via :
- L'URL vers ces métadonnées (Si accessible depuis les réseaux internes Orange)
- Ou le fichier contenant ces métadonnées.
API Habilitation#
Diagramme fonctionnel#
Support#
Usage & Services#
Source : Jean-Christophe Martin
Rappel des SLA1 :
| Plage de service | GTI2 | GTR3 | GTD4 | GTT5 | |
|---|---|---|---|---|---|
| Premium | 24/7 | 15mim | 4h | 99.85% | 2J (HO6) |
| Business | 24/7 | 30min | 8h | 99.5% | 2J (HO6) |
| Essential+ | HO6 | 4h | 2J (HO6) | 99% | 2J (HO6) |
| Essential | HO6 | 2J (HO6) | 6J (HO6) | 99.5% | Sans engagement |
SLA du service Signon :
| Outil | SLA1 |
|---|---|
| Signon | Essential+ |
Toute de demande de support pour le service Signon passe par un ticket Jira (Ressource DX ISA / SIGNON).
Il vous suffira donc de décrire précisément le problème rencontré.
Documentations externe#
Ces documentations sont accessibles depuis Internet avec un compte Plazza. La liste des documentations concernant Signon :
Intégration#
Note
La liste des échanges avec le support est retranscrite sur leur espace confluence.
Contacts :
- MyPortal / Signon - Devel : Jean-Christophe MARTIN
- APIGEE - Infra réseau : Julien SIMON.
