Aller au contenu

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#

Diagramme APIGEE 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 :


  1. Service-Level Agreement (Niveau de qualité de service). ↩↩

  2. Garantie de Temps d'Intervention. ↩

  3. Garantie de Temps de Rétablissement. ↩

  4. Garantie de Temps de Disponibilité. ↩

  5. Garantie de Temps de Traitement des demandes / changements standard. ↩

  6. Heure Ouvrable. ↩↩↩↩↩↩↩↩