BookmarkSubscribeRSS Feed
JimmyJoeBob
Fluorite | Level 6

Scenario:

  • SAS 9.4 M8 in Windows Server 2022 x64
  • SAS EG 8.4 on Windows 10 x64
  • All hosts are in the same AD forest/domain
  • SAS was configured during installation for Integrated Windows Authentication (IWA), using a plan file recently produced by SAS engineers (our previous one didn't include SAS/CONNECT).
  • SASMeta - Logical Metadata Server is configured for Host authentication, Security Package = Kerberos
    • - sspi option is part of the service startup arguments
  • SASApp - Logical Workspace Server is configured for Host authentication, Security Package = Kerberos
  • Connection: Connect Spawner is configured for Integrated Windows Authentication, DefaultAuth domain
    • Connect Spawner servide includes -sspi REG_NONE in its Parameters key
  • Object Spawner includes -sspi REG_NONE in its Parameters key
  • Kerberos Constrained Delegation (KCD) is configured and working for all other SAS usage (remote SQL, file shares).
  • The library in the LIBNAME statement is an ODBC connection to a database on a remote MS-SQL server that authenticates using domain credentials.

When EG clients connect to SAS using stored credentials, the following code works as intended.

When EG clients connect to SAS using IWA, the code fails with ERROR: CLI error trying to establish connection: [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Login failed for user 'NT
AUTHORITY\ANONYMOUS LOGON'.


All other code works as desired, regardless of EG authentication. This leads me to believe that there's a post-setup SAS/CONNECT configuration I've missed, but I can't seem to locate it.

TIA,
Jim
SAS Admin, Central WA Univ

 

OPTIONS AUTOSIGNON=Yes SASCMD="!sascmd";

%LET StuCenLib =;
%LET StuEndLib =;

rsubmit task1 wait=no sysrputsync=yes;

	LIBNAME SS META LIBRARY="Static_Store";
	data Student_Census;
		set SS.STU_Student_Census;
	run;
	%sysrput StuCenLib=%sysfunc(pathname(work));
	%sysrput task1code = &sysinfo;
	LIBNAME SS CLEAR;

endrsubmit;

%PUT NOTE: %DateTimeStamp First data step began;


rsubmit task2 wait=no sysrputsync=yes;

	LIBNAME SS META LIBRARY="Static_Store";
	data Student_End;
		set SS.STU_Student_End;
	run;
	%sysrput StuEndLib=%sysfunc(pathname(work));
	%sysrput task2code = &sysinfo;
	LIBNAME SS CLEAR;

endrsubmit;

%PUT NOTE: %DateTimeStamp Second data step began;

waitfor _all_ task1 task2;
%PUT NOTE: %DateTimeStamp All data steps ended;
rget process=task1;
rget process=task2;

%PUT StuCenLib = &StuCenLib, StuEndLib = &StuEndLib;
%PUT Task1Code = &Task1Code, Task2Code = &Task2Code;

LIBNAME StuCen "&StuCenLib";
LIBNAME StuEnd "&StuEndLib";

%PUT NOTE: %DateTimeStamp Proc sql began;
proc sql;
	CREATE TABLE Cen_End AS 
		SELECT
			sc.STRM
			, sc.EMPLID
		FROM StuCen.Student_Census AS sc
			LEFT JOIN StuEnd.Student_End AS se
				ON se.STRM = sc.STRM
				AND se.EMPLID = sc.EMPLID
		WHERE missing(se.EMPLID)
	;
quit;

 

 

suga badge.PNGThe SAS Users Group for Administrators (SUGA) is open to all SAS administrators and architects who install, update, manage or maintain a SAS deployment. 

Join SUGA 

Get Started with SAS Information Catalog in SAS Viya

SAS technical trainer Erin Winters shows you how to explore assets, create new data discovery agents, schedule data discovery agents, and much more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 0 replies
  • 81 views
  • 0 likes
  • 1 in conversation