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:
- Configure authentication in a sample WPF desktop app by using Azure AD B2C
- Configure authentication in a sample web app by using Azure AD B2C
- Desktop app that calls web APIs
- WPF application signing in users with Microsoft and calling the Microsoft Graph
1 komentarz
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
Komentowanie zamknięte.