Azure B2C - Сбой PublicClientApplicatcion.AcquireTokenByUsernamePasswordAsync - PullRequest
0 голосов
/ 21 декабря 2018

У меня проблемы со входом в Active Directory Azure B2C с использованием имени пользователя и пароля из приложения консоли ядра .net.Я использую MSAL Library 2.6 от Nuget.Я нашел этот пример на GitHub https://github.com/Azure-Samples/active-directory-dotnetcore-console-up-v2

Я уменьшил код до минимума, он выглядит так:

public static async Task TestLogin()
{
    try
    {
        var scopes = new[] { "community.member" };
        var username = "{user@domain.com}";
        var password = new SecureString();

        foreach (var c in "{Password}")
        {
            password.AppendChar(c);
        }

        var app = new PublicClientApplication("{B2C Application ID}", "https://{Application Name}.b2clogin.com/tfp/xxxxxxx-xxxx-xxxxxxxxxxxx/B2C_1_NativeSigneIn");

        var result = await app.AcquireTokenByUsernamePasswordAsync(scopes, username, password);
        Console.WriteLine($"Token: {result.AccessToken}");
    }
    catch (MsalServiceException ex)
    {
        Console.WriteLine($"{ex.Message} - {ex.ErrorCode}");
    }
}

Я всегда получаю следующее исключение MSAL: Сообщение:Ошибка обнаружения области пользователя. Код ошибки: user_realm_discovery_failed

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

В старой библиотеке есть ошибка.В новой версии MSAL есть исправление.Вы можете прочитать о проблеме и ее решении здесь:

https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/926

В основном вам необходимо скачать локальную версию пакета, скомпилированного одним из разработчиков из источника GITHUB, ссылаясь на то, чтопакет из вашего решения, указав NuGet Package Manager на загруженный пакет, затем вам нужно переработать API для нового Fluent API для MSAL, и это будет работать!Легко как то.

0 голосов
/ 25 декабря 2018

Я попробовал политику B2C, поток ropc не может поддерживать другие политики, вы можете использовать только политику ropc.

enter image description here

Для получения подробной информации,Вы можете прочитать здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...