【问题标题】:How can I get a Kerberos ticket with Delphi?如何使用 Delphi 获得 Kerberos 票?
【发布时间】:2010-11-06 08:18:10
【问题描述】:

是否有示例说明 Delphi 如何调用 Active Directory Kerberos 服务器来请求票证授予票证/普通票证?

背景:验证交换机密信息的网络服务需要票证。

编辑:一个简短的源代码示例将非常有帮助。我发现JEDI Windows Security Code Library 非常令人印象深刻。我不确定它是否包含对 Kerberos 的支持。

【问题讨论】:

标签: web-services delphi active-directory kerberos


【解决方案1】:

根据this,您应该能够通过InitializeSecurityContext windows API 调用获得一个。

【讨论】:

  • 感谢您的链接 - 但是要在 Delphi 中使用它,似乎必须先创建和填充许多 API 记录结构。我已经开始赏金了,也许有人可以分享一些代码。
  • 大部分 Win32 API 标头已在 JEDI 项目 (jedi-apilib.sourceforge.net) 下转换,如果不存在,我通常使用 google 的代码搜索 (google.com/codesearch?q=initializesecuritycontext+lang:pascal) 来查找我需要的帽子。
  • 这里有一些旧代码cc.embarcadero.com/Item/16213 演示了如何使用 NTLM 凭据调用 InitializeSecurityContext。对于任何试图获得 Kerberos 票证的人来说,这可能是一个不错的开始。
【解决方案2】:

首先阅读Kerberizing Applications Using Security Support Provider Interface 以了解大致情况。 InitializeSecurityContext描述如下:

通过以下方式启动安全上下文 生成必须的安全令牌 传递给服务器。这 使用此功能的应用程序是 称为 SSPI 客户端。

在msdn上,可以在Authentication Functions找到SSPI函数列表。

有关实际示例代码,请参阅 Win32 示例的SSPI page。您可能会发现 client.cpp 很有用。另一个类似的例子是GssClient.c。两个代码都在循环中运行它,因为如果返回 SEC_I_CONTINUE_NEEDED,对话会继续进行。

【讨论】:

    猜你喜欢
    • 2011-05-14
    • 2017-04-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多