Écrit par

Bastide Le Confort Médical
Question Jean-Charles Cano · 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.

Product version: IRIS 2022.1
$ZV: IRIS for Windows (x86-64) 2022.1 (Build 209U) Tue May 31 2022 12:16:40 EDT

Comments

Guillaume Rongier · Oct 26, 2023

Bonjour,

Pour activer la connexion sans mot de passe à partir d'un compte OS de la machine, il faut configurer le service "%Service_Terminal" comme ceci :

Ensuite "%Service_Terminal" :

Pour finir s'assurer que "Operating system" est activé

0
Jean-Charles Cano  Oct 26, 2023 to Guillaume Rongier

oui j'ai pu voir entre temps, mais je n'ai pas d'option pour le compte local windows...

0
Lorenzo Scalese · Oct 30, 2023

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é.

0
Cyril Grosjean  Oct 31, 2023 to Lorenzo Scalese

Bonjour @Lorenzo Scalese 

Merci pour cette approche.

L'utilisateur est déjà activé, cependant, aucune permission ne lui est accordé, quelle permission doit-on lui donner pour qu'il puisse exécuter une routine depuis un terminal IRIS ?

Cordialement

0
Lorenzo Scalese  Oct 31, 2023 to Cyril Grosjean

Bonjour @Cyril Grosjean ,

Les droits peuvent être accordés depuis le portail admin "Administration système -> Sécurité -> Utilisateurs".  Toutefois vous devriez pouvoir augmenter les droits par programmation avec la variable spécial $Roles 

par exemple:

Set$Roles = "%ALL"

Donne tous les droits.

0
Cyril Grosjean  Oct 31, 2023 to Lorenzo Scalese

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

0
Lorenzo Scalese  Oct 31, 2023 to Cyril Grosjean

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 ?

0
Cyril Grosjean  Oct 31, 2023 to Lorenzo Scalese

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 ? 

0
Lorenzo Scalese  Oct 31, 2023 to Cyril Grosjean

Re @Cyril Grosjean ,

J'ai constaté la même chose lorsque je ne termine pas le fichier par un LF.

Essayez avec un LF juste après la commande halt, cela devrait résoudre le problème.

0
Cyril Grosjean  Oct 31, 2023 to Lorenzo Scalese

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.

0
Lorenzo Scalese · Oct 31, 2023

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.

0
Cyril Grosjean  Oct 31, 2023 to Lorenzo Scalese

Parfait ! Je suis connecté sans avoir à rentrer un username et un password au terminal, j'ai donc essayé de lancer la pipeline avec la commande runw pour avoir le script comme avant et tout fonctionne, la compilation s'est bien passée !

Merci beaucoup !

0
Lorenzo Scalese  Oct 31, 2023 to Cyril Grosjean

Super!

Finalement laquelle des solutions à fonctionner ?  Celle avec "Allow O/S authentication" et "%Service.Console" avec "Systeme d'exploitation" + "Cache des droits Kerberos" ?

Merci.

0
Cyril Grosjean  Oct 31, 2023 to Lorenzo Scalese

Oui celle avec "Allow O/S authentication" et en cochant dans "%Service.Console" la case "Système d'exploitation".

Je n'ai pas activé les droits Kerberos.

0
Jean-Charles Cano  Nov 2, 2023 to Lorenzo Scalese

Bonjour à vous deux,
Et un grand merci @Lorenzo Scalese pour ton aide. 

J'était en maladie donc pas possible pour moi de suivre merci @Cyril Grosjean d'avoir repris le sujet. Nous allons pouvoir avancer ! 

 
 

0
Lorenzo Scalese  Nov 2, 2023 to Jean-Charles Cano

Avec plaisir, c'était un sujet intéressant.  Il pourra peut être aider d'autres visiteurs du community FR.

0