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.