我的目标是让内部网用户的凭证通过一个asp.net网页传递到SAP。
背景
我们有SAP设置与我们的AD系统。用户可以在不输入用户名/密码的情况下打开SAP并登录。
我们使用ERPConnect在SAP中调用RFCs。如果我们向连接字符串提供凭据,它就会工作得很好。如果网页在我们的本地机器上运行,我们还可以使用下面的代码使用SSO。
Dim db As New SAPContext("ashost=sapsandbox.xxxsap.ad.xxx.com snc_mode=1 sysnr=00 SNC_QOP=9 snc_partnername=p:SAPUserAccount@xxxSAP.AD.XXX.COM SNC_LIB=C:\windows\system32\gsskrb5.dll")当我们移动到运行IIS6的windows 2003服务器机器时,会得到以下错误。
SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed
Connect_PM GWHOST=sapsandbox.xxxsap.ad.xxx.com, GWSERV=sapgw00, SYSNR=00
LOCATION CPIC (TCP/IP) on local host
ERROR GSS-API(maj): Miscellaneous Failure
GSS-API(min): Kerberos SSPI not usable with this User account
STOP! -- initial call to gss_indicate_mechs() failed
TIME Fri Sep 02 14:13:47 201
RELEASE 710
COMPONENT SNC (Secure Network Communication)
VERSION 5
RC -1
MODULE sncxxdl.c
LINE我在我的站点上禁用了匿名访问。我还学习了这关于如何在IIS6上启用kerberos身份验证的文章。
有人知道怎么做吗?如果有更简单的方法让它使用IIS7,我们可以转移到它。
编辑
我设置了<identity impersonate="true" />,现在得到了一个新的错误。
SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed
Connect_PM GWHOST=sapsandbox.xxxsap.ad.xxx.com, GWSERV=sapgw00, SYSNR=00
LOCATION CPIC (TCP/IP) on local host
ERROR GSS-API(maj): Miscellaneous Failure
GSS-API(min): SSPI::AcqCredHdl(INI)==No credentials available
in secur
Could't acquire DEFAULT INITIATING credentials
TIME Tue Sep 06 11:45:11 201
RELEASE 710
COMPONENT SNC (Secure Network Communication)
VERSION 5
RC -4
MODULE snc编辑
我想我必须有AD设置才能使用SPN。这是我在这个问题上看到的。
在前端应用程序的应用程序池帐户上设置SPN。
发布于 2011-09-06 19:26:38
不熟悉,但是除了SPN之外,是关键,AD必须信任发送kerberos票据的机器,我强烈建议阅读本文:
理解Kerberos双跳
https://stackoverflow.com/questions/7289372
复制相似问题