微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Windows身份validation在中间层对用户进行身份validation

我们有一个使用RemObjects DataAbstract / SDK编写的Delphi服务器。 我们希望使用Windows身份validation来validation用户,以允许他们访问我们的服务器。

目前我们做了以下工作:

1)客户端应用程序将Windows用户名密码以明文forms发送到服务器。 2)服务器使用以下函数检查证书:

function ValidateUserlogonAPI(const UserName: string; const Domain: string; const PassWord: string) : boolean; var Retvar: boolean; LHandle: THandle; begin Retvar := logonUser(PWideChar(UserName),PWideChar(Domain),PWideChar(PassWord),logoN32_logoN_NETWORK,logoN32_PROVIDER_DEFAULT,LHandle); if Retvar then CloseHandle(LHandle); Result := Retvar; end;

当然,这种方法的缺点是用户凭证以明文forms通过networking传递。 我们可以对它们进行encryption,但encryption/解密密钥必须在应用程序内运输。

挂钩到linux身份validation运行脚本或程序时,满足一定的条件

除了本地networking上的Nginxauthentication

基本身份validation和智威汤逊

如何使用node.js保护单个页面应用程序中的静态文件

使用Windowslogin的Intranet网站身份validation

我相信,要实现我们的目标肯定有更好的办法。 我已经读了一些关于令牌的内容,但是不太明白在这种情况下他们将如何工作。

请注意,她的解决scheme必须同时适用于Delphi Windows客户端和Delphi Prism ASP.NET客户端。

谢谢你提供的所有帮助。

Apache HttpClient 4.x上传文件时performance奇怪?

WSMan和基本授权

Nginx:是否有可能从auth_request中获得响应

如何根据Windows AD对用户进行身份validation?

从Java的Exchange Web服务身份validation

这是DataAbstract自己应该处理的事情,如果它不是Datasnap的一半支持的库:)对于远程处理来说,验证/授权端点和保护数据交换是非常重要的。

基本上,您不得不发送用户凭证,而是交换客户端和服务器都知道如何进行身份验证的“令牌”。 完整的解释可能很复杂。 你可以从MSDN开始(查找AcceptSecurityContext()和InitializeSecurityContext())。 一个可能的问题是,如果DataAbastract具有适当的挂钩来执行认证阶段,这可能需要多次往返。

作为一种权宜之计,您可以启用IPSec来保护通信渠道,不要让整个用户帐户轻易被“嗅探”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐