REST服务的Delphi(XE7)Kerberos身份验证

REST服务的Delphi(XE7)Kerberos身份验证,rest,delphi,authentication,winapi,kerberos,Rest,Delphi,Authentication,Winapi,Kerberos,我有一个用DelphiXe7和构建的REST服务(因此没有使用datasnap)。前端是用角度构建的,但这与主题无关 现在我需要通过Kerberos身份验证对用户进行授权。当从同一域运行时,用户应自动登录到web应用程序内部(在这种情况下是单点登录),当在域外部调用时,应弹出一个用户名/密码窗口,用户可使用其windows凭据登录 在.Net中,这只是4行代码(实际上它只是需要设置的设置),但在delphi中,我很难执行此操作。我找了很多 发现这里说我应该从windows实现Initialize

我有一个用DelphiXe7和构建的REST服务(因此没有使用datasnap)。前端是用角度构建的,但这与主题无关

现在我需要通过Kerberos身份验证对用户进行授权。当从同一域运行时,用户应自动登录到web应用程序内部(在这种情况下是单点登录),当在域外部调用时,应弹出一个用户名/密码窗口,用户可使用其windows凭据登录

在.Net中,这只是4行代码(实际上它只是需要设置的设置),但在delphi中,我很难执行此操作。我找了很多 发现这里说我应该从windows实现InitializeSecurityContext函数。我找到了其他几个指向这个方向的答案,其中一些还说我需要重建一个完整的NTLM身份验证bcz,delphi没有这种现成的东西。但由于我对windows身份验证协议不太熟悉,我想问一下是否有人用delphi实现了kerberos身份验证,以及是否有其他方法来实现我所需要的

问候
Semir

通常,这方面的大部分工作是在web服务器上完成的,而不是在每个web服务/应用程序中完成的。如果您在IIS上部署该服务并使用其用户身份验证,则应该更容易完成。我不确定这是否会像这样工作。我仍然需要代码中的某些内容,以便能够访问经过身份验证的用户许多不支持“开箱即用”SSO的公司内部系统被放置在一个代理(Apache/NGinx)后面,该代理通过标准SPNego处理Kerberos身份验证,然后用另一个头替换包含身份验证令牌的HTTP头“嘿,那是John Doe,相信我”对于IIS你可以从中获得。谢谢你的回答。但这意味着我需要将我的应用程序更改为ISAPI?现在我有一个自托管的ST服务器,或者我可以集成我的exe在IIS下运行吗?