1

我的目标是让 Intranet 用户的凭据通过 asp.net 网页传递到 SAP RFC。

背景
我们在 AD 系统中设置了 SAP SSO。用户无需输入用户名/密码即可打开 SAP gui 并登录。

我们正在使用 ERPConnect 调用 SAP 中的 RFC。如果我们为连接字符串提供凭据,则效果很好。如果网页在我们的本地机器上运行,我们也可以使用下面的代码来使用 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 站点上禁用了匿名访问。我还关注了这篇关于如何在 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

4

1 回答 1

3

不熟悉 SAP,但是除了 SPN 之外,委托是这里的关键,AD 必须信任发送 kerberos 票证的机器,我强烈建议阅读这篇文章:

了解 Kerberos 双跳

于 2011-09-06T19:26:38.947 回答