私は小さなWebサーバーにNegotiate(少なくともKerberosの部分)を実装しようとしています。 Kerberos Negotiate Authorizationヘッダーをクライアントに送信する方法を知りました。私はそのデータをどのようにデコードするかを考え出しました(ASN.1)。私はこれをWindowsIdentity
にする方法を理解できません。私はKerberosReceiverSecurityToken
からの可能性について一般的な考えを得ることができますが、NegotiateReceiverSecurityToken
のようなものは見つかりません。私は多くのDLLを掘り下げてきましたが、IIS/.NETがどこでNegotiateヘッダーを処理するのか分かりません。.NETでNegotiateを処理するにはどうすればよいですか?
私はAcceptSecurityContext/Negotiate
を呼び出してから、私はWindowsIdentity
を作成する可能性があるとのトークンを取得するためにQuerySecurityContextToken
を使用することができたとSSPIコンテキストを取得するためにSspiWrapper.AcquireDefaultCredential("Negotiate", CredentialUse.Inbound)
で何かをすることを(私はSspiWrapper
自分を持っていた場合)私は推測。
しかし、KerberosReceiverSecurityToken
は非常に複雑なプロセスのように見えます。それをどうやって行うのか、Authorizationヘッダーのペイロードのどの部分を入れるのか分からずに、私はおそらくどこにも行かずに1か月間頭を打つことができました。
(私がそれを見つけることができれば私はそれを学ぶだろうが、私はそれをFARのために働かせようとしてきた。長い。そして、私はそれで終わりだ。)
Microsoftが提供するKatana/Kestrel Webサーバーのソースコードレポを参照して、それらが呼び出すネイティブAPIを知る必要があります。それは私が閉会することを議論している広い質問です。独自のものを作成するつもりなら、マイクロソフトは自分のサイトで標準文書を公開しています。 –
@LexLi私の質問はどのように広がっていますか?サーバーからクライアントに送信されたデータをWindowsPrincipalに変換したいと考えています。私に特有のものだと思う。 –
プロトコルクライアントの実装は巨大なプロジェクトであり、Stack Overflowのスレッドがどれくらいのパフォーマンスを期待していますか? –