将 IWA 与 SAS ExportPackage 实用程序结合使用

Using IWA with SAS ExportPackage utility

使用SAS元数据批量导出工具时是否可以避免使用密码?

我正在我的 STP 网络应用程序(SAS 9.2、IWA、Kerberos)中构建一个功能,用于自动导出元数据项。根据 documentation,ExportPackage 实用程序需要凭据直接(-user-password 等选项)或通过连接配置文件(-profile)。

sassrv登录应用服务器,我的连接配置文件内容如下:

#Properties file updated on: Thu Mar 12 16:35:07 GMT 2015  !!!!! DO NOT EDIT !!!!!!!
#Thu Mar 12 16:35:07 GMT 2015
Name=SAS
port=8561
InternalAccount=false
host=DEV-SASMETA.somecompany.int
AppServer.Default=A5MNZZZZ.AR000666
AllowLocalPasswords=true
authenticationdomain=DefaultAuth
SingleSignOn=true

运行 我的代码结果如下:

44        +%put Batch tool located at: &platform_object_path;
Batch tool located at: C:\Program Files\SAS/SASPlatformObjectFramework/9.2
45        +filename inpipe pipe
46        +   " ""&platform_object_path\ExportPackage"" -profile MyProfile
47        +  -package 'C:\Temp\TestPackage.spk' -objects '/SomeFolder/ARCHIVE(Folder)' -includeDep -subprop";
48        +data _null_;
49        +   infile inpipe;
50        +   input; putlog _infile_;
51        +run;

NOTE: The infile INPIPE is:
      Unnamed Pipe Access Device,
      
      PROCESS="C:\Program Files\SAS/SASPlatformObjectFramework/9.2\ExportPackage" -profile MyProfile  -package 'C:\Temp\TestPackage.spk' -objects '/SomeFolder/ARCHIVE(Folder)' -includeDep 
      -subprop,
      RECFM=V,LRECL=256

The export process has failed.  The native implementation module for the security package could not be found in the path.
For more information, view the export log file: C:\Users\sassrv\AppData\Roaming\SAS\Logs\Export_150427172003.log
NOTE: 2 records were read from the infile INPIPE.
      The minimum record length was 112.
      The maximum record length was 121.

日志文件为空。

大概我的选择仅限于:

  1. 正在向前端索取用户密码
  2. 在连接配置文件中使用系统帐户
  3. 在 -user 和 -password 选项中使用系统帐户

??

这最初是通过在配置文件中嵌入用户名/密码来解决的,但现在它通过采用下面的(修改后的)模板配置文件,并动态添加 host= / port= 参数来解决运行时(因此可以在不同的环境中使用相同的配置文件)。

IWA 现在用于连接到元数据服务器!

# This file is used by Release Management for connecting to the metadata server
# The host= and port= parameters are provided by the application at runtime
SingleSignOn=true
AllowLocalPasswords=true
InternalAccount=false
SecurityPackageList=Negotiate,NTLM
SecurityPackage=Negotiate

我发现的一件重要事情(不在 SAS 文档中)是您可以在 ExportPackage 命令中用配置文件(.swa 文件)的绝对路径替换配置文件名称。

编辑(一年后): 正如@Stig Eide 所指出的,该错误似乎确实与 32 位和 64 位 JRE 有关。我今天在 DI Studio 中也遇到了这个问题,并按照 here

中所述复制 sspiauth.dll 文件解决了这个问题

我前段时间通过 SAS 技术支持验证了这一点;目前不可能。

我为其输入了一个 SASWare Ballet 项目:https://communities.sas.com/t5/SASware-Ballot-Ideas/Add-Integrated-Windows-Authentication-IWA-support-to-Batch/idi-p/220474

请投票!