Praktyczny programista
Strona główna Programowanie Uwierzytelnianie użytkownika w aplikacji desktopowej z użyciem Azure Active Directory

Uwierzytelnianie użytkownika w aplikacji desktopowej z użyciem Azure Active Directory

przez Radek

Jednym ze sposóbów na uwierzytelnianie (authentication) użytkowników jest wykorzystanie Azure Active Directory.

W tym konkretnym przypadku chciałbym opisać w jaki sposób można to zrobić dla desktopowej aplikacji klienckiej.

Jako, że sam temat wypełniania parametrów w Azure, jest bardzo szeroki będę omawiał tu jedynie parametry, które są niezbędne w kontekscie tego wpisu.

Rejestracja Web API

Pierwszym elementem, który musimy wykonać to rejestracja naszego Web API w na portalu Azure.

Na stronie głównej portalu wyszukujemy hasło „App registrations” i po otwarciu strony naciskamy przycisk „New registration”:

Na stronie rejestracji API wypełniamy niezbędne dane i naciskamy przycisk „Register„:

Gdy aplikacja WebAPI jest zarejestrowana należy wystawić jej API. Więc przechodzimy do zakładki „Expose an API” i klikamy przycisk „Add scope”.

Przy dodawaniu „scope’a” po raz pierwszy musimy też zatwierdzić „Application ID URI”. Wartość proponowana domyślnie przez Azure zawiera wartość „Client ID” naszej aplikacji.

Gdy następnie musimy wypełnić niezbędne parametry dla nowego „scope’a”:

Wygenerowaną wartość „scope’a” użyjemy w kolejnych etapach.

Rejestracja DesktopApp

Aby zarejestrować nową aplikację wykonujemy te same kroki co poprzednio.

Możemy zmienić przy tworzeniu „Redirect URI„, ale nie jest to konieczne na tym etapie.

Po zarejestrowaniu aplikacji DesktopApp przechodzimy do zakładki „API permissions” i dodajemy nowe „pozwolenie” dla wcześniej zarejestrowanego WebApi.

W kolejnym etapie wybieramy konkretne API udostępnione przez WebAPI.

DesktopApp – pobieranie tokena z AD

Na potrzeby tego wpisu proponuję pobranie aplikacji WPF znajdującej się pod tym adresem WPF application signing in users with Microsoft and calling the Microsoft Graph.

Kod służący do pobierania token’a należy zaimplementować we włąsnym kliencie na podstawie kodu przykładowego.

ClientID i Tenant należy skopiować ze strony głównej zarejestrowanej DesktopApp.

Poniżej przykład:

private static string ClientId = "1fd353b8-9e83-49a4-8291-231103fcd13f";
private static string Tenant = "372ee9e0-9ce0-4033-a64a-c07073a91ecd";

Scopes pobieramy z zakładki „API permissions”

private string[] scopes = new[] { "api://69f60abc-a85c-4d04-96f2-71bca017544d/Read.API" };

WebAPI

Jeżeli chodzi o WebAPI to nie przygotowałem jeszcze konkretnego przykładu. Proponuję zajrzeć tu https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2 aby znaleźć aktualizowane na bieżąco przykłady aplikacji.

Źródła:

You may also like

1 komentarz

dotnetomaniak.pl 17 listopada 2021 - 10:22

Uwierzytelnianie użytkownika w aplikacji desktopowej z użyciem Azure Active Directory – Radosław Dąbrowicz

Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl

Odpowiedz

Skomentuj