Чтобы защитить доступ к этим 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
Я могу регистрировать пользователей из процесса входа в систему, но даже эти пользователи затем отклоняются с той же ошибкой.
«Тип учетной записи» для меня обычно означает «личный» или «бизнес», я ожидаю, что «личные» учетные записи будут отклонены (из-за конфигурации приложения «единый арендатор»), но не учетные записи, созданные в том же клиенте .
Это настолько распространенный вариант использования, что мне кажется, что я упускаю что-то очевидное, но не могу этого найти.
Изменить область действия
Если я изменю запрошенную область на https://graph.microsoft.com/.default, вход будет работать, но тогда я не смогу использовать токен для доступа услуги, которые мне нужны; поскольку запрос к речевой службе, в частности, завершается с ошибкой:
Ошибка обновления WebSocket: ошибка аутентификации (401). Проверьте информацию о подписке и название региона.
(да, название региона и информация о подписке верны)
Похожие вопросы:
- Внешний идентификатор Entra с идентификатором Microsoft выдает AADSTS500208, если пользователь не является глобальным администратором.
Похоже, что решение заключалось в использовании ciamlogin. com вместо login.microsoftonline.com, но, похоже, ко мне это не относится.
При использовании login.microsoftonline.com возникает ошибка:
AADSTS500208: Домен не является допустимым доменом для входа в систему для данного типа учетной записи.
Если я использую приглашенного пользователя на сайте login.microsoftonline.com , вход работает, и я могу получить доступ к услугам. Но для моего бизнеса это не подойдет.
Использование https://{tenantSubdomain}.ciamlogin.com/{tenantId}/v2.0, https:/ /{tenantId}.ciamlogin.com/{tenantId} или https://{tenantSubdomain}.ciamlogin.com ошибка всегда повторяется:
AADSTS500207: Тип учетной записи не может использоваться для ресурса, к которому вы пытаетесь получить доступ.
Вот несколько снимков экрана регистрация приложения:


Подробнее здесь: https://stackoverflow.com/questions/790 ... ccount-via
Мобильная версия