Войдите в приложение «один арендатор» в арендаторе Entra Foreign ID с «локальной учетной записью» через ciamlogin.com.C#

Место общения программистов C#
Ответить
Anonymous
 Войдите в приложение «один арендатор» в арендаторе Entra Foreign ID с «локальной учетной записью» через ciamlogin.com.

Сообщение Anonymous »

Я пытаюсь создать общедоступное клиентское настольное приложение, которое обращается к API Azure.
Чтобы защитить доступ к этим 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»