Итак, мы создали набор функций Azure, защищенных ADFS (MSAL).
. Мы настроили приложение в ADFS и все это работало с нашим клиентом Android.
Теперь мы хотим провести некоторое тестирование API, поэтому мы хотим программно сгенерировать токены Auth для тестирования API
. Я не могу заставить работать следующий код вообще, возможно, у меня неверный идентификатор арендатора в приложенииconfig, это GUID (42b03d0b-d7f2-403e-b764-0dbdcf0505f6), но примеры говорят, что это наш домен
string userName = "-";
string password = "-";
string clientId = "ee13c922-bf4b-4f0a-ba39-ea74e1203c6e";
var credentials = new UserPasswordCredential(userName, password);
var authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/acostaonline.onmicrosoft.com");
var result = await authenticationContext.AcquireTokenAsync("https://graph.windows.net", clientId, credentials);
UPDATE
Поэтому изменил код набыть MSAL и все еще пытаться войти через имя пользователя и пароль.Теперь время ожидания истекает
string authority = "https://login.microsoftonline.com/42b03d0b-d7f2-403e-b764-0dbdcf0505f6/";
string[] scopes = new string[] { "user.read" };
PublicClientApplication app = new PublicClientApplication("ee13c922-bf4b-4f0a-ba39-ea74e1203c6e", authority);
var accounts = await app.GetAccountsAsync();
Microsoft.Identity.Client.AuthenticationResult result = null;
if (accounts.Any())
{
result = await app.AcquireTokenSilentAsync(scopes, accounts.FirstOrDefault());
}
else
{
try
{
var securePassword = new SecureString();
foreach (char c in "PASSWORD") // you should fetch the password keystroke
securePassword.AppendChar(c); // by keystroke
result = await app.AcquireTokenByUsernamePasswordAsync(scopes, "AUSER@acosta.com",
securePassword);
}
}
Ошибка
SocketException: попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через некоторое время,или установлено соединение не удалось, поскольку подключенный хост не смог ответить 172.26.200.77:443