March 26, 2019

Ansible : Automatiser la gestion de serveurs


Introduction



Ansible est un logiciel de déploiement/configuration à distance, créé par M. De Hann ( Redhat : Cobbler et Func) et est écrit en python. Il utilise seulement SSH et ne nécessite pas de serveur : une simple station de travail peut suffire. Il est bon de noter qu'il fonctionne en mode push (de Ansible vers le serveur cible). La machine hébergeant Ansible ne nécessite que python 2.4+, et Ansible est extensible en n'importe quel langage.

Cette solution est plutôt dédiée à un usage professionnel.


Installer Ansible



J'ai mis en œuvre Ansible sur  : CentOS7. 
Je décris ici l'installation.


CentOS



Il est nécessaire d'installer les dépôts EPEL.

Ensuite, installer Ansible via

Code BASH :
yum install ansible

Préparer le terrain




Configurer le "serveur" Ansible



Sur la machine qui possède Ansible, configurer le fichier /etc/hosts avec le nom des hôtes :

Code BASH :

infra ~ # cat /etc/hosts
127.0.0.1       localhost.localdomain localhost
10.21.27.11     cluster1.adrien.lan cluster1
10.21.27.12     cluster2.adrien.lan cluster2
10.21.27.125    rhelsrv1
10.21.27.127    rhelsrv2
10.21.27.130    debsrv1
10.21.27.121    debsrv2
 

Partie SSH

On génère ensuite une paire de clés SSH :

Code BASH :

infra ~ # ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d8:de:8e:f9:a4:44:07:a7:ec:dc:ed:81:10:ef:1e:b8 root@rhelsrv1
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|        o .      |
|       + *       |
|      . S o      |
|       = B o     |
|        * B o    |
|       . O o .   |
|        E.+ .    |
+-----------------+


Puis on copie notre clé sur chaque serveur :

Code BASH :
infra ~ # ssh-copy-id rhelsrv1
infra ~ # ssh-copy-id rhelsrv2
infra ~ # ssh-copy-id cluster1
infra ~ # ssh-copy-id cluster2
infra ~ # ssh-copy-id debsrv1
infra ~ # ssh-copy-id debsrv2
 


On peut vérifier le bon fonctionnement en se connectant à chacune des machines...


Configuration des hôtes Ansible



Pour plus de facilité, je me rend dans le dossier ansible :

Code BASH :

infra ~ # cd /etc/ansible

Tout se passe dans le fichier /etc/ansible/hosts. On édite le fichier. Voici un exemple :

Code BASH :

[rhel]
rhelsrv1
rhelsrv2
[cluster]
cluster1
cluster2
[sambaservers]
debsrv1
debsrv2
 

Entre crochet, on trouve les groupes d'hôtes, avec les hôtes concernés en dessous.
Ici, j'ai donc 3 groupes, un rhel avec les hôtes rhelsrv1 et rhelsrv2 et le groupe cluster avec cluster1 et cluster2 etc...

Il est tout à fait possible d'avoir Ansible installé sur une machine Calculate Linux, et d'installer des paquets sur une distribution Linux autre (CentOS, Debian ...)


Utiliser Ansible



Ansible s'articule autour de modules.
Plus d'infos sur les modules : http://docs.ansible.com/list_of_all_modules.html

Tester la communication



Pour tester la communication, on peut utiliser le module ping d'Ansible :

Code BASH :
ansible -m ping all


all ici signifie tous les hôtes :

Code BASH :
 
cluster1 | success >> {
    "changed": false, 
    "ping": "pong"
}
cluster2 | success >> {
    "changed": false, 
    "ping": "pong"
}
rhelsrv2 | success >> {
    "changed": false, 
    "ping": "pong"
}
rhelsrv1 | success >> {
    "changed": false, 
    "ping": "pong"
}
debsrv2 | success >> {
    "changed": false,
    "ping": "pong"
}
debsrv1 | success >> {
    "changed": false,
    "ping": "pong"
}
 



En mode "on-liner"



Pour tester le bon fonctionnement, on va installer htop sur rhelsrv2 en utilisant le module yum: 

Code BASH :
ansible -m yum -a 'name=htop state=present' rhelsrv2


La console affiche l'état des opérations :

Code BASH :
rhelsrv2 | success >> {
    "changed": true,
    "msg": "warning: /var/cache/yum/x86_64/7/epel/packages/htop-1.0.3-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY\nImporting GPG key 0x352C64E5:\n Userid     : \"Fedora EPEL (7) <epel@fedoraproject.org>\"\n Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5\n Package    : epel-release-7-2.noarch (@extras)\n From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7\n",
    "rc": 0,
    "results": [
        "Loaded plugins: fastestmirror, langpacks\nLoading mirror speeds from cached hostfile\n * base: mirror.ate.info\n * epel: epel.mirrors.ovh.net\n * extras: mirror.ate.info\n * updates: mirror.skylink-datacenter.de\nResolving Dependencies\n--> Running transaction check\n---> Package htop.x86_64 0:1.0.3-3.el7 will be installed\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package         Arch              Version                Repository       Size\n================================================================================\nInstalling:\n htop            x86_64            1.0.3-3.el7            epel             87 k\n\nTransaction Summary\n================================================================================\nInstall  1 Package\n\nTotal download size: 87 k\nInstalled size: 181 k\nDownloading packages:\nPublic key for htop-1.0.3-3.el7.x86_64.rpm is not installed\nRetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7\nRunning transaction check\nRunning transaction test\nTransaction test succeeded\nRunning transaction\n  Installing : htop-1.0.3-3.el7.x86_64                                      1/1 \n  Verifying  : htop-1.0.3-3.el7.x86_64                                      1/1 \n\nInstalled:\n  htop.x86_64 0:1.0.3-3.el7                                                     \n\nComplete!\n"
    ]
}


On peut aussi tester sur Calculate Linux en installant aussi htop sur les 2 machines du groupe cluster en utilisant le module portage:

Code BASH :
ansible -m portage -a 'name=htop state=present' cluster


La console affiche moins de choses, puisque les paquets sont déjà installés :

Code BASH :
cluster1 | success >> {
    "changed": false,
    "msg": "Packages already present."
}
cluster2 | success >> {
    "changed": false,
    "msg": "Packages already present."
}


Et un test sur debian, avec le module apt :

Code BASH :
ansible -m apt -a 'name=htop' debsrv1


Code BASH :
debsrv1 | success >> {
    "changed": true,
    "stderr": "",
    "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nSuggested packages:\n  strace ltrace\nThe following NEW packages will be installed:\n  htop\n0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 74.9 kB of archives.\nAfter this operation, 216 kB of additional disk space will be used.\nGet:1 http://ftp.fr.debian.org/debian/ wheezy/main htop amd64 1.0.1-1 [74.9 kB]\nFetched 74.9 kB in 0s (286 kB/s)\nSelecting previously unselected package htop.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 40200 files and directories currently installed.)\r\nUnpacking htop (from .../htop_1.0.1-1_amd64.deb) ...\r\nProcessing triggers for menu ...\r\nProcessing triggers for man-db ...\r\nSetting up htop (1.0.1-1) ...\r\nProcessing triggers for menu ...\r\n"
}
 


Par exemple, pour mettre à jour les serveurs rhel :

Code BASH :
ansible -m yum -a 'name=* state=latest' rhel



Utiliser les playbooks



Un playbook est une sorte de mégascript qui va automatiser des tâches de manière séquentielle. 

Globalement, un playbook est composé de tâches comme ceci : 

Code BASH :
- name: Texte qui décris votre tâche
  module: option=value



Un exemple simple



Voici une illustration avec un playbook "test" pour installer htop sous Calculate Linux :

Code BASH :
# htop.yml
---
- hosts: cluster
  tasks:
    - name: 1. install htop
      portage: name=htop state=present


Ici, je vise les hôtes du groupe cluster, et le playbook ne comporte qu'une seule tâche.

On lance le playbook via la commande 

Code BASH :
ansible-playbook htop.yml


Code BASH :
 
PLAY [cluster] **************************************************************** 
GATHERING FACTS *************************************************************** 
ok: [cluster2]
ok: [cluster1]
TASK: [1. install htop] ******************************************************* 
changed: [cluster1]
changed: [cluster2]
PLAY RECAP ******************************************************************** 
cluster1                   : ok=2    changed=1    unreachable=0    failed=0   
cluster2                   : ok=2    changed=1    unreachable=0    failed=0   
 


Une autre expérience intéressante consiste à relancer l’exécution du playbook

Code BASH :
 
PLAY [cluster] **************************************************************** 
GATHERING FACTS *************************************************************** 
ok: [cluster2]
ok: [cluster1]
TASK: [1. install htop] ******************************************************* 
ok: [cluster1]
ok: [cluster2]
PLAY RECAP ******************************************************************** 
cluster1                   : ok=2    changed=0    unreachable=0    failed=0   
cluster2                   : ok=2    changed=0    unreachable=0    failed=0  


Tout devrait aller beaucoup plus vite, et à la place de "changed" après chaque instruction, on lit "ok".
Ce qui veut dire qu’un playbook est plus intelligent qu’un bête script, et ne se contente pas d’exécuter des instructions.
Ansible va garantir quel tel service soit bien actif et qu’il utilise bien le dernier fichier de conf. Ce qui en fait l’outil parfait pour tester vos systèmes automatiquement.

Installer LAMP, sous CentOS



Ci-dessous, un playbook que j'ai réalisé, pour installer LAMP sur CentOS.
A noter l'apparition d'une nouvelle section nommée handlers. Cette section permet notamment de déclarer les éventuelles notifications.
Ici, cela correspond à l'étape 7, étape notify, restart httpd
Et pour pimenter les choses, l'étape 3 installe plusieurs paquets d'un coup.

Code BASH :
# lamp-centos.yml
---
- hosts: rhel
  handlers:
    - name: restart httpd
      service: name=httpd state=restarted
  tasks:
    - name: 1. Installation Apache
      yum: name=httpd state=present
    - name: 2. Installation PHP
      yum: name=php state=present
    - name: 3. Installation extensions PHP
      yum: name={{item}} state=present
      with_items:
       - php-pdo
       - php-mysql
       - php-soap
       - php-gd
       - php-pear-MDB2-Driver-mysqli
    - name: 4. Installation de MariaDB
      yum: name=mariadb-server
    - name: 5. Démarrage Apache
      service: name=httpd state=running enabled=yes
    - name: 6. Démarrage MariaDB
      service: name=mariadb state=running enabled=yes
    - name: 7. Installation index
      copy: src=lamp-centos.yml.index.php dest=/var/www/html/index.php
      notify:
        - restart httpd
    - name: 8. Ajout de la règle de pare-feu
      action: command /usr/bin/firewall-cmd --permanent --add-port=80/tcp
    - name: 9. Redémarrer le pare-feu
      service: name=firewalld state=restarted


  1. Installation d'un paquet.
  2. Installation d'un paquet.
  3. Illustration de l'installation de plusieurs paquets dans une même tâche.
  4. Installation d'un paquet.
  5. Vérification d'un service sur la position "démarré"
  6. Vérification d'un service sur la position "démarré"
  7. Copier Coller d'un fichier du "serveur Ansible" vers le serveur cible. Avec une fois l'opération effectuée un redémarrage du service.
  8. Exécution d'une commande sur la machine cible
  9. Redémarrage d'un service.


Ce playbook est donc bien complet.

Voici une illustration d'exécution du playbook :

Code BASH :
infra ansible# ansible-playbook lamp-centos.yml
PLAY [rhel] *******************************************************************
GATHERING FACTS ***************************************************************
ok: [rhelsrv1]
ok: [rhelsrv2]
TASK: [1. Installation Apache] ************************************************
changed: [rhelsrv1]
changed: [rhelsrv2]
TASK: [2. Installation PHP] ***************************************************
changed: [rhelsrv1]
changed: [rhelsrv2]
TASK: [3. Installation extensions PHP] ****************************************
changed: [rhelsrv2] => (item=php-pdo,php-mysql,php-soap,php-gd,php-pear-MDB2-Driver-mysqli)
changed: [rhelsrv1] => (item=php-pdo,php-mysql,php-soap,php-gd,php-pear-MDB2-Driver-mysqli)
TASK: [4. Installation de MariaDB] ********************************************
changed: [rhelsrv1]
changed: [rhelsrv2]
TASK: [5. Démarrage Apache] ***************************************************
changed: [rhelsrv2]
changed: [rhelsrv1]
TASK: [6. Démarrage MariaDB] **************************************************
changed: [rhelsrv1]
changed: [rhelsrv2]
TASK: [7. Installation index] *************************************************
changed: [rhelsrv1]
changed: [rhelsrv2]
TASK: [8. Ajout de la règle de pare-feu] **************************************
changed: [rhelsrv2]
changed: [rhelsrv1]
TASK: [9. Redémarrer le pare-feu] *********************************************
changed: [rhelsrv2]
changed: [rhelsrv1]
NOTIFIED: [restart httpd] *****************************************************
changed: [rhelsrv2]
changed: [rhelsrv1]
PLAY RECAP ********************************************************************
rhelsrv1                   : ok=11    changed=10    unreachable=0    failed=0
rhelsrv2                   : ok=11    changed=10    unreachable=0    failed=0
 





Installer et Configurer SAMBA, sous Debian



Cette fois-ci un playbook d'installation de SAMBA sur deux Debian.
A noter qu'il est déjà installé et configuré sur un des deux serveurs; comme le montrera l'exécution du playbook.

Le playbook : samba-debian.yml

Code BASH :
# samba-debian.yml
---
- hosts: sambaservers
  handlers:
    - name: restart samba
      service: name=samba state=restarted
  tasks:
    - name: 1. Installer samba
      apt: name=samba state=present
    - name: 2. Démarrer service samba
      service: name=samba state=running enabled=yes
    - name: 3. Création du dossier public
      command: mkdir -p /srv/samba/commun
    - name: 4. Correction des droits
      file: path=/srv/samba/commun owner=root group=users mode=0777
    - name: 5. Modification du fichier smb.conf
      lineinfile: dest=/etc/samba/smb.conf backup=yes line="include /etc/samba/smb.conf.ansible"
    - name: 6 Copier le fichier personnalisé de samba
      copy: src=samba-debian.yml.smb.conf.ansible dest=/etc/samba/smb.conf.ansible
      notify:
        - restart samba
 


Le fichier samba-debian.yml.smb.conf.ansible

Code BASH :
[commun]
        comment = Partage de fichiers commun
        browseable = yes
        public = yes
        path = /srv/samba/commun
        writable = yes


On exécute ensuite le playbook :

Code BASH :
infra ansible # ansible-playbook samba-debian.yml


La console affiche :

Code BASH :
 
PLAY [sambaservers] ***********************************************************
GATHERING FACTS ***************************************************************
ok: [debsrv1]
ok: [debsrv2]
TASK: [1. Installer samba] ****************************************************
ok: [debsrv1]
changed: [debsrv2]
TASK: [2. Démarrer service samba] *********************************************
ok: [debsrv1]
ok: [debsrv2]
TASK: [3. Création du dossier public] *****************************************
changed: [debsrv1]
changed: [debsrv2]
TASK: [4. Correction des droits] **********************************************
ok: [debsrv1]
ok: [debsrv2]
TASK: [5. Modification du fichier smb.conf] ***********************************
ok: [debsrv1]
changed: [debsrv2]
TASK: [6 Copier le fichier personnalisé de samba] *****************************
ok: [debsrv1]
changed: [debsrv2]
NOTIFIED: [restart samba] *****************************************************
changed: [debsrv2]
PLAY RECAP ********************************************************************
debsrv1                    : ok=7    changed=1    unreachable=0    failed=0
debsrv2                    : ok=8    changed=5    unreachable=0    failed=0
 


  1. Installation d'un paquet.
  2. Démarrage d'un service.
  3. Exécution d'une commande.
  4. Modification de droits.
  5. Ajout d'une ligne dans un fichier.
  6. Copie de fichier + notification

On voit bien dans le dernier point que le NOTIFIED ne s'applique qu'aux hôtes dont un changement a eu lieu...


March 23, 2019

Comprendre OpenStack

OpenStack® vous offre une infrastructure cloud modulaire et compatible avec du matériel standard. Vous pouvez ainsi déployer, de façon centralisée, tous les outils dont vous avez besoin, quand vous en avez besoin.



En quoi consiste OpenStack ?
OpenStack regroupe des outils Open Source (ou « projets ») qui permettent de créer et de gérer des clouds privés ou publics à partir de pools de ressources virtuelles. Six de ces projets assurent les principaux services de cloud computing (à savoir le calcul, la mise en réseau, le stockage, la gestion des identités et la gestion des images). La dizaine de projets restants, disponibles en option, peuvent être groupés pour créer des clouds uniques.
Le principe est le suivant : dans le cadre de la virtualisation, les ressources (stockage, processeur, RAM, etc.) sont dissociées de divers programmes de fournisseur, séparées par un hyperviseur, puis distribuées selon les besoins. OpenStack s'appuie sur des interfaces de programmation d'application (API) pour repousser les limites de l'abstraction de ces ressources virtuelles en les répartissant dans des pools individuels, qui pilotent des outils de cloud computing standard avec lesquels les administrateurs et les utilisateurs interagissent directement.
En fonction des ressources virtualisées et des services cloud à mettre en place, vous pouvez déployer différents projets basés sur l'architecture modulaire d'OpenStack. Au final, vous disposez d'une plateforme cloud tout à fait unique. Il s'agit de la base de la solution Red Hat® Cloud Infrastructure, qui permet à votre entreprise de se libérer des restrictions imposées par les infrastructures traditionnelles.

OpenStack

OpenStack est un logiciel libre qui permet la construction de cloud privé et public.

OpenStack est aussi une communauté et un projet en plus d'un logiciel qui a pour but d'aider les organisations à mettre en oeuvre un système de serveur et de stockage virtuel.
OpenStack est composé d'une série de logiciels et de projets au code source libre qui sont maintenus par la communauté incluant:


OpenStack Compute (nommé Nova),
OpenStack Object Storage (nommé Swift),
OpenStack Image Service (nommé Glance).


Ce document présente l'installation des composants d'identité, d'images et virtualisation sur une seule machine.



Il s'agit plutôt d'une configuration de développement mais néanmoins fonctionnelle. Les services réseau avancé et stockage que sont respectivement Quantum et Swift ne seront pas abordés dans ce document.

Pré-requis



Tous les services OpenStack seront installés sur la même machine.
La configuration abordée suppose l'utilisation de 2 interfaces réseau.

March 20, 2019

Active Directory Federation Services

  1. Qu'est-ce qu'ADFS?
Active Directory Federation Services (littéralement, services de répertoires actifs fédérés), ou ADFS, est un composant de logiciel publié par Microsoft en 2003. Sa principale fonction est de permettre aux utilisateurs de Windows d'exploiter une fonction de Single Sign-On (SSO, ou authentification unique) pour une multitude de systèmes et d’applications. Les versions les plus récentes d'ADFS se fondent sur un protocole nommé SAML 2.0 (Security Assertion Markup Language, ou langage de balisage d'assertion de sécurité) qui permet l'échange sécurisé de données d'authentification et d'autorisation.
  1. Qu'est-ce que Single Sign-On?
Single Sign-On est le nom donné à une méthode pour les utilisateurs d'accéder de manière transparente à plusieurs systèmes et applications à accès restreint en n'utilisant qu'un seul ensemble de nom d'utilisateur et de mot de passe. Cette méthode exploite les informations se trouvant dans un répertoire sécurisé de données d'utilisateurs (ce répertoire comprend généralement plusieurs ensembles uniques - connus sous le nom d'identités - de noms complets et de numéros d'employé ainsi que d'autres renseignements, tels que des numéros de téléphone et des adresses courriel) pour confirmer qu'un utilisateur donné est bel et bien la personne qu'il ou qu'elle prétend être. Cette méthode vérifie aussi la liste des systèmes auxquels l’utilisateur a l’autorisation ou non d’utiliser à l'aide d'un système de hiérarchie.
  1. Quels sont les avantages offerts par SSO pour les utilisateurs finaux?
Il peut être plutôt délicat de convaincre une équipe d'adopter de nouvelles technologies. Comme les employés cherchent à se concentrer sur ce qui compte vraiment pour eux - généralement, leur travail - ils peuvent souvent démontrer une certaine résistance aux changements technologiques.  La technologie est trop souvent perçue comme un fardeau, ce qui peut être vrai lorsqu'elle entrave le flux de travail quotidien plus qu'elle n'y contribue. Lorsque l'on prend en considération le temps de formation et les efforts requis pour exploiter cette technologie-fardeau, il n'est pas surprenant de se retrouver avec des employés insatisfaits de leur emploi, moins productifs et qui contournent les procédures normales pour éviter d'avoir à affronter ce qui est perçu comme étant néfaste. Devons-nous vraiment parler de l'impact financier et humain de cette affaire? En fin de compte, le bon genre de technologie devrait être invisible mais intégré, comme un genre de prolongement de la volonté des employés, si on veut, et jamais le contraire. Ne laissez pas la lassitude de mots de passe s'attaquer à vos employés.
Pour les utilisateurs finaux, les avantages principaux de SSO proviennent de sa capacité à transformer plusieurs ensembles d'identifiants utilisateurs (nom d'utilisateur et mot de passe) en un seul ensemble d'identifiants. Prenons le cas d'infirmières et de médecins qui, par exemple, peuvent utiliser jusqu'à 100 applications dans le cadre de leur travail. Mettez-vous dans leur peau : pouvez-vous imaginer avoir à vous connecter à chacune d'entre ces applications à chaque fois que vous devez effectuer une simple tâche de routine? Souvenez-vous que vous travaillez dans le domaine de la santé, où chaque seconde peut compter... Est-ce que cela semble encombrant? Imaginez maintenant devoir vous souvenir de vos identifiants pour chacune de ces applications. Vous pourriez, bien entendu, tricher et n'utiliser qu'une poignée de combinaisons d'identifiants, ou encore, noter vos identifiants sur un bout de papier... jusqu'à ce que quelqu'un de malicieux ne les trouve, bien entendu. Ce qui ferait de votre expérience un excellent exemple de brèche de sécurité et de manquement à un protocole de sécurité de base.
  1. Quels sont les avantages offerts par SSO pour les gestionnaires?
S'il peut être difficile de quantifier les inconvénients d’environnements n'ayant pas adopté SSO pour l'utilisateur final moyen, il est très facile de le faire pour un gestionnaire. Saviez-vous que la source la plus importante de problèmes de service à la clientèle était la perte ou l'oubli d'identifiants? Sans parler du temps de production perdu par les employés tentant de se remémorer leur mot de passe (avais-je bien mis une majuscule au nom du chat?) et devant ensuite attendre une réponse du service de soutien. Les employés dépendant littéralement d'applications pour travailler se retrouvent trop souvent coincés entre la perte de temps et le service à la clientèle qui, lui, semble au contraire prendre tout son temps pour répondre. Et qui entraîne en plus des coûts.
Sans même prendre les erreurs d'utilisateurs en considération, les identifiants prennent beaucoup de temps à configurer et à utiliser. Combien de mots de passe devez-vous configurer pour chacun de vos employés? Combien de personnes travaillent pour vous? Combien de mots de passe l'employé moyen utilise-t-il par jour? À quelle vitesse peut-il les saisir? Combien de temps de chargement y a-t-il entre chacune de ces étapes? Quelle est la probabilité que les employés se trompent? Quelques suppositions éclairées suffisent à démontrer comment SSO peut entraîner des RCI pour les années à venir, sinon pour toujours, selon vos plans. Retenez néanmoins que les identifiants en eux-mêmes ne sont pas le problème; c'est bien la gestion d'une multitude d'entre eux qui l'est! SSO s'attaque donc au cœur du problème.
Une autre caractéristique intéressante de SSO est sa capacité de rapidement octroyer ou retirer l'accès d'un employé donné à un ensemble d'applications. Ce qui est particulièrement utile pour les grandes entreprises où le roulement d'employé est important. Si l'on estime que chaque employé doit utiliser une quinzaine d'applications dans le cadre de son travail, c'est une quinzaine d'applications qu'un gestionnaire doit aussi activer ou désactiver, selon le cas.  SSO permet de faciliter la tâche et de la rendre beaucoup moins redondante pour ce gestionnaire.

How to Install Docker CE on CentOS 8 and RHEL 8

  Docker  is a daemon-based container engine which allows us to deploy applications inside containers.  Docker is available in two versions,...