Вопросы с тегами [azure-ad-graph-api]

1

голосов
1

ответ
188

Просмотры

Почему я не могу создать управляемое устройство на Intune?

Я пытаюсь создать управляемое устройство в Intune, но я получаю различные ошибки. Это документация Я использую https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/intune_devices_manageddevice_create. Я тестирование функциональности с помощью Graph Explorer, так что мне не нужно разрешение на маркер и счет я вошел в это глобальный администратор и имеет соответствующие делегированные разрешения с поддержкой "DeviceManagementManagedDevices.ReadWrite.All. Когда я попробовать первый запрос / пользователь / {usersId} / managedDevices я получаю 403 произошла ошибка - Код операции (для поддержки): 00000000-0000-0000-0000-000000000000. Если я пытаюсь / deviceManagement / managedDevices Я получаю 400 маршрута Нет OData существует этот шаблон матча я подписался на бесплатный след для Intune и Azure AD, если это делает никакой разницы. Что я мог не быть? Тело запроса я построена на пример в документации для создания managedDevice. Я также попытался удалить OData типа, но это не имеет никакого значения. В качестве примера я попытался { "ID": "5h5b3fab-0169-45de-9aad-3d928ebbe1a0", "идентификатор пользователя": нулевой, "DEVICENAME": "newIntuneDev", "deviceActionResults": [], "enrolledDateTime": «2018- 02-19T11: 04: 24.242385Z», "lastSyncDateTime": "2018-01-03T14: 01: 45.1553437Z", "Операционнаясистема": "Android", "complianceState": "соответствует", "джейлбрейкиутый": "ложь" , "managementAgent": "MDM", "OSVersion": "7,0",
Jerica
1

голосов
1

ответ
190

Просмотры

Azure Graph 403 Authorization_RequestDenied с помощью сервиса принципала от VSTS

У меня есть основной сервис, который используется VSTS для запуска сценария Azure Powershell. Команда я пытаюсь вызвать это Get-AzureRmRoleAssignment. Я получаю следующее сообщение об ошибке "Exception": { "Запрос": { "Метод": "POST", "RequestUri": «https://graph.windows.net/********/ getObjectsByObjectIds апи-версия = 1,6" , "Свойства?": "System.Collections.Generic.Dictionary`2 [System.String, System.Object]", "Заголовки": «System.Collections.Generic.Dictionary`2 [System .String, System.Collections.Generic.IEnumerable`1 [System.String]] "}, "Ответ": { "StatusCode": 403, "ReasonPhrase": "Запрещенный", "Содержимое": {" OData.
user9360564
1

голосов
1

ответ
202

Просмотры

Метод acquireTokenAsync бросать ошибку, если идентификатор пользователя не передается

Я использую Справочник Authentication Library (ADAL) библиотеку Активной для Apache Cordova на мобильном приложении ионического. Я бег на вопрос, призывающую acquireTokenAsync Примечания: Я использую Microsoft Intune и я включен брокер Аутентификация сгенерированного маркера из acquireTokenAsync вызова «появляется», чтобы быть действительными, но когда я запускаю пост (пост происходит в моем экспресс промежуточного слоя), чтобы https://login.microsoftonline.com/**********/oauth2/token, я получаю сообщение об ошибке ниже. Как вы можете видеть в подписи вызовов в изображении выше, идентификатор пользователя должен быть факультативным. Кто-нибудь есть какие-либо идеи, почему это происходит, когда я не использовать идент необязательный параметр? Я не получаю сообщение об ошибке, если я включаю идент Вот объект конфигурации я использую в этой должность в / oauth2 / маркеров конечной точки.
lee whitbeck
1

голосов
0

ответ
68

Просмотры

Azure AD B2B аутентификации - динамические доверенные эмитенты для многопользовательских приложений

Я преобразование веб-приложение, чтобы включить Azure AD B2B сотрудничество. В настоящее время проверки подлинности внутренних пользователей организации с помощью Azure AD (V2 Microsoft Graph API) и проверки маркеров эмитента, как это: TokenValidationParameters = новых TokenValidationParameters {ValidateIssuer = истина, ValidIssuer = validIssuer} Действительного эмитент исходит от статического web.config установка. Вышеприведенный штраф, если вы имеете дело со статическими арендаторами работа, т.е. только пользователями из организаций A, B, C, должна быть в состоянии получить доступ к приложению. В моем случае я ищу, чтобы иметь динамический список доменов (contoso.com, xyz.com и т.д.), из которых может аутентифицировать пользователей. Я понимаю, что это может быть обработан на уровне приложений, проверяя маркер» Претензии и смотрит, если домен имя пользователя совпадает белый список доменов приложения. Тем не менее, я заинтересован, если я могу делегировать эту проверку либо: трубопровод аутентификации (проверяющий) эмитентов на уровне Azure AD (это означает, что пользователь не будет даже до приложения, если они не от утвержденных доменов). Это было бы идеально.
Florin D. Preda
1

голосов
0

ответ
36

Просмотры

Ошибка, когда я пытаюсь создать проект сообщения с помощью Microsoft Graph API

Я использовал эти инструкции: https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_post_messages я получил предъявитель токен и пользователей, но когда я пытаюсь создать сообщение, используя Почтальон его бросить исключение Мой запрос: https://graph.microsoft.com/v1.0/users/4850bf92-08ff-41f3-9891-51561239aaa54/messages { «субъект»: «вы видели прошлой ночью игра», «значение» : "Low", "тело": { "CONTENTTYPE": "HTML", "содержание": "Они были удивительными!" }, "ToRecipients": [{ "EMAILADDRESS": { "адрес": "[email protected]"}}]} отклика: { "ошибка": { "код": "ResourceNotFound", "сообщение"
Bzzik
1

голосов
0

ответ
83

Просмотры

Изменить мой профиль с помощью Azure AD Graph API

Я хочу, чтобы позволить пользователю изменить его / ее профиль атрибуты, как страна, город, адрес электронной почты и т.д. из моего приложения с помощью Azure AD Graph API. В настоящее время, используя следующий код IUser CurrentUser = ждут activeDirectoryClient.Me.ExecuteAsync (); CurrentUser.City = "SomeCity"; ждут CurrentUser.UpdateAsync (); Этот код броска anexception «Недостаточно прав для завершения операции». Но я позволил все разрешения API Лазурного AD и Graph API, как показано на рисунке ниже Startup.Auth.cs Кодекса для аутентификации пользователя: app.UseOpenIdConnectAuthentication (новые OpenIdConnectAuthenticationOptions {ClientId = ClientId, Authority = Authority, PostLogoutRedirectUri = postLogoutRedirectUri, Уведомления = новые OpenIdConnectAuthenticationNotifications () {// Если есть код в ответ OpenID Connect, выкупить его за маркер доступа и обновить маркер, и сохранить их прочь. AuthorizationCodeReceived = асинхронной (контекст) => {вар код = context.Code; // После загрузки маркеров, установите маркер загрузку флаг HttpContext.Current.Session [ "NewTokenDownloadFlag"] = TRUE; ClientCredential учетных = новый ClientCredential (ClientID, appKey); Строка signedInUserID = context.AuthenticationTicket.Identity.FindFirst (System.IdentityModel.Claims.ClaimTypes.NameIdentifier) ​​.Value; AuthenticationContext authContext = новый AuthenticationContext (орган, новый ADALTokenCache (signedInUserID)); AuthenticationResult authenticationResult = ждут authContext.AcquireTokenByAuthorizationCodeAsync (код, новый Ури (HttpContext.Current.Request.Url.GetLeftPart (UriPartial.Path)), учетные данные, graphResourceId); }}}); Код, чтобы получить маркер доступа: общественная асинхронный Task GetTokenForApplication () {строка signedInUserID = ClaimsPrincipal.Current.FindFirst (ClaimTypes.NameIdentifier) ​​.Value; Строка tenantID = ClaimsPrincipal.Current.FindFirst ( "http://schemas.microsoft.com/identity/claims/tenantid") .Value; Строка userObjectID = ClaimsPrincipal.Current.FindFirst ( "HTTP: из ролей каталогов, то этот код работает, и пользователь может обновить его / ее профиль, но эта роль позволит ему / ей, чтобы изменить профиль любого другого пользователя, что я не хочу позволить. Любая помощь будет оценена. Примечание: Для изменения пароля Я использую следующий код, и этот код работает отлично с теми же правами. ждут activeDirectoryClient.Me.ChangePasswordAsync ( "Old_Pwd", "New_Pwd");
umer
1

голосов
2

ответ
50

Просмотры

Как исправить «логин пользователя. Команды отключены для арендатора. Ошибка в графе апите вызов

Я хочу использовать Команды графа апи для извлечения всех каналов команды (группы). Я использую «Получить» запрос на «https://graph.microsoft.com/v1.0/teams/{GroupId}/channels» Отклик «отказано в доступе», «Вход для пользователей. Команды отключены для арендатора. Дополнительная информация: У меня нет какого-либо вопроса, когда я использую Команды приложение (веб или на рабочий стол), пользователь является владельцем команды (группы). Пользователь находится в Office 365 лицензии F1 с командами активированными. Он обладает ролью «администратор безопасности». Я извлечения команды по запросу ГЭТ: «https://graph.microsoft.com/v1.0/me/memberOf», что отлично работает. Я получил ту же ошибку с: «https://graph.microsoft.com/v1.0/me/joinedTeams» Я использую приложение с «group.ReadWrite.all» и прав «user.Read.all» и связи использует маркер носителя. Это' не моя среда, поэтому я не могу дать разрешения для графа Api проводника, я м не админ. Таким образом, с графом Api Explorer, я получаю 403, запрещенный запрос. Если кто-то может помочь. Спасибо Ответ: Проблема заключается в лицензии F1, которые работают с Graph API, но с некоторыми ограничениями. Вы должны использовать E3 в лицензии E5, там дают полное право на Graph API.
Harold Jabraud
1

голосов
1

ответ
685

Просмотры

Azure AD: Смена пароля пользователя из пользовательского приложения

Мы используем несколько LDAPS в нашей компании, которая включает в себя Azure AD для Office365, Google и OpenLDAP - внутренний. Мы работаем над какой-то независимой передней стороне полотна, где пользователи могли бы изменить некоторые из своих данных, включая пароль, любые изменения, сделанные пользователем, должны быть автоматически обновляться и реплицируются на все 3 в LDAP. Я использую специальный скрипт на Python для достижения этой цели, однако испытывают проблемы с Azure AD, она не позволяет мне изменить пароль. Я могу просматривать все пользователи и их данные, однако, не в состоянии изменить пароль. Когда я запрос аутентификации он ответит мне обратно с правами, которые были предоставлены в мое приложение: сфера = Directory.Read Directory.ReadWrite.All Directory.Write offline_access recipient.manage User.ReadWrite User.ReadWrite.All user_impersonation UserProfile. { «Пароль»: ",«forceChangePasswordNextLogin»: Ложные}} Не могли бы вы сказать мне, пожалуйста, что я делаю неправильно? и как я могу получить право осуществлять такие действия?
Briksins
1

голосов
1

ответ
209

Просмотры

Graph API Client лексема проблема аутентификации

Мой сайт использует GraphClient Library (http://www.nuget.org/packages/Microsoft.Azure.ActiveDirectory.GraphClient) для запроса Azure AD. Его используя свои собственные учетные данные и маркер авторизации для доступа к graph.windows.net и это работает отлично. Я пытаюсь изменить его так, чтобы при входе пользователей в свой веб-сайт и authenitcate используя свой собственный счет Microsoft арендатора, мой сайт, то запрашивает graph.windows.net помощью пользователи лексемы, а не его (веб-сервер) самостоятельно. Я использую Owin Middleware, OpenID против Microsoft для аутентификации и, наконец, GraphClient для запроса AzureAD. Сейчас мой процесс в Owin Уведомления => AuthorizationCodeReceived я делаю AcquireTokenByAuthorizationCode (), чтобы получить пользователи маркер доступа, то я пытаюсь подключиться к GraphClient как так .. новый ActiveDirectoryClient (новый Uri (graphResourceID + /»+ TenantID), асинхронный () => userAccessToken) GraphClient всегда возвращает ответ, говоря„недостаточно права“для всех вызовов, я проверил. Но если я создаю простой запрос HTTPClient к graph.windows.net REST API и ввести «однонаправленный» authoriaztion заголовок с userAccessToken сверху, то Graph API дает мне правильный ответ. Почему библиотека GraphClient возвращение «недостаточно прав», когда простой запрос HTTPClient работает нормально? authoriaztion заголовок с userAccessToken сверху, то Graph API дает мне правильный ответ. Почему библиотека GraphClient возвращение «недостаточно прав», когда простой запрос HTTPClient работает нормально? authoriaztion заголовок с userAccessToken сверху, то Graph API дает мне правильный ответ. Почему библиотека GraphClient возвращение «недостаточно прав», когда простой запрос HTTPClient работает нормально?
Russell
1

голосов
2

ответ
508

Просмотры

graph.windows.net бросает Unavailable ошибку 503 сервера

Мы делаем дифференциальный запрос лазурного графа конечной точки на каждые 5 минут. Он отлично работает в течение месяца, но теперь, когда мы получаем доступ к API возвращает 503 Service Unavailable ошибку. Даже после 15 часов повторной попытки (10 минут зазора между каждой повторной попыткой) услугой возврата же 503 недоступен ответом. Удаленный сервер возвратил ошибку: (503) Сервер недоступен. System.Net.WebException: Удаленный сервер возвратил ошибку: (503) Сервер недоступен. При взгляде на стельке, ответ возвращается более подробно об ошибке. { "Odata.error": { "код": "Directory_ReplicaUnavailable", "сообщение": { "языки": "ан", "значение": "Предпочтительная реплика недоступна Пожалуйста, повторите запрос.."}}}
Rajan Raj
1

голосов
1

ответ
1.1k

Просмотры

How to configure permissions for the Azure AD authentication v2.0

Я создал новый веб-приложение, чтобы иметь возможность использовать конечную точку авторизации oauth2 V2. Я определил приложение в https://apps.dev.microsoft.com/ Если я хочу, чтобы получить новый маркер авторизации, следуя инструкции в https://blogs.msdn.microsoft.com/richard_dizeregas_blog/2015/09/04/ работать-с-конвергентная-лазурь-ад-v2-приложение-моделью / я получаю следующее сообщение об ошибке на странице входа: Извините, но мы возникли проблемы с подписанием вас в мы получили плохой запрос.. Дополнительные технические данные: Корреляция ID: eb9c2331-32bd-45a9-90d1-e9105f0bfa87 Отметка: 2016-05-22 18: 10: 48Z AADSTS70011: Указанное значение для 'объема' входного параметра не является действительным. Объем https://graph.microsoft.com/Calendar.Read не является действительным. Объем взят из примера в: HTTPS: // GitHub. ком / / лазурь-содержание / BLOB / Master / статьи / активная директория Azure / active-directory-v2-scopes.md Так что я предполагаю, что это действительный размах. В v1 протокола oauth2, это было необходимо настроить доступ к API, в Azure AD моего арендатора, перед их использованием. Так что я попытался сделать это для нового приложения. Попытка сделать это, Лазурное управление приложениями сообщает об ошибке: { «сообщение»: «Этот запрос имеет значение, которое не действует.», «ErrorMessage»: «Этот запрос имеет значение, которое не действует», «httpStatusCode «:» InternalServerError»,„operationTrackingId“: нулевой,„StackTrace“: нулевая,„Перетяжка“: нулевая} Чего не хватает, чтобы быть в состоянии использовать новую конечную точку авторизации? это было необходимо настроить доступ к API, в Azure AD моего арендатора, перед их использованием. Так что я попытался сделать это для нового приложения. Попытка сделать это, Лазурное управление приложениями сообщает об ошибке: { «сообщение»: «Этот запрос имеет значение, которое не действует.», «ErrorMessage»: «Этот запрос имеет значение, которое не действует», «httpStatusCode «:» InternalServerError»,„operationTrackingId“: нулевой,„StackTrace“: нулевая,„Перетяжка“: нулевая} Чего не хватает, чтобы быть в состоянии использовать новую конечную точку авторизации? это было необходимо настроить доступ к API, в Azure AD моего арендатора, перед их использованием. Так что я попытался сделать это для нового приложения. Попытка сделать это, Лазурное управление приложениями сообщает об ошибке: { «сообщение»: «Этот запрос имеет значение, которое не действует.», «ErrorMessage»: «Этот запрос имеет значение, которое не действует», «httpStatusCode «:» InternalServerError»,„operationTrackingId“: нулевой,„StackTrace“: нулевая,„Перетяжка“: нулевая} Чего не хватает, чтобы быть в состоянии использовать новую конечную точку авторизации?
1

голосов
1

ответ
316

Просмотры

Как правильно разрешить учетную запись Azure, так что он может создать Service Principal?

Наш продукт является продуктом мониторинга SaaS для Azure (CloudMonix). Один из способов, которыми он подключается к Azure подпискам клиентов с помощью ARM API является созданием Service Principal авторизованного против нашего приложения AD. Мы использовали эту статью для того, чтобы дать это разрешение и все работает wonderfuly: https://azure.microsoft.com/en-us/documentation/articles/resource-manager-api-authentication/ Этот вопрос, часто наши пользователи не имеет доступ к супер-учетной записи администратора, который изначально использовался для создания подписки. У них есть свои собственные «со-администратор» счета. Какие дополнительные разрешения эти пользователи должны иметь для того, чтобы согласие на наше приложение AD, чтобы получить доступ к их AD? Где они добавляют эти разрешения ни в одном из двух Azure порталов? ТИА
Igorek
1

голосов
1

ответ
87

Просмотры

Передача или резервное копирование данных до / после удаления пользователя

Мы экспериментировали Office 365 REST API, и интересно, если мы можем Перенести чтобы быть удалены или удаленные данные пользователя (например, документы, листы) к другому активному пользователю организации или администратора. как представляется, не будет предлагать какой-либо интерфейс для достижения этой цели консоль O365 администратора и я не найти REST API, открытый с помощью АСРА Graph или MS Graph. Пожалуйста, дайте знать, если я что-то не хватает.
asgs
1

голосов
1

ответ
35

Просмотры

Пароль для Azure AD пользователя

Я использую Graph API для чтения информации пользователя от Azure AD. Я получаю всю информацию о пользователе в ответ, за исключением пароля. Есть в любом случае я могу получить это? Я называю этот API. (Ссылка) https://graph.windows.net/myorganization/users/{user_id}?api-version
Jerry
1

голосов
2

ответ
185

Просмотры

Что такое Microsoft Graph API конечных точек шаблон?

Я хочу, чтобы программно потреблять Microsoft Graph API. Путем анализа мета-данных из Microsoft Graph (https://graph.microsoft.com/v1.0/$metadata), я могу понять модели данных и взаимосвязи между этими моделями данных. Но нет конечных точек информации в метаданных. Например, если я хочу к списку сообщений. Как бы я знать, какой конечную точку я должен послать запрос? Из метаданных, я только знаю, у нас есть пользователи модель, которая содержит сообщение модель как NavigationProperty, тогда Если Microsoft Graph API следовать определённому шаблону, чтобы придумать каждые конечные точки, которые я предполагаю, что они делают, то я могу программно вычислять конечные точки как / пользователи / идентификатор / сообщение. Является ли эта схема верна для всех конечных точек? (Pattern: PrimaryObjects / primaryIdentifier / подобъекте ...), если это верно для текущей версии. Изменится ли эта модель для более поздней версии? Спасибо за помощь!
JJ.Dong
1

голосов
1

ответ
57

Просмотры

Создание пользователя AD и добавить к группе, в то же время?

Я знаю, как создать пользователя AD B2C, а также добавлять их в группы с помощью графика API. Я делаю это в моей Azure функции. Что мне интересно, можно ли создать пользователя и добавить их к группе, в то же время? Если нет, то я предполагаю, что я должен буду обращаться потенциальным случаем создаваемого пользователя, но не в состоянии быть добавлен в группу. Насколько вероятно, такой сценарий? Я пытаюсь убедиться, что я охватить все мои основы для всех условий отказа, так что любой вклад будет оценен. Благодарю.
Architekt
1

голосов
1

ответ
389

Просмотры

Azure AD приложение на несколько арендаторов

Я добавил веб-приложения в регистрации портала Microsoft Application. Я могу посмотреть это приложение в старом лазурного портала. Когда я пытаюсь установить это приложение в качестве несколько жильца и установить Зарегистрировать на URL и значение App ID URI, ошибка всплывает говоря, одно из значений являются недействительным и сохранить не удается. Я могу подключиться к этому приложению с помощью OAuth и получить необходимые обновления и доступ маркеров. Используя эти маркеры в графе API я могу получить почту, контакты и события календаря из моего офиса 365 счета. Но это происходит только для одного арендатора. Мне нужно иметь возможность сделать это для нескольких жильцов, и поэтому я хочу, чтобы установить это приложение, как мульти-арендатор. Если я создаю приложение в Azure AD сам, то я в состоянии установить все значения, но я не могу подключиться к этому приложению с помощью OAuth, как аутентификация завершается неудачно с сообщением об ошибке говоря об ошибке = unauthorized_client & error_description = AADSTS70001% 3a + Программное обеспечение +% 2791470123-7e7e-4139-9922-ac95b0a6b383% 27 + такое + не поддерживается + + для + этого + + API версии. .Я прошел через несколько ссылок, как здесь, здесь и здесь, но до сих пор я не смог найти решение. Я повторно отправляю это, как предложено здесь. Может кто-нибудь предложить, что я должен сделать, чтобы пройти через это?
Mainak
1

голосов
1

ответ
74

Просмотры

Create custom extension through Graph API with Client Credentials auth

У меня есть веб-API .NET, который я использую, чтобы сделать некоторое взаимодействие с Microsoft Graph и Azure AD. Однако, когда я пытаюсь создать расширение на пользователе, он возвращается с Access Denied. Я знаю, что это возможно из документации здесь, однако, оно не похоже на работу для меня. Для API, я использую учетные данные клиента. Так что мой веб-приложение выполняет аутентификацию в API, используя учетные данные пользователя, а затем из API на графике он использует клиент. Мое приложение на Azure AD имеет разрешение приложений читать и писать каталог данные установлены верно, как он утверждает, он должен быть в документации на расширение пользователя. Я знаю, что мой маркер действует, как я могу получить данные с ним. Вот мой код для извлечения его: частная Const строка _createApprovalUrl = «https://graph.microsoft.com/beta/users/{0}/extensions»; общественности статических асинхронной Task CreateApprovalSystemSchema (строка USERID) {использование (вар клиент = новый HttpClient ()) {использование (вар REQ = новый HttpRequestMessage (HttpMethod.Post, _createApprovalUrl)) {вар маркер = ждет GetToken (); req.Headers.Add ( "Авторизация", String.Format ( "Канал {0}", маркер)); req.Headers.TryAddWithoutValidation ( "Content-Type", "применение / JSON"); вар requestContent = JsonConvert.SerializeObject (новый {extensionName = "", ID = "", approvalLimit = "0"}); req.Content = новый StringContent (requestContent, Encoding.UTF8, "применение / JSON"); используя (ответ переменного = жду клиента. SendAsync (REQ)) {вар контента = ждут response.Content.ReadAsStringAsync (); ApprovalSystemSchema схемы = JsonConvert.DeserializeObject (содержание); если (schema.Id == NULL) {вернуться ложным; } Возвращает истину; }}}} Есть ли кто-нибудь, кто может иметь обходной путь на этом, или информацию о том, когда это будет выполнимо? Спасибо, }}}} Есть ли кто-нибудь, кто может иметь обходной путь на этом, или информацию о том, когда это будет выполнимо? Спасибо, }}}} Есть ли кто-нибудь, кто может иметь обходной путь на этом, или информацию о том, когда это будет выполнимо? Спасибо,
DaRoGa
1

голосов
1

ответ
631

Просмотры

Microsoft Graph API, чтобы получить доступ ко всем папкам по электронной почте

Сейчас я использую V1 из Microsoft REST API GET https://outlook.office.com/api/v1.0/me/MailFolders/INBOX/messages GET https://outlook.office.com/api/v1.0/ мне / MailFolders / SentItems / сообщений Если я хотел, чтобы получить все сообщения во всех папках, есть способ сделать это в V1 по API REST? Благодарю.
WowBow
1

голосов
1

ответ
263

Просмотры

Azure AD с MS Graph API, не может предоставить мое приложение Mail.Read

Попытка использовать API Microsoft Graph для чтения Office 365 почты. Я могу проверить подлинность с помощью Azure AD (не V2) и получить маркер, но разрешение только я получаю User.Read. Я хочу Mail.Read. Моя регистрация приложения в Azure портала включает в себя разрешения Mail.Read: API «Microsoft Graph», разрешение «Читать почты пользователей». В запросе / авторизовать, я указываю как ресурс и объем, причем последний https://graph.windows.net/mail.read. Тем не менее, когда маркер JSON возвращается, он имеет «сферы»: «User.Read». И просьба к https://graph.microsoft.com/v1.0/me/messages возвращает ошибку 403, в то время как https://graph.microsoft.com/v1.0/me/ работает, как ожидалось. Что мне не хватает? EDIT: начальный OAuth URI является: https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&redirect_uri=https%3a%2f%2fredacted.
Seva Alekseyev
1

голосов
1

ответ
819

Просмотры

Вход-AzureRmAccount (и связанный с ними), эквивалентным (s) в .NET Azure SDK

Я стал задаваться вопросом, что бы могли эквиваленты Login-AzureRmAccount Нью-AzureRmADServicePrincipal Нью-AzureRmADApplication в Azure SDK для .NET. По какой-то причине, я, кажется, не быть в состоянии найти их, и я хотел бы сделать что-то, как в этом блоге, но в коде.
Veksi
1

голосов
1

ответ
149

Просмотры

пользователи доступа и группы из консольного приложения

Мне нужно, чтобы получить список групп и пользователей из офиса 365 AD из консольного приложения. Я думал, что я должен быть в состоянии использовать Microsoft Graph для этого. Так что я попытался первым, чтобы принести маркер: завиток -H "Content-Type: применение / х-WWW-форм-urlencoded" --data «grant_type = client_credentials & client_id = & client_secret = & Объем = HTTPS% 3A% 2F% 2Fgraph.microsoft.com % 2F.default «https://login.microsoftonline.com/testdirectory.onmicrosoft.com/oauth2/v2.0/token я успешно получить токен здесь Тогда я стараюсь, чтобы получить список всех пользователей локон -H» Accept : применение / JSON»-H "Authorization: Bearer" https://graph.microsoft.com/v1.0/users Но ответ я получаю { "ошибка": { "код": "Authorization_IdentityNotFound", "сообщение" : "
1

голосов
1

ответ
330

Просмотры

Azure аутентификации AD для вызова Office 365 и Graph API REST

Я создал пример приложения MVC с помощью VS 2015 и используется мастер Azure AD Auth. Когда я запускаю это веб-приложение, он попросил меня зарегистрировать приложение с Azure AD (только первый раз), а затем идентификатор пользователя / пароль. Я вошел в кабинет 365 Регистрация / Azure AD и успешно вошли в систему. Все работает прекрасно, и в правом верхнем углу, можно увидеть Hello «Myname». Теперь я попытался сделать REST вызов Office 365 с помощью RestSharp. Это дает мне 403 ошибки (доступ запрещен). Когда я попытался использовать граф апи URL https://graph.windows.net/testname.com/groups?api-version=1.6, я получаю ошибку несанкционированный доступ. Вот мой тестовый код с графиком API вызова: строка URL = «https://graph.windows.net/testname.com/groups?api-version=1.6»; вар клиент = новый RestClient (URL); client.ClearHandlers (); вар jsonDeserializer = новый JsonDeserializer (); client.AddHandler ( "Применение / JSON", jsonDeserializer); Запрос вар = новый RestRequest (Method.GET); вар queryResult = client.Execute (запрос); Я использую тот же код с O365 REST URL для Office 365 вызова. Почему я получаю доступ запрещен в обоих случаях, если мое приложение уже проверку подлинности Azure AD, которая является базовой аутентификации. Также Request.IsAuthenticated всегда верно. Не один провайдер идентификации (AAD), используемый для Azure, Office 365 и связанных с ними ресурсов? Почему я получаю доступ запрещен в обоих случаях, если мое приложение уже проверку подлинности Azure AD, которая является базовой аутентификации. Также Request.IsAuthenticated всегда верно. Не один провайдер идентификации (AAD), используемый для Azure, Office 365 и связанных с ними ресурсов? Почему я получаю доступ запрещен в обоих случаях, если мое приложение уже проверку подлинности Azure AD, которая является базовой аутентификации. Также Request.IsAuthenticated всегда верно. Не один провайдер идентификации (AAD), используемый для Azure, Office 365 и связанных с ними ресурсов?
A_____
1

голосов
1

ответ
2.1k

Просмотры

Как получить On-Of-имени-пользователя маркер в .NET с использованием Адал

Я создал приложение Azure AAD типа веб-приложение, которое имеет секрет клиента и URL переадресации. Теперь я хочу, чтобы получить маркер доступа от имени пользователя с помощью приложения AAD. Глядя на документацию, я получил следующий код до сих пор. статической силы основных (строка [] арг) {вар ClientID = ""; вар clientSecret = ""; вар resourceAppIdURI = "https://api.office.com/discovery/"; вар власть = "https://login.microsoftonline.com/common"; AuthenticationContext ас = новый AuthenticationContext (орган, новый файловый кэш ()); ClientCredential куб.см = новый ClientCredential (ClientID, clientSecret); // Получить маркер, как приложение вар задачи = ac.AcquireTokenAsync (resourceAppIdURI, сс); task.Wait (); вар appToken = task.Result.AccessToken; // Получить tokenn от имени пользователя UserCredential = новый ис UserCredential ( "[email protected]"); Задача = ac.AcquireTokenAsync (resourceAppIdURI, ClientID, ис); вар userToken = task.Result.AccessToken; Console.ReadLine (); } Но это ошибка, я получаю, когда я пытаюсь получить маркер пользователя следующим образом. Сообщение «AADSTS70002: Тело запроса должно содержать следующий параметр:. 'Client_secret или client_assertion' \ г \ nTrace ID: 0e977f67-d5cb-4cf5-8fea-bac04b6d0400 \ г \ nCorrelation ID: 824a96bf-8007-4879-970c-2680644b8669 \ г \ nTimestamp: 2017-07-21 05: 02: 41Z»строка Почему я получаю эту ошибку и как это исправить? Нужно ли мне войти с пользователем первым, а затем использовать UserAssertion вместо этого? Есть тонны перегруженных методов для метода AcquireTokenAsync, но не уверен, что я должен использовать. Я также смотрел на эту GitHub URL, чтобы увидеть, как они делают это https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof/blob/8afb3e6a648d8e7246685bf6747d009006c761b8/TodoListService/Controllers/TodoListController.cs Это соответствующий код, чтобы получить маркер как войти в систему пользователя ClientCredential clientCred = новый ClientCredential (ClientId, appKey); вар bootstrapContext = ClaimsPrincipal.Current.Identities.First () BootstrapContext, как System.IdentityModel.Tokens.BootstrapContext. Строка UserName = ClaimsPrincipal.Current.FindFirst (ClaimTypes.Upn)! = NULL? ClaimsPrincipal.Current.FindFirst (ClaimTypes.Upn) .Value: ClaimsPrincipal.Current.FindFirst (ClaimTypes.Email) .Value; Строка userAccessToken = bootstrapContext.Token; UserAssertion userAssertion = новый UserAssertion (bootstrapContext.Token, "Урна: IETF: PARAMS: OAuth: грант типа: JWT-носителем", Username); строка власть = String.Format (CultureInfo.InvariantCulture, aadInstance, арендатор); Строка = идентификатор пользователя ClaimsPrincipal.Current.FindFirst (ClaimTypes.NameIdentifier) ​​.Value; AuthenticationContext authContext = новый AuthenticationContext (орган, новый DbTokenCache (идентификатор пользователя)); Вот они уже вошедший в системе пользователя и создание UserAssertion от этого пользователя LoggedIn маркера. В моем консольном приложении, пользователь не вошел в ранее. Так что я нужен способ, чтобы сделать это в моем консольном приложении. Как я могу показать страницу входа AAD пользователя в виде всплывающего окна, а затем, как только пользователь вводит кредитку использовать эту информацию для создания объекта UserAssertion? Спасибо арендатор); Строка = идентификатор пользователя ClaimsPrincipal.Current.FindFirst (ClaimTypes.NameIdentifier) ​​.Value; AuthenticationContext authContext = новый AuthenticationContext (орган, новый DbTokenCache (идентификатор пользователя)); Вот они уже вошедший в системе пользователя и создание UserAssertion от этого пользователя LoggedIn маркера. В моем консольном приложении, пользователь не вошел в ранее. Так что я нужен способ, чтобы сделать это в моем консольном приложении. Как я могу показать страницу входа AAD пользователя в виде всплывающего окна, а затем, как только пользователь вводит кредитку использовать эту информацию для создания объекта UserAssertion? Спасибо арендатор); Строка = идентификатор пользователя ClaimsPrincipal.Current.FindFirst (ClaimTypes.NameIdentifier) ​​.Value; AuthenticationContext authContext = новый AuthenticationContext (орган, новый DbTokenCache (идентификатор пользователя)); Вот они уже вошедший в системе пользователя и создание UserAssertion от этого пользователя LoggedIn маркера. В моем консольном приложении, пользователь не вошел в ранее. Так что я нужен способ, чтобы сделать это в моем консольном приложении. Как я могу показать страницу входа AAD пользователя в виде всплывающего окна, а затем, как только пользователь вводит кредитку использовать эту информацию для создания объекта UserAssertion? Спасибо S маркер. В моем консольном приложении, пользователь не вошел в ранее. Так что я нужен способ, чтобы сделать это в моем консольном приложении. Как я могу показать страницу входа AAD пользователя в виде всплывающего окна, а затем, как только пользователь вводит кредитку использовать эту информацию для создания объекта UserAssertion? Спасибо S маркер. В моем консольном приложении, пользователь не вошел в ранее. Так что я нужен способ, чтобы сделать это в моем консольном приложении. Как я могу показать страницу входа AAD пользователя в виде всплывающего окна, а затем, как только пользователь вводит кредитку использовать эту информацию для создания объекта UserAssertion? Спасибо
user330612
1

голосов
1

ответ
285

Просмотры

Любой API для MS Graph / AAD, чтобы добавить пользователей арендатору в качестве гостей, не приглашать электронную почту?

Есть ли API, что позволяет возможность в контексте приложения или приложении + контекст пользователя, непосредственно гостевой пользователя в арендатор, не проходя через рабочий процесс приглашения / выкуп? Я вижу это, https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/invitation, он показывает, как подавить электронную почту, но он по-прежнему заставляет ручной процесс погашения. И, похоже, граф API имеет только «Создать пользователя», нет «Добавить гостя». Пользователь имеет полевую UserType, что может быть «Гость», но кажется, что этот API ориентирован на создание новых пользователей, так что моя догадка это не будет работать.
Dax Fohl
1

голосов
1

ответ
452

Просмотры

Microsoft Graph API делегированы разрешения

Я хотел бы получить мое приложение (Python скрипт) правомочно с Graph API от имени пользователя. Я использую этот документ в качестве ссылки. Забота: Я хочу сделать это в Python. Возможно ли, что я использую модуль запросов и запрос кода авторизации. Это автоматически откроется браузер, то пользователю будет предложено ввести учетные данные, и как только он / она проходит проверку подлинности, то скрипт будет автоматически получить код авторизации. Я затем использовать код авторизации в сценарии, чтобы получить маркер доступа. Благодарю.
Raj
1

голосов
2

ответ
452

Просмотры

Вход в систему на устройстве Windows, с федеративных пользователей

У нас есть проблема, что это связано с Windows, устройств и федеративных Azure пользователей. Мы создали приложение, которое использует API Graph для предоставления Office 365 с пользователями. Эти пользователи также сохраняются в нашей на прем активной директории. Кроме того, мы создали приложение, которое обеспечивает единый вход для этих пользователей. Это приложение совместимо с обработкой нескольких Office 365 жильцов (посредством делегирования) До сих пор, так хорошо. Мы можем обеспечение без проблем и SSO в WebFlow работ. Для всех этих мы используем собственный STS на нашей стороне. СТС на это свою очередь, использует наши ADFS для авторизации. Проблема у нас в том, что, когда мы используем устройства для Windows 10 и попробуйте войти в систему с федеративным пользователем, мы всегда получаем уведомление «Неправильный логин или пароль». Мы проверили тройную пароль, это правильно (помните WebFlow работу). В течение многих часов исследований, мы пришли к выводу, что мы нуждались в WsFed как наш протокол аутентификации. Кажется, что при входе с устройством, шаги заключаются в следующем: Дайте имя -> Windows, проверяет, является ли федеративный домен -> MetadataExchange URI называется -> usernamemixed конечная точка нашего ADFS называется -> SOAP сообщение будет отправлено на Управление и вы должны войти в систему. Мы потратили часы, что получить работу, но безрезультатно. Теперь мы создали зеркальную версию MetadataExchange на другой URL и изменили местоположение он будет пытаться получить пользователь от нашего ADFS. Звонки проходят там и Everythings кажется хорошо, но все же мы получаем уведомление «неправильное имя пользователя или пароль». Использование скрипача мы можем видеть, что в одном из последних шагов Управление возвращает следующее сообщение об ошибке: «invalid_grant»,» error_description ":" AADSTS70002: Ошибка проверки учетных данных. AADSTS50155: Устройство не прошел проверку подлинности. Как мы получаем эту работу. Все гранты устройства применяются на Лазурном стороне (хотя, кажется, что AAD API и Graph API и есть гранты устройств, все из которых мы применили). Когда мы обходим наш собственный STS и ссылку непосредственно на everthings работы ADFS, это, однако, не желательно, потому что мы должны иметь решение, которое работает с несколькими арендаторами (также причина, почему мы не используют AADSync). Любое предложение можно только приветствовать! Когда мы обходим наш собственный STS и ссылку непосредственно на everthings работы ADFS, это, однако, не желательно, потому что мы должны иметь решение, которое работает с несколькими арендаторами (также причина, почему мы не используют AADSync). Любое предложение можно только приветствовать! Когда мы обходим наш собственный STS и ссылку непосредственно на everthings работы ADFS, это, однако, не желательно, потому что мы должны иметь решение, которое работает с несколькими арендаторами (также причина, почему мы не используют AADSync). Любое предложение можно только приветствовать!
CN1981
1

голосов
1

ответ
196

Просмотры

Get Azure AD Graph Token if already Authenticated

I'm pretty new to Azure AD Graph and the authentication process. I was able to incorporate a single-sign on using the Azure AD Graph client as found in this example using a .NET MVC application: https://github.com/Azure-Samples/active-directory-dotnet-graphapi-web My dilemma is that even though I've authenticated my session, it's still requesting that I login again to perform the actions found in the controller below: public ActionResult Test() { if (Request.QueryString["reauth"] == "True") { //Send an OpenID Connect sign -in request to get a new set of tokens. // If the user still has a valid session with Azure AD, they will not be prompted for their credentials. // The OpenID Connect middleware will return to this controller after the sign-in response has been handled. HttpContext.GetOwinContext() .Authentication.Challenge(OpenIdConnectAuthenticationDefaults.AuthenticationType); } // Access the Azure Active Directory Graph Client ActiveDirectoryClient client = AuthenticationHelper.GetActiveDirectoryClient(); // Obtain the current user's AD objectId string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value; // Query and obtain the current user object from the Azure AD Graph Client User user = (User)client.Users. Where(u => u.ObjectId .Equals(userObjectID, StringComparison.CurrentCultureIgnoreCase)). ExecuteSingleAsync(). Result; // Get the employee Id from Azure AD (via a directory extension) IReadOnlyDictionary extendedProperty = user.GetExtendedProperties(); object extendedProp = extendedProperty["extension_ExtensionId_employeeID"]; // Hash the employee Id var empId = PasswordHash.ArgonHashString(extendedProp.ToString(), PasswordHash.StrengthArgon.Moderate); // Send to the view for testing only ViewBag.EmployeeName = user.DisplayName; ViewBag.EmployeeEmail = user.Mail; ViewBag.EmployeeId = empId; return View(); } The error I get is a: Server Error in '/' Application Authorization Required With the following lines of code in the yellow box: Line 22: if (token == null || token.IsEmpty()) Line 23: { Line 24: throw new Exception("Authorization Required."); Line 25: } Line 26: return token; Since I'm fairly new to the authentication piece, I need a little guidance on how-to obtain the current session token so I don't get this error. I'm using the Azure AD Graph because I'm obtaining a specific directory extension in Azure that I wasn't able to obtain through Microsoft Graph (for right now and based on my current deadline). Any advice will be helpful.
Jennifer Bartolome
1

голосов
1

ответ
1.7k

Просмотры

Azure AD: принять приглашение пользователю гостя программно с помощью Powershell

У меня есть два отдельных экземпляра Azure AD, «а» и «B». Я хочу пригласить пользователей «Ъ» в «а» (в качестве гостя) программно. Для этого я использую AzureAD Powershell модуля: $ Result = New-AzureADMSInvitation `-InvitedUserEmailAddress $ Email` -InvitedUserDisplayName $ отображаемое_имя `-InviteRedirectUrl $ InviteRedirectUrl` -SendInvitationMessage $ ложное приглашение должно быть принято автоматически, без отправки приглашения по электронной почте , Вот почему я передаю параметр -SendInvitationMessage $ False. Я заметил, однако, что пользователь не может войти, прежде чем принять приглашение (Eventhough не было отправлено не по электронной почте). Есть ли способ программно принять приглашение от имени пользователя? Либо с помощью модуля AzureAD Powershell или через обходной путь (например, вызов Graph API)? Я админ как Azure экземпляров AD, и так как я только что создал пользователю сам, у меня есть полномочия. Я ищу, чтобы избежать хлопот вручную принимая приглашение.
fikkatra
1

голосов
1

ответ
134

Просмотры

Обновление / удаление strongAuthenticationPhoneNumber с помощью Graph API

У меня есть политика B2C обычая регистрации, где пользователь представлен с мобильной страницей многофакторной. Если они не зарегистрированы, прежде чем их номер мобильного телефона проверяется и сохраняется в отношении имущества strongAuthenticationPhoneNumber. На последующих регистрациях они должны использовать многофакторную аутентификацию и проверяемое значение номера телефона считываются и заполняется в поле Номера телефона на экране с маской скрывающей половины номера. Это поле не редактируется. В случае, когда пользователь теряет доступ к их числу, можно обновить это значение strongAuthenticationPhoneNumber или удалить его полностью из пользователей через аккаунт с помощью Graph API? В настоящее время пытается сделать запрос PATCH, используя эти результаты в собственности 400 ответа.
nyoung
1

голосов
2

ответ
310

Просмотры

Как я могу получить больше, чем атрибуты по умолчанию с API Microsoft Graph при запросе всех пользователей?

Я пытаюсь получить все пользователи из одного AAD арендатора с указанным расширением схемы. Однако при выполнении этого запроса: GraphServiceClient клиента = новый GraphServiceClient (. Новый AuthProv (_authHelper.GetAuthenticationResult () результат)); вар USERLIST = новый список (); пользователи вара = ждет client.Users.Request () GetAsync (). userList.AddRange (users.CurrentPage); в то время как (users.NextPageRequest! = NULL) {вар СледующаяСтраница = users.NextPageRequest.RequestUrl; Debug.WriteLine ( "Call To:" + users.NextPageRequest.RequestUrl); пользователи = users.NextPageRequest.GetAsync () Результат. userList.AddRange (пользователей); } Я получаю объект JSON, который выглядит как: [{ "businessPhones": [], "DisplayName": "некоторые имя учетной записи", "UserPrincipalName": "[email protected]", "идентификатор": "123", "
Rayth
1

голосов
1

ответ
112

Просмотры

Azure mulit-tenant application not getting tokens with newly defined scopes

Я разрабатываю приложение Azure многопользовательского, который использует области с API Microsoft Graph и ресурсов Active Directory Windows Azure. Мы используем поток аутентификации кода v1 OpenID. Недавно мы добавили еще несколько запрошенных областей в API Microsoft Graph, мы побудили пользователь к повторной аутентификации с использованием быстрого = admin_consent и ресурсом = https: //graph.microsoft.com на нашем / общий / oauth2 / маркеров обмена. Когда пользователь будет предложено принять области снова вы можете увидеть вновь запрашиваемые области и вызов, кажется, успешно завершить, мы получаем новый access_token. Однако объемы, которые возвращаются в ответ и встроенный JWT требование для областей только перечисляет небольшое подмножество запрошенных областей, и они также, кажется, только быть от одного из ресурсов (Windows Azure Active Directory). Мы получаем 403s для новых областей, так что я не думаю, что это вопрос не правильно заполнения этих полей Scope. Кто-нибудь знает, почему поток аутентификации не будет возвращать токен вновь запрашиваемые области? Вот перечисленное моих запрашиваемых областей: Windows Azure Active Directory Чтение и запись данных каталогов (Application) Доступ к каталогу в качестве подписанного в системе (делегированного) Чтение и запись данных каталога (делегированы) Войдите и читать профиль пользователя (делегированного) Microsoft Graph читать и писать календари во всех почтовых ящиках (приложение) (NEW) читать и писать полные профили всех пользователей (Application) данные каталога чтения и записей (Application) для отправки писем любого пользователя (Application) (NEW) Спасибо! Кто-нибудь знает, почему поток аутентификации не будет возвращать токен вновь запрашиваемые области? Вот перечисленное моих запрашиваемых областей: Windows Azure Active Directory Чтение и запись данных каталогов (Application) Доступ к каталогу в качестве подписанного в системе (делегированного) Чтение и запись данных каталога (делегированы) Войдите и читать профиль пользователя (делегированного) Microsoft Graph читать и писать календари во всех почтовых ящиках (приложение) (NEW) читать и писать полные профили всех пользователей (Application) данные каталога чтения и записей (Application) для отправки писем любого пользователя (Application) (NEW) Спасибо! Кто-нибудь знает, почему поток аутентификации не будет возвращать токен вновь запрашиваемые области? Вот перечисленное моих запрашиваемых областей: Windows Azure Active Directory Чтение и запись данных каталогов (Application) Доступ к каталогу в качестве подписанного в системе (делегированного) Чтение и запись данных каталога (делегированы) Войдите и читать профиль пользователя (делегированного) Microsoft Graph читать и писать календари во всех почтовых ящиках (приложение) (NEW) читать и писать полные профили всех пользователей (Application) данные каталога чтения и записей (Application) для отправки писем любого пользователя (Application) (NEW) Спасибо!
keystone
1

голосов
1

ответ
304

Просмотры

Microsoft.Graph.ServiceException при попытке загрузить изображение пользователя

У меня очень расстраивает вопрос, где все, что я хочу сделать, это получить изображения пользователей из O365 и просто отображать их на моем веб-странице, которая размещена на службе azpp Azure. Как вы можете видеть из этого SO и этого SharePoint.StackExchange вопроса Изображение не загружается, когда просто пытаюсь отобразить ссылку, взятую из SharePoint в теге. Однако после навигации по изображению в аа новой вкладке, и освежающие мою страницу, то iamges загрузить нормально. может кто-нибудь объяснить такое поведение? это не имеет никакого смысла для меня вообще Любом так, что как раз не работает по какой-либо причине (вошедшего в систему пользователя, очевидно, имеет права доступа, как изображения делают disaply после навигации к ним), я думал, что я хотел бы попробовать загрузку изображений с помощью графика API. Поэтому я скачал быстрый запуск проект и пытаемся загрузить iamges с общественностью асинхронного Task TestAsync (GraphServiceClient graphClient) {пользователями вара = graphClient.Users; вар JK = пользователей [ "[email protected]"]; Возвращение ждут jk.Photo.Content.Request () GetAsync (). } Но я просто получить исключение из «Microsoft.Graph.ServiceException» типа был брошен. Тем не менее, когда я пытаюсь посмотреть один и тот же образ в API графа исследователя, я могу загрузить изображение. Пожалуйста, может кто-то просто помочь мне для отображения изображений пользователей SharePoint в моей веб-страницы без того, чтобы пользователь сначала перейдите к изображению непосредственно .. Почему это должно быть так сложно? ServiceException»был брошен. Тем не менее, когда я пытаюсь посмотреть один и тот же образ в API графа исследователя, я могу загрузить изображение. Пожалуйста, может кто-то просто помочь мне для отображения изображений пользователей SharePoint в моей веб-страницы без того, чтобы пользователь сначала перейдите к изображению непосредственно .. Почему это должно быть так сложно? ServiceException»был брошен. Тем не менее, когда я пытаюсь посмотреть один и тот же образ в API графа исследователя, я могу загрузить изображение. Пожалуйста, может кто-то просто помочь мне для отображения изображений пользователей SharePoint в моей веб-страницы без того, чтобы пользователь сначала перейдите к изображению непосредственно .. Почему это должно быть так сложно?
Bassie
1

голосов
1

ответ
54

Просмотры

Как сбросить пароль в Лазурном пользователя AD?

Я использую лазурное AD для моей аутентификации приложений. Пользователь успешно упаковали в Azure AD. И пользователь может войти в систему с помощью пароля. Мое требование, как пользователь может сбросить свой пароль. Когда пользователь забыл свой пароль, как они могут сбросить свой пароль в моем приложении. Есть ли граф апи доступны?
Jinesh
1

голосов
1

ответ
56

Просмотры

Register Azure Enterprise Application programmatically using .NET code

Я пытаюсь зарегистрировать Enterprise Application (v2) программно с помощью кода .NET. Я знаю, что они могут быть зарегистрированы здесь, но я хочу сделать это программно. Используя Graph API проводника, можно зарегистрировать V1 приложения по существу, делая POST с этой полезной нагрузкой { «DISPLAYNAME»: «Мой App»} к https://graph.microsoft.com/beta/applications Это приводит к новому App создал я могу получить это вновь созданное приложение и любые существующие, делая GET к https://graph.microsoft.com/beta/applications (очевидно, необходима авторизация) Я также получить конкретное приложение, делая GET, как это протокол HTTPS : //graph.microsoft.com/beta/applications/f0bc4548-deaf-c0de-a123-586b578cf357 Обратите внимание, что Id является объектом Id и не AppId Если я пытаюсь выше с идентификатором объекта приложения предприятия я получаю не найденный. Я могу найти приложение предприятия с помощью directoryObjects, но нет никакого способа его создания, используя этот путь запроса. Есть идеи, как это сделать? Кстати, я думаю, что эти приложения V2 можно сделать с помощью PowerShell, но еще раз, что это не то, что я после. Спасибо
illremember thistime
1

голосов
1

ответ
129

Просмотры

Как получить информацию о пользователе, используя атрибут «альтернативный» электронной почты в Azure AD Graph API

У меня есть пользователь в моем B2C арендатора, который имеет альтернативный адрес электронной подарок. Я хотел бы получить подробную информацию этого пользователя (в частности, массив «signInNames»), используя свойство «альтернативный адрес электронной почты» от B2C Арендатора. Я считаю, что это также известно как «otherMails», когда используются Graph API. Я также использую URL graph.windows.net для API. Если это возможно, я хотел бы продолжать использовать этот URL. Если graph.microsoft.com имеет решение для этого, хотя, я хотел бы знать об этом.
masu9
1

голосов
1

ответ
0

Просмотры

Почему приобретает маркер Azure AD на токен обновления нет алгоритма подписи?

Когда я получаю токен код авторизации (authContext.acquireTokenByAuthorizationCode), я получаю JWT (idToken), подписан и имеет соответствующие заголовки: { «Тип»: «JWT», «ALG»: «RS256», «x5t» : "wLLmYfsqdQuWtV_-hnVtDJJZM3Q", "ребенок": "wLLmYfsqdQuWtV_-hnVtDJJZM3Q"}, но когда я использую маркер обновления, чтобы получить новый маркер (authContext.acquireTokenByRefreshToken (...)), она возвращает беззнаковое JWT: { "станд" : «JWT», «ALG»: «нет»} Как заставить его дать мне подписанную JWT? вернуться authContext.acquireTokenByRefreshToken (refreshToken, новые ClientCredentials (ClientId, clientSecret), NULL);
Don Rhummy
1

голосов
1

ответ
0

Просмотры

Azure AD возвращает Graph API Запрещенный

Когда я хочу, чтобы члены из графа API из моего приложения graph.windows.net/{aadDirectoryId}/users/{userId.Value}/$links/memberOf?api-version=1.6 я всегда получаю ответ: StatusCode: 403, ReasonPhrase : 'не Запретный', версия: 1.1, содержание: System.Net.Http.StreamContent, заголовки: {Pragma: нет-кэш OCP-AAD-диагностика-имя-сервера: aVvd1R49Sg = запрос-ID: 67105ddc-2b5f-84bf-7ec43a4d3117 клиент-запрос-ID: fb1ef66f-451357f08975abd4 X-MS-dirapi-данные контракт-версия: 1.6 OCP-ААР-сеансовый ключ: _XjEM7ooA1Emw_l6FjiyMwKqtoEPSWgxw-04c_nX785foVv6fGM_lBejApG_gJW2fXC_LBNrZRJRryuBIOO7_O1bF2oEEiWMvnW9Ywx71OP0NJ5gRyZDGlLyNsjmsDvu.42WXAH4v8FjbaSNvNtH1Nnkm3z5on0J5ZsptMguA52A DataServiceVersion: 3,0; Строгий-Transport-Security: макс возраст = 31536000; IncludeSubdomains Access-Control-Allow-Origin: * Продолжительность: 853533 Cache-Control: нет кэша Дата: Вт, 5 марта 2019 14:01:17 GMT Сервер: Microsoft-IIS / 10,0 X-Сеть САШ-версия: 4.0.30319 X-Powered-By: ASP.NET Content-Length: 219 Content-Type: применение / JSON; OData = minimalmetadata; потокового = TRUE; кодировка = UTF-8 Expires: -1} Когда я называю это получить от https://graphexplorer.azurewebsites.net/ все в порядке. В лазурном AD я настроил разрешение для разрешения апи кода вызова: частный статический список GetGroupsFromGraphAPI (ClaimsIdentity claimsIdentity) {_logger.Info ($ "Получение требования от Graph API для {claimsIdentity.Name}"); Список groupObjectIds = новый список (); вар aadClientId = ConfigurationManager.AppSettings [ "ида: ClientID"]; вар aadSecret = ConfigurationManager.AppSettings [ "ида: ClientSecret"]; вар aadDirectoryId = ConfigurationManager.AppSettings [ "ида: DirectoryId"]; ClientCredential учетных = новый ClientCredential (aadClientId, aadSecret); AuthenticationContext authContext = новый AuthenticationContext ( "https://login.microsoftonline.com/" + aadDirectoryId); строка маркер доступа; попробуйте {_logger.Info ($ "Идентификатор клиента: {aadClientId}"); _logger.Info ($ "секретно: {aadSecret}"); _logger.Info ($ "Справочник идентификатор: {aadDirectoryId}"); вар маркер = authContext.AcquireToken ( "https://graph.windows.net", удостоверение); _logger.Info ($ "Знак: {token.ToString ()}"); = token.AccessToken маркер доступа; _logger.Info ($»
Patrik
1

голосов
1

ответ
0

Просмотры

Создание пользователя с помощью Azure AD Graph API в Azure AD B2C

Я пытаюсь создать пользователь в моем Azure каталога AD B2C. Я успешно создал пользователя, отправляя файл JSON образец, используя эту команду в CMD:> B2C Create-пользователя Что я tryng сделать, это опубликовать некоторые JSON строку вместо JSON файла и командной строки дает мне следующее сообщение об ошибке: Ошибка Вызов API Graph: { «odata.error»: { «код»: «Request_BadRequest», «сообщение»: { «языки»: «ан», «значение»: «было обнаружено, что значение без имени типа и нет Ожидаемый тип доступен. Если указана модель, каждое значение в полезной нагрузке должна иметь тип, который может быть либо указанным в полезной нагрузке, явно вызывающий или неявно выведенный из родительского значения «. }, "RequestID": " passwordPolicies = "DisablePasswordExpiration"}); Объект отформатирован = JsonConvert.DeserializeObject (client.CreateUser (JSON) .Result); } Это мой CreateUser Метод: общественный асинхронный Task CreateUser (строка JSON) {возвращение ждет SendGraphPostRequest ( "/ пользователей", JSON); } Это мой SendGraphPostRequest метод: частный асинхронной Task SendGraphPostRequest (строка апи, строка JSON) {// Примечание: Этот клиент использует Адал v2, а не Адал v4 AuthenticationResult результат = authContext.AcquireToken (Globals.aadGraphResourceId, удостоверение); HttpClient HTTP = новый HttpClient (); строка URL = Globals.aadGraphEndpoint + жилец + апи + "?" + Globals.aadGraphVersion; Console.ForegroundColor = ConsoleColor.Cyan; Приставка. WriteLine ( "POST" + URL); Console.WriteLine ( "Авторизация: Знаменосец" + result.AccessToken.Substring (0, 80) + "..."); Console.WriteLine ( "Content-Type: применение / JSON"); Console.WriteLine ( ""); Console.WriteLine ( "JSON:" + JSON); Console.WriteLine ( ""); HttpRequestMessage запрос = новый HttpRequestMessage (HttpMethod.Post, URL); request.Headers.Authorization = новый AuthenticationHeaderValue ( "Канал", result.AccessToken); request.Content = новый StringContent (JSON, Encoding.UTF8, "применение / JSON"); HttpResponseMessage ответ = ждут http.SendAsync (запрос); если (ответ!. IsSuccessStatusCode) {строка ошибки = ждут response.Content.ReadAsStringAsync (); объект, отформатированный = JsonConvert.DeserializeObject (ошибка); певд WebException ( "Ошибка Вызов API Graph: \ п" + JsonConvert.SerializeObject (отформатирован, Formatting.Indented)); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine ((INT) response.StatusCode + ":" + response.ReasonPhrase); Console.WriteLine ( ""); Возвращение ждут response.Content.ReadAsStringAsync (); } Formatting.Indented)); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine ((INT) response.StatusCode + ":" + response.ReasonPhrase); Console.WriteLine ( ""); Возвращение ждут response.Content.ReadAsStringAsync (); } Formatting.Indented)); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine ((INT) response.StatusCode + ":" + response.ReasonPhrase); Console.WriteLine ( ""); Возвращение ждут response.Content.ReadAsStringAsync (); }
3iL
1

голосов
2

ответ
386

Просмотры

Токен проверки в WebApp WebAPI Аутентификация с использованием Azure AD?

Работа над сценарием WebApp WebAPI Authentication, где я получаю маркер JWT из AD Azure в WebApp и передать то же самое с WebAPI. В WebAPI, генерировать маркер доступа для Azure GraphAPI из маркеров из WebApp сделать звонки в GraphAPI для авторизации. Оба WebApp и WebAPI регистрируются в качестве одного приложения на арендатора портала Azure, как аутентификация пользователей, одинакова для обоих WebApp и WebAPI. Это приложение интрасети и открыт для всех пользователей в AD. Пара вопросов, связанных лексем проверки или проверки подлинности. Нужно проверить Арендатор и аудиторию в лексемах в обоих WebApp и WebAPI? Какие другие лексемы валидация мне нужно выполнить в WebApp, WebAPI или в обоих? Как JWT маркер с цифровой подписью и зашифрованы. Что бы последствия не делать валидации в WebAPI, когда маркер передается от WebApp? Пожалуйста, порекомендуйте.
SteelBird82

Просмотр дополнительных вопросов