Я совсем запутался, пытаясь понять различия между MicrosoftAccount , AzureAD и OpenIDConnect аутентификации.
Я пытаюсь построить a. Net Core MVC приложение, которое позволяет некоторым пользователям проходить аутентификацию с локальными учетными записями, а некоторые - с учетными записями Microsoft. Мне нужно иметь локального пользователя в БД для обоих типов аутентификации, поскольку у меня есть несколько пользовательских механизмов авторизации, построенных на этом.
Я начал с создания приложения из шаблона и выбрал аутентификацию «локальных учетных записей». Затем я добавил аутентификацию MicrosoftAccount в соответствии с этим руководством (https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins?view=aspnetcore-3.1) . Это использует Microsoft.AspNetCore.Authentication.MicrosoftAccount и, кажется, работает нормально.
Однако, когда я создаю новое приложение из шаблона и выбираю аутентификацию «рабочая или учебная учетная запись», я вижу, что она использует другую библиотеку - Microsoft.AspNetCore.Authentication.AzureAD.UI. Кажется, делают то же самое. Я вижу, что есть события, к которым я мог подключиться, чтобы подключить пользователя AAD к моей локальной БД.
Просматривая веб-страницы, я нашел несколько других учебных пособий, в которых для той же цели использовался OpenIDConnect.
Чем эти методы отличаются? Какой из них я должен использовать и почему?
В будущем я хотел бы иметь возможность запросить каталог пользователя для списка других пользователей. Будет ли это требование легче удовлетворить с помощью любого из этих трех методов?