Arhn - архитектура программирования

Как в Azure AD настроить и прочитать основной адрес электронной почты пользователя с помощью PowerShell (например, Set-AzureADUser и Get-AzureADUser)?

У меня есть пользователь в Azure AD. В разделе «Методы аутентификации» для «основного» адреса электронной почты этого пользователя установлено определенное значение. Все остальные поля для контактной информации для аутентификации (например, телефон, альтернативный телефон и альтернативный адрес электронной почты) пусты. введите здесь описание изображения

Я просматриваю общедоступную документацию Microsoft относительно командлетов PowerShell Set-AzureADUser и Get-AzureADUser:

https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-sspr-authenticationdata

В этой документации упоминается, как установить альтернативные электронные письма, но не упоминается, как установить основной адрес электронной почты пользователя.

Кроме того, командлет Get-AzureADUser PowerShell, похоже, не возвращает основной адрес электронной почты пользователя (снимок экрана здесь), хотя основной адрес электронной почты явно указан при просмотре пользователя на портале Azure. введите здесь описание изображения

Итак, как программно установить и прочитать основной адрес электронной почты пользователя в Azure AD?


  • Если Почта пуста, содержит ли ProxyAddresses значение SMTP:? 22.05.2019
  • ProxyAddresses мне кажется пустым. Снимок экрана 23.05.2019

Ответы:


1

Теперь можно настроить адрес электронной почты для аутентификации через API-интерфейс бета-версии Microsoft Graph. См. здесь.

В настоящее время это можно сделать только с помощью делегированных разрешений в приложении Azure AD. Таким образом, пользователь должен пройти аутентификацию перед внесением каких-либо обновлений.

Ниже приведен пример кода с использованием PowerShell. Обратите внимание, что большая часть этого относится к получению токена доступа. Только последние 3 строки относятся к добавлению аутентификационного электронного письма пользователю.

$AzureTenantId = <YourTenantId>
$AzureAppId = <YourAzureADApplicationId> #The application needs to have appropiate delagated permissions set
$UserName = '[email protected]'
$UserAuthEmail = '[email protected]'

#Get token by getting user to authenticate with a device code
$Resource = "https://graph.microsoft.com/"

$DeviceCodeRequestParams = @{
    Method = 'POST'
    Uri    = "https://login.microsoftonline.com/$AzureTenantId/oauth2/devicecode"
    Body   = @{
        client_id = $AzureAppId
        resource  = $Resource
    }
}
$DeviceCodeRequest = Invoke-RestMethod @DeviceCodeRequestParams

Write-Host "A browser window will launch in 5 seconds. Enter the code $($DeviceCodeRequest.user_code) to authenticate. You should just be able to paste it." -ForegroundColor Yellow
Set-Clipboard $DeviceCodeRequest.user_code
Start-Sleep -Seconds 5
Start $DeviceCodeRequest.verification_url

Pause

$TokenRequestParams = @{
    Method = 'POST'
    Uri    = "https://login.microsoftonline.com/$AzureTenantId/oauth2/token"
    Body   = @{
        grant_type = "urn:ietf:params:oauth:grant-type:device_code"
        code       = $DeviceCodeRequest.device_code
        client_id  = $AzureAppId
    }
}
$TokenRequest = Invoke-RestMethod @TokenRequestParams
$Token = $TokenRequest.access_token

#Set the email authentication
$Headers = @{Authorization = "Bearer $Token"}
$BodyJson = "{`"emailAddress`": `"$UserAuthEmail`"}"
Invoke-RestMethod "https://graph.microsoft.com/beta/users/$UserName/authentication/emailMethods" -Method POST -ContentType application/json -Headers $Headers -Body $BodyJson
23.11.2020

2

На снимке экрана этот пользователь выглядит как синхронизированный пользователь в гибридной установке без почтового ящика.

Если у пользователя был почтовый ящик, будет заполнен основной адрес, поскольку я предполагаю, что у пользователя нет адреса, поскольку у него нет почтового ящика.

Если это пользователь синхронизации, вам нужно будет обновить информацию в локальном AD и позволить ему синхронизироваться с Azure.

Надеюсь это поможет.

22.05.2019
  • Я хочу уточнить, что контекст настройки основного адреса электронной почты пользователя находится в контексте самообслуживания сброса пароля (SSPR). Таким образом, этот адрес электронной почты не может быть вашим основным рабочим или учебным. Снимок экрана. Таким образом, идея состояла бы в том, чтобы установить для SSPR адрес электронной почты, например @ gmail.com. Есть ли способ сделать это программно? Мы не пытаемся изменить реальный локальный почтовый ящик пользователя или почтовый ящик Office 365. 23.05.2019
  • Независимо от того, установлен ли прокси-адрес пользователя, основной адрес или другие сообщения электронной почты, если SSPR включен, пользователю будет предложено установить метод восстановления при следующем входе в систему. Электронная почта, используемая для SSPR, НЕ видима с помощью любой известной мне команды ADD powershell, хотя, таким образом, в статье сказано об этом. доказательство 25.05.2019
  • Вы можете установить адрес электронной почты в разделе методы аутентификации в AAD, но пользователю все равно потребуется проверить адрес. 25.05.2019

  • 3

    Поле электронной почты для аутентификации и телефон для аутентификации пока не настраиваются в PowerShell.

    Подробнее в этом сообщении на форуме MSDN: https://social.msdn.microsoft.com/Forums/en-US/52c9b994-a41f-4072-8974-cbccd699dbd3/set-and-read-primary-email-through-powershell-getazureaduser?forum=WindowsAzureAD

    23.05.2019
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..