Чтобы защитить доступ к этим API, я создал арендатор «Entra Внешний идентификатор» («для клиентов»), в котором я зарегистрировался. my App и добавил базовый пользовательский процесс «регистрация/вход по электронной почте + пароль». Затем добавил
Затем я создал несколько «локальных» тестовых пользователей (пользователей, у которых этот входной внешний идентификатор является домашним каталогом) и предоставил им доступ к ресурсам, предоставляющим API.
В приложении также зарегистрированы необходимые области, и я дал согласие администратора для каждого пользователя в клиенте.
Однако, когда я пробую войти в систему со следующим код (MSAL):
Код: Выделить всё
var clientId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
var tenantId = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy";
var tenantSubdomain = "tenantsubdomain";
var scopes = new string[] { "https://cognitiveservices.azure.com/.default" };
var app = PublicClientApplicationBuilder.Create(clientId)
//.WithTenantId(tenantId) // with or without this line gets me the same result
.WithAuthority($"https://{tenantSubdomain}.ciamlogin.com/{tenantId}")
.WithDefaultRedirectUri()
.Build();
var ar = await app.AcquireTokenInteractive(scopes).ExecuteAsync();
// ...
Сведения об ошибке: errorvalid_request error_description:
AADSTS500207: тип учетной записи не может использоваться для ресурса, к которому вы пытаетесь получить доступ.
Идентификатор трассировки: abc Идентификатор корреляции: def Метка времени: 25 сентября 2024 г. 08:11:17Z
Я могу регистрировать пользователей из процесса входа в систему, но даже эти пользователи затем отклоняются с той же ошибкой.
«Тип учетной записи» для меня обычно означает «личный» или «бизнес», я ожидаю, что «личные» учетные записи будут отклонены (из-за конфигурации приложения «единый арендатор»), но не учетные записи, созданные в том же клиенте .
Это настолько распространенный вариант использования, что мне кажется, что я упускаю что-то очевидное, но не могу этого найти.
Похожие вопросы:
[*]Внешний идентификатор Entra с идентификатором Microsoft, выдающим AADSTS500208, если пользователь не является глобальным администратором.
Решение, похоже, можно использовать ciamlogin.com вместо login.microsoftonline.com, но, похоже, это ко мне не относится.
< /ul>
Обновление комментариев
При использовании login.microsoftonline.com возникает ошибка:
AADSTS500208: Домен не является допустимым доменом для входа в систему для данного типа учетной записи
Использование tenantSubdomain.ciamlogin.com/tenantid/v2. 0 снова ошибка:
AADSTS500207: Тип учетной записи не может использоваться для ресурса, к которому вы пытаетесь получить доступ
(но URL-адрес, который я вижу в браузере, на самом деле такой же, как и без «/2.0», поэтому я думаю, что MSAL переписывает эту часть).
При использовании tenantSubdomain.ciamlogin.com (без добавления tenantId) результат тот же.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ccount-via
Мобильная версия