Question
· Oct 26, 2023

Accès au Terminal IRIS sur Windows sans saisir de user/mot de passe

Bonjour à tous,

je souhaite pouvoir lancer le terminal IRIS sans avoir à saisir de nom d'utilisateur ni de mot de passe.

Pour bien comprendre :

  • IRIS est installé directement sur une machine Windows
  • Lorsque j'utilise mon compte de domaine en me connectant en RDP lorsque je lance le terminal il s'exécute sans me demander de log de connexion. 
    • Je sais que cela fonctionne car le compte est aussi créé dans IRIS avec le même Nom
  • Un utilisateur Windows local a été créé, c'est avec ce compte que je veux ouvrir le terminal.

Le compte Local s'appelle ssh.gitlab, j'ai donc créé le même utilisateur sur IRIS avec le rôle %ALL.

 

Cependant, lorsque je lance le terminal, peut importe la manière, il me demande toujours de saisir les informations de connexion.

Auriez-vous une idée ? 

Merci par avance.

Version du produit: IRIS 2022.1
$ZV: IRIS for Windows (x86-64) 2022.1 (Build 209U) Tue May 31 2022 12:16:40 EDT
Discussion (20)2
Connectez-vous ou inscrivez-vous pour continuer

Bonjour @Jean-Charles Cano ,

Dans le cadre de script CI\CD il m'est déjà arrivé d'avoir besoin de cela.

Dans mon cas, c'était un système fermé donc j'ai pu simplement dans le service "%Service_Console" coché uniquement "Non authentifié".

Une fois que ce service est configuré avec "No authentifié", la commande 

irissession <instance_name>

ouvrira une session avec l'utilisateur "UnknownUser".  Il faut donc que cet utilisateur soit activé, vous pouvez aussi éventuellement le paramétré pour qu'il se positionne automatiquement sur un namespace.  Pour configurer l'utilisateur depuis le portail d'administration allez dans "Administration système -> Sécurité -> Utilisateurs".

Dans le cas ou cette solution ne serait pas envisageable pour des raisons de sécurités (ce qui serait très compréhensible), je peux essayer de creuser un peu plus la question.  Sur un serveur Linux, on peut aisément mettre le login\password dans le buffer pour que le système effectue la lecture, mais sur Windows, je pense que c'est plus compliqué.

Malheureusement avec les modifications apportées, je suis toujours contraint à devoir entrer un nom d'utilisateur et un mot de passe (ne pas tenir compte de la saisie, ce ne sont pas les bons identifiants utilisés)

EDIT: Je viens de remarquer qu'en faisant 2 fois entrée sans mettre un user et un password, j'étais bien dans le terminal iris, mais j'ai toujours cette demande d'input que je dois bypass sur la CI/CD sur une connexion ssh sur un serveur windows

Re @Cyril Grosjean , @Jean-Charles Cano 

J'ai une autre approche à vous proposer, mais ça nécessite que le login\password soit dans un fichier.   (Laissez "Mot de passe" coché dans le service "%Service.console" cette fois-ci).

Il est nécessaire que ce fichier soit encodé avec LF donc Unix Style et pas CR LF comme c'est le cas par défaut sous windows.  Si vous utilisez Notepad++ suffit de cliquer sur "Edit -> EOL Conversion -> Unix (LF)".

Ex:

_system
SYS
Write "Hello !"
halt

La première et la deuxième ligne doivent être respectivement le login et password.

vous pouvez ensuite faire : 

irissession instance_name < input.txt

J'insiste sur le fait que le fichier input.txt doit être encodé avec le caractère de fin de ligne LF et non CR LF sinon ça ne fonctionne pas.

Est-ce que cette nouvelle approche peut vous aider ?

Je viens d'essayer, ça fonctionne cependant j'ai un petit soucis :

Mon fichier inputs.txt contient ceci:



Write "HI!"
halt

A savoir donc 2 lignes vides et les instructions.

Je n'ai pas enlevé l'accès en non authentifié pour la console afin de ne pas avoir à rentrer d'identifiants dans un fichier brut car cela ne sera pas toléré par l'entreprise.

Cependant, j'ai un problème sur l'output qui a l'air de faire n'importe quoi :

Dans mon script compile.bat je n'ai rien de plus que la ligne irissession IRIS -U TEST < inputs.txt. Cela me force donc à forcer l'arrêt pour éviter que ma console crash (et de la redémarrer car le prompt crash, ça ressemble fortement à un core dump)

Faut-il que ce script soit aussi encodé LF et non CRLF ? Est-ce qu'il manque une instruction pour éviter ce problème ? 

Un simple saut à la ligne a réglé mon souci, le script marche mais je suis confronté à un autre souci:

Le script n'est pas exécuté dans le job automatique sur Gitlab. Il y a un scp avant qui copie les fichiers contenus dans gitlab vers le serveur, puis la connexion ssh sur le screen.

J'ai bien vérifié sur le serveur si les fichiers étaient compilés, mais ils ne le sont pas. J'ai mis des pauses dans le script pour être sûr qu'il ne s'agit pas d'un problème de temps mais ce n'est pas le cas.

Entre-temps, j'ai trouvé une meilleure solution, activez l'authentification OS level : 

ensuite dans le "%Service.Console":

Lorsque je fais cela sur mon installation irissession instance_name ne nécessite plus de mot de passe et la session est démarrée avec le compte windows actuellement connecté.  Cela implique toutefois logiquement de créer un utilisateur IRIS avec le même nom que le compte de connection Windows utilisé.  Dans mon cas, ce compte avait déjà été créé.

en faisant:

Write $Username

Vous pourrez vérifier quel est le compte qui a ouvert la session.
Si cette solution peut fonctionner dans votre environnement, c'est probablement la meilleure et plus sécurisée.