DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Security Zone»Connexion de Red Hat Single Sign-on sur Openshift à une base de données externe
    Security Zone

    Connexion de Red Hat Single Sign-on sur Openshift à une base de données externe

    novembre 14, 2021
    Connexion de Red Hat Single Sign-on sur Openshift à une base de données externe
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Les Authentification unique Red Hat ou juste RHSSO est une version entreprise de Cape de clé, qui est une solution open source de gestion des identités et des accès destinée aux applications et services modernes.

    Ces derniers jours, j’ai eu besoin d’installer RHSSO sur Openshift version 4.8, cependant, j’avais besoin d’implémenter une petite personnalisation dans la connexion à la base de données. Par défaut un non éphémère RHSSO L’installation utilise une installation intégrée de la base de données PostgreSQL, cependant, je changerais le type de base de données de PostgreSQL en MySQL, et même changerais l’emplacement de celle-ci à l’extérieur d’Openshift.

    Pour les installations non Openshift, il est courant, cependant, pour RHSSO 7.5 sur Openshift 4.8, il y a quelques détails :

    • Premier point : Le « Composant opérateur » pour RHSSO n’est préparé qu’à cette date pour la gestion d’une base de données non Postgres.
    • Deuxième point : il n’y a pas non plus de modèle RHSSO officiel pour les autres bases de données dans la version 7.5.
    • Troisième point : Nous parlons d’un environnement Openshift 4.8.

    La solution

    Oublie le Composant opérateur. Jusqu’à cette date, il est dans le Aperçu technique version et ne prend pas en charge cette implémentation.

    Fondamentalement, nous devons créer une image personnalisée de RHSSO et changer la source de données en type MySQL. Rappelles toi RHSSO est un logiciel qui fonctionne à l’intérieur de JBoss Enterprise Application Platform 7 (EAP7), et à cause de cela, nous pouvons le personnaliser à l’aide d’une CLI (interface de ligne de commande).

    Pour cela, suivez ces étapes ci-dessous:

    1. Téléchargez le pilote MySQL JDBC. J’ai utilisé MySQL 8 (mysql-connector-java-8.0.27.jar).
    2. Créez un fichier appelé sso-extensions.cli et mettez le contenu ci-dessous. Fondamentalement, c’est un fichier de propriétés avec les paramètres de MySQL Base de données et les commandes pour supprimer la configuration PostgreSQL. Notez que nous supprimons une source de données appelée KeycloakDS et après cela, la recréons avec les nouvelles définitions.
      batch
      
      set DB_DRIVER_NAME=mysql
      set DB_USERNAME=root
      set DB_PASSWORD=jujuba
      set DB_DRIVER=com.mysql.jdbc.Driver
      set DB_XA_DRIVER=com.mysql.cj.jdbc.MysqlXADataSource
      set DB_JDBC_URL=jdbc:mysql://mysql.database-poc:3306/sampledb
      set DB_EAP_MODULE=com.mysql
      
      set FILE=/opt/eap/extensions/mysql-connector-java-8.0.27.jar
      
      module add --name=$DB_EAP_MODULE --resources=$FILE --dependencies=javax.api,javax.resource.api
      /subsystem=datasources/jdbc-driver=$DB_DRIVER_NAME:add( 
        driver-name=$DB_DRIVER_NAME, 
        driver-module-name=$DB_EAP_MODULE, 
        driver-class-name=$DB_DRIVER, 
        driver-xa-datasource-class-name=$DB_XA_DRIVER 
      )
      
      /subsystem=datasources/data-source=KeycloakDS:remove()
      /subsystem=datasources/data-source=KeycloakDS:add( 
        jndi-name=java:jboss/datasources/KeycloakDS, 
        enabled=true, 
        use-java-context=true, 
        connection-url=$DB_JDBC_URL, 
        driver-name=$DB_DRIVER_NAME, 
        user-name=$DB_USERNAME, 
        password=$DB_PASSWORD 
      )
      
      run-batch
      

    3. Créez une image en utilisant l’image officielle RHSSO. (sso75-openshift-rhel8:dernier). Ci-dessous se trouve le Dockerfile pour créer une image.
      FROM registry.redhat.io/rh-sso-7/sso75-openshift-rhel8:latest
      
      COPY sso-extensions.cli /opt/eap/extensions/
      COPY mysql-connector-java-8.0.27.jar /opt/eap/extensions/mysql-connector-java-8.0.27.jar
      

      Notez qu’il est obligatoire de copier le extensions-sso.cli fichier et mysql-connector-java-8.0.27.jar vers le dossier appelé /opt/eap/extensions/

    4. Construire et pousser l’image pour un registre de service accessible à partir de Openshift. J’ai utilisé le service docker hub.
      $docker build -t iamrogerio2/rhsso75-mysql:1.0 .
      $docker push iamrogerio2/rhsso75-mysql:1.0
      

      L’image publiée ressemble à ceci : docker.io/iamrogerio2/rhsso75-mysql.

    5. Déployez cette image dans un espace de noms Openshift. Si la MySQL le serveur est allumé et les paramètres de extensions-sso.cli sont corrects, le RHSSO créera beaucoup de tables dans la base de données indiquant que la connexion est correcte.

      Vous trouverez ci-dessous la commande pour créer un espace de noms et déployer l’image.

      $ oc new-project rhsso75-example
      $ oc new-app --docker-image="iamrogerio2/rhsso75-mysql:1.0"
      $ oc create route edge --service=rhsso75-mysql
      

      Notez que je dois créer une route HTTPS à l’aide des certificats par défaut d’Openshift.

    6. C’est une étape facultative mais c’est une bonne pratique. Créer un configMap pour stocker le fichier extensions-sso.cli, de cette façon, vous n’avez pas besoin de recréer l’image si vous devez modifier un paramètre de base de données. Fondamentalement, nous importons le extensions-sso.cli fichier dans un configMap et réglez ceci configMap dans deployConfig.
      $ oc create configmap jboss-cli --from-file=sso-extensions.cli
      $ oc set volume dc/rhsso75-mysql --add --name=jboss-cli -m /opt/eap/extensions -t configmap --configmap-name=jboss-cli --default-mode="0755" --overwrite
      

    Considération finale

    Au-delà de PostgreSQL et MySQL, RHSSO fonctionne très bien avec la base de données Oracle. Cet exemple est également valable pour une implémentation Oracle tant qu’elle a inséré le bon pilote JDBC.

    Je n’ai pas travaillé avec d’autres intégrations de bases de données, cependant, la documentation officielle de la version 7.5 décrit ces bases de données :

    Base de données

    Version (version du pilote JDBC)

    MariaDB

    10.3.27 (Connecteur MariaDB/J 2.7.2)

    MySQL

    8.0 (Connecteur MySQL/J 8.0.23)

    Base de données Oracle[1]

    19c RAC 19.3 (Pilote Oracle JDBC v19.10.0.0 (ojdbc8.jar))

    Serveur Microsoft SQL

    2019 (Pilotes Microsoft JDBC 9.2.0 (.jre8.jar))

    Serveur de base de données d’entreprise Postgres Plus avancé

    13.2 (Pilote de serveur avancé Postgres Plus 42.2.12)

    PostgreSQL

    13.2 (pilote JDBC4 Postgresql, version 42.2.18)

    Prendre plaisir :-).

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.