Integrated Windows Authentication - Negotaite

0

Mam kolejne zadanie związane z uwierzytelnianiem do serwerów.
Przyszła pora by aplikacja wspierała na platformie Windows Integrated Windows Authentication korzystając z metody uwierzytelnienia Negotiate.

Znalazłem doskonały przykład jak można to zrobić na Windows: https://github.com/adobe/chromium/blob/master/net/http/http_auth_sspi_win.cc
i się na nim bardzo wzoruje.
Mam jednak parę wątpliwości.

Po pierwsze czy wywołania funkcji systemowych są blokujące? (bo np system musi wykonać jakieś operacje sieciowe na domenie)
Chodzi o wszystkie funkcje ukryte za interfejsem: SSPILibrary czyli:

  • AcquireCredentialsHandle
  • InitializeSecurityContext (ta mnie najbardziej martwi)

Wolałbym, żeby nie były blokujące bo wtedy nie musiałbym angażować dodatkowych wątków.
Dokumentacja nic mi na ten temat nie mówi, albo za słabo ją przeczytałem: https://msdn.microsoft.com/en-us/library/windows/desktop/aa375506(v=vs.85).aspx
ale może ktoś będzie coś wiedział z własnego doświadczenia.

Kolejne pytanie Service Principal Name (SPN) https://msdn.microsoft.com/en-us/library/windows/desktop/aa375506(v=vs.85).aspx (pierwszy mój kontakt z tym czymś).
To powinno mieć formę: < service type >/< instance name >:< port number >
Z końcówką nie ma problemu: < instance name >:< port number > jest w miarę oczywiste i dokumentacja jest jasna.
Problemem jest początek < service type >. W moim przypadku serwery docelowe to będą różne usługi na protokołach: http, https, ws, wss
Czy ten < service type > odpowiada scheme z URL-a (protokołowi)? Czy to może być coś zależne od danego serwera?
Dokumentacja w tej materii jest dość uboga i nie pasuje do mojego przypadku, więc nie mam pojęcia co powinienem tam wstawić.

I na koniec co się dzieje jeśli maszyna jest poza domeną (np ktoś wyniesie laptop firmowy poza sieć wewnętrzną).

Z góry dzięki za każdy feedback

0

podbijam dla tych co się trzyma ją z dala od forum prze weekend :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1