Я снял этот пример с GitHub:
https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-tutorials-desktop-app
Он работает с исходными наборами приложений, подключенными к их службе аутентификации, но когда я изменяю его на свое приложение Azure B2C, я получаю ошибку 401. Я перепробовал все возможные комбинации и несколько раз перебрал инструкции, но все равно получил 401.
Итак, я попытался подключиться с помощью PostMan и инструкций, которые я нашел здесь:
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/azure-ad-b2c-webapi?view=aspnetcore-2.2
И, что интересно, это прекрасно работает. Тогда я разобрал запросы, чтобы выяснить, в чем дело. Видимо, пример приложения пытается подключиться к Органу по адресу:
https://login.microsoftonline.com/tfp/tenant/policy/oauth2/v2.0/authorize
Но пример Почтальона пытается подключиться к авторитету по адресу:
https://tenant.b2clogin.com/tenant/oauth2/v2.0/authorize?p=B2C_1_Sign_In
Поэтому я сделал еще один шаг вперед, скопировал маркер безопасности из Postman и вставил его в мое клиентское приложение. Это сработало!
Естественно, я подумал, что следующим шагом будет получение полномочий, которые я использовал в PostMan, и размещение их в приложении для настольных ПК. Это не удалось. Когда я проверял приложение PublicClientApplication, полномочия были усечены до:
https://gammafourdevelopment.b2clogin.com/gammafourdevelopment.onmicrosoft.com/
Может, кто-нибудь подскажет, как должен работать этот API, поскольку ни один из примеров не является актуальным (кроме примера «Почтальон»)?