Я пытаюсь реализовать функцию входа / входа с использованием 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}
На мой взгляд, проблема может быть в следующем:
- PublicClientApplication (PCA) было инициализировано с неверными параметрами (идентификатор клиента / полномочия)
- Я использую неверный аргумент Scopes для AcquireTokenAsync - в настоящее время это: {"User.Read"}
- Мне нужно указать правильный URI перенаправления и назначить его PCA перед вызовом AcquireTokenAsync в UWP
- Я что-то упустил на конце Azure
Я перепробовал множество комбинаций аргументов на основе значений, которые у меня есть в Azure AD, но безрезультатно. Я мог бы действительно использовать некоторую помощь.