Active Directory: MSAL (UWP) PublicClientApplication.AcquireTokenAsync (...) возвращает исключение - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь реализовать функцию входа / входа с использованием Active Directory. Я основываюсь на этом образце b2c-ксамарина .

Ниже приведен соответствующий код, с которым у меня возникают проблемы. Я сделал здесь изменения, чтобы упростить читабельность. Я вставил комментарии для чего-либо заметного, особенно AcquireTokenAsync:

string ClientID     = "<application_id_of_b2c_application>"
string Authority    = "https://login.microsoftonline.com/tfp/<b2c_tenant_name>/<signin_policy_name>/oauth2/v2.0/authorize"

PublicClientApplication PCA = new PublicClientApplication(ClientID, Authority);

//  The application says to override this which I do not as I am not sure if its required for actual sign in
PCA.RedirectUri = $"msal{ClientID}://auth";

//  UWP SIGN IN CODE
string Scopes = { "User.Read" };
string PolicySignUpSignIn = "<signin_policy_name>";

//  Arguments #2 and #3 both return null.  This happens also with the unmodified sample that works.
//  I do not know what to put in for argument #1 (scopes) - I have tried numerous combinations to no avail.  currently I have { "User.Read" }
AuthenticationResult ar = await PCA.AcquireTokenAsync(Scopes, GetUserByPolicy(PCA.Users, PolicySignUpSignIn), PCA.UiParent);

Исключение, которое я получаю при вызове AcquireTokenAsync, следующее (усечено для удобства чтения - я вставил начало и конец)

{Microsoft.Identity.Client.MsalException: сбой аутентификации WAB ---> System.IO.FileNotFoundException: указанный протокол неизвестен. (Исключение из HRESULT: 0x800C000D) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task задание) ... (TRUNCATION) ... --- Конец стека трассировки из предыдущего места, где было сгенерировано исключение --- в UserDetailsClient.MainPage.d__2.MoveNext () Код ошибки: authentication_ui_failed}

На мой взгляд, проблема может быть в следующем:

  1. PublicClientApplication (PCA) было инициализировано с неверными параметрами (идентификатор клиента / полномочия)
  2. Я использую неверный аргумент Scopes для AcquireTokenAsync - в настоящее время это: {"User.Read"}
  3. Мне нужно указать правильный URI перенаправления и назначить его PCA перед вызовом AcquireTokenAsync в UWP
  4. Я что-то упустил на конце Azure

Я перепробовал множество комбинаций аргументов на основе значений, которые у меня есть в Azure AD, но безрезультатно. Я мог бы действительно использовать некоторую помощь.

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