2009-06-27 5 views
7

DelphiがActive Directory Kerberosサーバーを呼び出してチケットを取得するチケット/通常のチケットを要求する方法を示す例はありますか?DelphiでKerberosチケットを取得するにはどうすればよいですか?

背景:チケットは機密情報を交換するウェブサービスへの認証に必要です。

編集:短いソースコードの例が非常に役に立ちます。私は非常に印象的なJEDI Windows Security Code Libraryを見つけました。 Kerberosのサポートが含まれているかどうかはわかりません。

+1

を参照してください。https://quality.embarcadero.com/browse/RSP-15455 – mjn

答えて

6

thisによれば、InitializeSecurityContext windows API呼び出しで取得できるはずです。

+0

リンクをありがとうございます - ただし、Delphiで使用するには、多くのAPIレコード構造を作成して最初に入力する必要があります。私は賞金を始めました、多分誰かがいくつかのコードを共有することができます。 – mjn

+1

ほとんどのWin32 APIヘッダーはJEDIプロジェクト(http://jedi-apilib.sourceforge.net/)で変換されていますが、それがなければ私は通常Googleのcodesearch(http://www.google.com/codesearch? q = initializesecuritycontext + lang:pascal)私が必要とする帽子を見つける。 –

+1

NTLM資格情報でInitializeSecurityContextを呼び出す方法を示す古いコードがhttp://cc.embarcadero.com/Item/16213にあります。 Kerberosチケットを取得しようとする人にとっては、まともなスタートかもしれません。 – Mattl

1

最初にKerberizing Applications Using Security Support Provider Interfaceを読んで一般的な考えを得てください。 InitializeSecurityContextは、次のように説明されています

は サーバーに渡さなければならないセキュリティトークンを生成 によってセキュリティコンテキストを開始します。この機能を使用するアプリケーション は、SSPIクライアントと呼ばれる です。

msdnでは、SSPI関数の一覧はAuthentication Functionsにあります。

実際のコード例については、Win32サンプルのSSPI pageを参照してください。あなたはおそらくclient.cppが役に立ちます。別の同様の例はGssClient.cです。 SEC_I_CONTINUE_NEEDEDが返された場合、対話は継続しているので、両方のコードでループを実行しています。

関連する問題