Se connecter à CAS depuis SAS 9.4
Introduction
L'intégration de SAS 9 et de Viya n'a cessé d'évoluer au cours des deux dernières années et est devenue assez robuste. Cependant, des questions concernant les clients SAS 9.4 communiquant avec SAS Viya et les services CAS continuent de faire surface. En conséquence, il a semblé être une bonne idée de revenir brièvement sur ce sujet. De nombreux utilisateurs SAS Viya sont aussi des utilisateurs SAS 9. Ils connaissent les interfaces client SAS 9 et souhaitent comprendre comment configurer les environnements afin qu'ils puissent communiquer. Si votre environnement SAS 9.4 est antérieur à SAS 9.4M5 et que vous souhaitez interagir avec un SAS SAS Viya, SAS/CONNECT devra être disponible dans les deux environnements si vous souhaitez travailler avec les données dans CAS. Si votre environnement SAS 9.4 est en maintenance 5 (ou supérieur) et que vous souhaitez interagir avec un SAS Viya 3.3 (ou supérieur ), il n’est pas nécessaire d’avoir SAS/CONNECT dans l’un ou l’autre environnement. Les fonctionnalités d'intégration CAS intégrées de SAS 9.4M5 permettent à l'utilisateur de communiquer directement à partir d'un client CAS. En effet, à partir de SAS 9.4M5, vous pouvez vous connecter à SAS Cloud Analytic Services (CAS). Aussi, à partir d'une session SAS avec le serveur CAS, vous pouvez charger des données dans la mémoire du serveur CAS, sauvegarder des tables se trouvant dans la mémoire du serveur CAS et soumettre le code d'étape DATA....Pré-requis
Avant de pouvoir soumettre des programmes au serveur CAS à partir de SAS 9.4, des certificats de sécurité (vault-ca.crt) doivent être en place et vous devez être autorisé à vous connecter au serveur. Vous pouvez-suivre les indications de la documentation Configure SAS 9.4 Clients to Work with SAS ViyaS'authentifier auprès de CAS
Pour l'authentification il est nécessaire d'utiliser un fichier d'authentification pour permettre la connexion à VIYA, via SAS-Logon. Vous pouvez-suivre les indications de la documentation Client Authentication Using an Authinfo FileUtilisation d'un fichier d'authentification
Syntaxe
1 2 3 4 |
option set=CASCLIENTDEBUG=1 CASAUTHINFO="/home/sas/.authinfo" CASUSER=nicolashousset; option casport=5570 cashost="serveur_cas_controler"; cas casauto sessopts=(caslib=casuser) ; |
Logs
NOTE: Reading authinfo file: /home/sas/.authinfo NOTE: Matching host: viyacasctrl.housset.com NOTE: Matching port: 5570 NOTE: Matching user: nicolashousset NOTE: Using authinfo host definition: default user nicolashousset password ****** NOTE: Client is using userid=nicolashousset, password=*** NOTE: Client is using the userpass identity provider NOTE: Sent challenge length 108 NOTE: The session CASAUTO connected successfully to Cloud Analytic Services viyacasctrl.housset.com using port 5570. The UUID is 284e3617-fce8-5140-a9af-fcee0e90941b. The user is nicolashousset and the active caslib is CASUSERHDFS(nicolashousset).Traces CAS (en mode DEBUG)
INFO [00000003] cas local MAIN NoUser [tkcalsock.c:846] - New client connection accepted on port 5570. Client IP address and port are [::ffff:10.104.88.62]:57404. Connection number 106667. TLS is required. DEBUG [00213525] cas local MAIN NoUser [tkcalsident.c:304] - Allowing oauth only launches TRACE [00213525] cas local MAIN NoUser [tkcalsident.c:382] - Entering server authentication TRACE [00213525] cas local MAIN NoUser [tkcalsident.c:423] - Client did not supply a user agent string. INFO [00213525] cas local MAIN NoUser [tkcalsident.c:426] - Client version long is '9.04.01M5P07112018'. DEBUG [00213525] cas local MAIN NoUser [tkcalsident.c:451] - Locale set to 'en_US' DEBUG [00213525] cas local MAIN NoUser [tkcalsident.c:459] - Received request length 108 DEBUG [00213525] cas local MAIN NoUser [tkcalsident.c:471] - The client provided credentials of type: userpass. DEBUG [00213525] cas local MAIN NoUser [tkcalsident.c:507] - Received userid=nicolashousset, password=*** DEBUG [00213525] cas local MAIN NoUser [tkcalsident.c:513] - Obtaining oauth token with user/pass DEBUG [00213525] cas local MAIN NoUser [tkidentmid.c:655] - User 'viyademo01' converted to OAUTH token. DEBUG [00213525] cas local MAIN NoUser [tkidentoauth.c:148] - oauthAuthenticate(): Validating token. DEBUG [00213525] cas local MAIN NoUser [tkidentoauth.c:286] - User request: nicolashousset DEBUG [00213525] cas local MAIN NoUser [tkidentoauth.c:852] - oauthAuthenticate(): Token validated. DEBUG [00213525] cas local MAIN NoUser [tkidentoauth.c:863] - userpass oauth token validated INFO [00213525] viyademo01 local MAIN NoUser [tkident.c:1205] - User nicolashousset successfully authenticated using the OAuth authentication provider.Quelques erreurs
Specified authinfo file does not exist: /home/sas/.authinfo ERROR: Could not find matching host, port, and user combination in netrc/authinfo file. Vérifier la présence du fichier d'authentification NOTE: File has incorrect permissions: /home/sas/.authinfo Vérifier les droits du fichier d'authentification. Le fichier doit disposer des autorisations de lecture et d'écriture uniquement pour le propriétaire. Utilisez chmod pour changer les permissions. NOTE: Got disposition, severity 2, reason 4, message SAS Logon Manager authentication failed: Access denied. ERROR: Connection failed. Server returned: SAS Logon Manager authentication failed: Access denied. Vérifier que le service VIYA sas-logon est bien UP & Runing. En activant le mode DEBUG au niveau de CAS, vous pourriez également obtenir les traces suivantes : DEBUG [00213713] cas local MAIN NoUser [tkcalsident.c:513] - Obtaining oauth token with user/pass ERROR [00213713] cas local MAIN NoUser [tkmtrbMethods.c:2016] - SubmitRequestWithFiles: uri='https://viyacasctrl.housset.com:443/SASLogon/oauth/token', correlator='X-SAS-Correlator: 8779D064-6FAC-8241-B9C5-EAF30F90056D;'. ERROR [00213713] cas local MAIN NoUser [tkmtrbMethods.c:2019] - SubmitRequestWithFiles: status=8dbff828 httpStatus=404 'Not Found'. ERROR [00213713] cas local MAIN NoUser [tkmtrbMethods.c:2043] - HTTP error returned from service. ERROR [00213713] cas local MAIN NoUser [tkidentmid.c:674] - Access denied.Utilisation des informations d'authentification stockées dans les métadonnées de SAS 9.
Si la connexion à CAS se fait depuis SAS Enterprise, il est possible de créer un domaine d'authentification pour stocker les informations de connexions à CAS. Pour la connexion à CAS, dans un programme Enteprise Guide, la syntaxe est alors la suivante :
1 2 3 |
option set=CASCLIENTDEBUG=1 ; option casport=5570 cashost=<em>viyacasctrl.housset.com</em>; cas casauto sessopts=(caslib=casuser) AUTHDOMAIN=casauth; |