작은 웹 서버에서 협상 (적어도 Kerberos 부분)을 구현하려고합니다. 클라이언트에게 Kerberos Negotiate Authorization 헤더를 보내는 방법을 알아 냈습니다. 데이터를 디코딩하는 방법을 알아 냈습니다 (ASN.1). 이것을 WindowsIdentity
으로 바꾸는 방법을 알 수 없습니다. KerberosReceiverSecurityToken
에서 어떻게 할 수 있는지에 대한 일반적인 아이디어를 얻을 수 있지만 NegotiateReceiverSecurityToken
과 같은 것을 찾을 수는 없습니다. 나는 많은 DLL을 파헤쳐 왔고 IIS/.NET이 협상 헤더를 처리하는 곳을 이해할 수 없다..NET에서 Negotiate를 처리하는 방법은 무엇입니까?
나는 가정 나는 내가 WindowsIdentity
을 만들 수있는 토큰을 얻을 수 QuerySecurityContextToken
를 사용하여 다음 AcceptSecurityContext/Negotiate
를 호출 할 수있는이있는 SSPI 컨텍스트를 취득 SspiWrapper.AcquireDefaultCredential("Negotiate", CredentialUse.Inbound)
으로 뭔가를 할 것이라고 (나는 SspiWrapper
내 자신이 있다면).
그러나 KerberosReceiverSecurityToken
은 매우 복잡한 프로세스처럼 보입니다. 어떻게 할 것인지 또는 Authorization 헤더 페이로드의 일부분을 넣을 것인지에 대한 아이디어가 없으면 아무데도 가지 않고도 한 달 동안 머리에 맞을 수 있습니다.
(물어 보거나 답변하기 전에 기본 제공되는 협상 논리를 사용하는 데 관심이 없습니다. 찾을 수만 있다면 배우고 배우 겠지만 FAR을 사용하기 위해 노력하고 있습니다. 긴. 그리고 나는 그와 끝났어요.)
Katana/Kestrel 웹 서버 소스 코드 repo를 참조하여 Microsoft가 제공하는 네이티브 API를 알아야합니다. 오히려 제가 닫으려는 광범위한 질문입니다. 자신 만의 사이트를 만들 계획이라면 Microsoft는 Google에서 더 잘 할 수있는 사이트에 표준 문서를 게시했습니다. –
@LexLi 내 질문에 어떤 영향이 있습니까? 내 서버로 보낸 데이터를 클라이언트에서 가져 와서 WindowsPrincipal으로 변환하려고합니다. 나 한테는 특이한 것 같아. –
프로토콜 클라이언트 구현은 거대한 프로젝트이며 스택 오버플로 (Stack Overflow) 스레드가 제공하는 얼마를 기대합니까? –