Запрос на основе токена приложения не возвращен 401 Несанкционированный
У меня есть фоновое приложение, которое должно подключаться к каталогу данных и получать информацию, связанную с таблицей. Поскольку это фоновое приложение, у меня не может быть никакого вмешательства пользователя для аутентификации запроса каталога данных. Поэтому я пытаюсь аутентифицироваться, используя ClientID и ClientSecret.
string authorityUri = "https://login.microsoftonline.com/{adtenanthere}";
string resourceUri = "https://datacatalog.azure.com";
string clientId = "{clientidhere}";
string clientSecret = "{clientsecrethere}";
AuthenticationContext authContext1 = new AuthenticationContext(authorityUri, false);
ClientCredential credential = new ClientCredential(clientId, clientSecret);
AuthenticationResult authResult = authContext1.AcquireTokenAsync(resourceUri, credential).Result;
string token = authResult.CreateAuthorizationHeader();
Получение токена с помощью этого метода проходит успешно, однако, когда я использую этот токен для запроса API каталога данных, запрос возвращает "401 - Несанкционированный: доступ запрещен из-за неверных учетных данных. У вас нет разрешения на просмотр этого каталога или страницы используя предоставленные вами учетные данные ".
Пожалуйста, предложите, чего мне здесь не хватает!
2 ответа
Сначала проверьте разрешение приложения в Azure Ad Permission. Я проверил Нет разрешения в каталоге данных Application Azure. Таким образом, вы должны получить доступ, используя учетные данные пользователя. Ниже см. Изображения
Разрешение приложения основано на учетных данных клиента. разрешение делегата на основе разрешения пользователя для входа.
вам нужно без входа в систему вы должны передать учетные данные пользователя в authContext1.AcquireTokenAsync
непосредственно.
Итак, меняй и проверяй не получай 401 Несанкционированный
Я думаю, что это поможет вам.
Некоторые данные неверны, вот правильные значения:
строка authorUri = " https://login.windows.net/common/oauth2/authorize"; string resourceUri = " https://api.azuredatacatalog.com/";
Надеюсь, это поможет, Моника