Uwierzytelnienie lokalnie aplikacji w WebApi

0

Cześć, mam lokalnie postawione selfhosted webapi i do tego apkę w electronie do pobierania i wizualizowania danych z tego webapi. Czy macie jakiś pomysł jak mógłbym dać dostęp jedynie do odpytywania api tylko tej jednej aplikacji? Oczywiście mam w głowie standardowe sposoby uwierzytelnienia dla webapi, ale ciekawi mnie czy na podstawie jakiegoś identyfikatora można rozpoznać program/proces? System to Windows.

3

Najszybciej to chyba autoryzacja i autentykacja za pomocą tokena, którego miała by tylko ta jedna aplikacja, a przy każdym kontrolerze dopisujesz tylko [Authorize] i bez tokena w headerze dostaniesz 401 lub 403.

1

Możesz po nazwie znaleźć taki proces - dla ekspresa to będzie pewnie jakiś Node, ale api nie wie kto go odpytuje i nie ma jak połączyć te dane w kupę. Pozostaje zrobić jakiś klucz autoryzacyjny.

2

Osobiście nie polegałbym na żadnych identyfikatorach procesów tylko użył bardziej standardowych metod uwierzytelniania jak np Identity.

Jeśli wszystko masz postawione w jakiejś lokalnej sieci czy na jednej maszynie i jesteś pewien że nikt niepowołany się tam nie dostanie a jeśli nawet dostanie to nie znajdzie nic czego byś żałował to możesz od biedy wygenerować sobie jakiś klucz uwierzytelniający który dodasz do każdego żądania (np header) a w samym api dodasz middleware który sprawdzi czy wartość przekazana w danym nagłówku odpowiada temu co masz w konfiguracji. Tyle, że to nie zapewnia zbyt dużego bezpieczeństwa

0

@AdamWox @UglyMan @var dla ułatwienia powiem, że webapi jest uruchomione na prawach LocalSystem, a użytkownik jest bez praw administratora

1

A jakie to ma znaczenie? To ty decydujesz o tym co API ma zwrócić i kto ma mieć do tego dostęp. Użytkownik bez praw administracyjnych może mieć jedynie problem z uruchomieniem electronowej apki.

0

Najlepszym rozwiązaniem jest odpowiedź @AdamWox. Inne aplikacje będa mogły nawiązać połączenie z API, ale nie będą mogły korzystać z jej dóbr.
Jeżeli nie przekonuje Cię to i zależy Ci na tym, aby nikt poza apką nie mógł się połączyć z API, to postaw API na stałym porcie i zezwól tylko jednej aplikacji na łączenie sie z tym portem

0

@gswidwa1: Tylko w jaki sposób zezwolić tej jednej aplikacji na łączenie się z tym portem?

1

Żeby rozpoznać proces/aplikację, używa się ApiKey i ApiSecret. Wtedy wiesz, co za aplikacja się łączy z API.

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