Автоматизация доступа к SharePoint через Интернет для внешних пользователей через Flow / Azure - PullRequest
1 голос
/ 04 июня 2019

Я довольно новичок в SharePoint / Azure / PowerShell, поэтому извиняюсь, если то, что я спрашиваю, глупый вопрос!

В настоящее время у нас есть клиентские сайты SharePoint, размещенные на нашем клиенте O365, с доступом к каждому сайту, который вскоре будет развернут для каждого из наших соответствующих клиентов. Первоначально, только старшее руководство каждого клиента будет иметь доступ к сайтам, однако со временем, вероятно, мы добавим всех остальных; Чтобы упростить новый пользовательский процесс и избавить нас от необходимости добавлять каждого отдельного сотрудника, мы вместо этого рассматривали возможность использования потока для автоматизации доступа пользователей с целью добавления аутентифицированных внешних пользователей без особого реального участия со стороны администраторов, кроме простого процесс утверждения / отклонения.

Общий план выглядит следующим образом:

Набросок Visio <<br> enter image description here

  1. Каждый клиентский сайт имеет собственный список SharePoint под названием «Список доступа сотрудников». Указанный список будет содержать следующие столбцы: идентификатор запроса (текст), имя (текст), фамилия (текст), должность (текст), компания (текст), контактный номер (текст), электронная почта (текст), SharePoint Access (Да / Нет, логический).
  2. Если сотруднику требуется доступ к сайту SharePoint, его менеджер добавит сотрудника в список и заполнит все вышеперечисленные поля, установив для элемента «SharePoint Access» значение «Да».
  3. Это приведет к тому, что поток и электронное письмо с подтверждением будут отправлены мне и другому администратору, причем в указанном электронном письме будет указана информация о пользователе, который будет создан, и о том, кто отправил запрос.
  4. Вставка скрипта каким-либо образом - он будет запущен, если запрос будет утвержден, и предоставит пользователю доступ.
  5. Уведомление по электронной почте автоматически отправляется создателю элемента списка SharePoint, уведомляя его о том, что у пользователя теперь есть доступ.

На шаге 4 я немного застрял в том, что делать, если запрос будет одобрен - ниже я написал небольшой скрипт PowerShell, который почти достигает того, к чему я стремлюсь, в том смысле, что он создает внешний Пользователь PnP Group и определение роли PnP (если его еще нет) извлекает то, что находится в полях «Электронная почта» в списке «Доступ сотрудника», и запускает Add-PnPUsertoGroup, чтобы перетащить пользователей в группу PnP, которая затем отправляет пользователям электронное письмо со ссылкой на сайт SharePoint, позволяя им получить к нему доступ. Однако:

  • Сценарий, который я написал, нацелен на всех в списке SharePoint, в то время как в идеале я бы хотел, чтобы сценарий был нацелен на единственного пользователя, который был недавно добавлен в список / указан в электронном письме с утверждением, и только на них. Я предполагаю, что мне нужно будет передать информацию из потока в сценарий, что я даже не уверен, что это возможно, и если это так, у меня нет понятия, как это сделать.
  • Я знаю, что функции Azure и Azure Automation можно использовать для вставки сценариев в потоки, но у меня нет опыта ни того, ни другого, поэтому я не уверен, какой из этих вариантов более подходит. Есть ли какое-либо руководство о том, как вставлять в них скрипты PowerShell и как направлять поток данных в указанные скрипты?

Сценарий PowerShell выглядит следующим образом:

enter image description here

Надеюсь, что все это имеет смысл - Любое руководство будет оценено.

Спасибо!

EDIT: Так же, как немного дополнительной информации, вот Поток, как это в настоящее время:

Поток Часть 1

Поток Часть 2

Поток Часть 3

1 Ответ

0 голосов
/ 07 июня 2019

С тех пор нашли ответ на вышеприведенный вопрос - хотя функции / автоматизация Azure являются опцией, они не обязательно нужны или сценарии PowerShell, запущенные из Flow, в этом случае моя цель была реализована с помощью API приглашения MS Graph, Разрешения приложений и вызов HTTP SharePoint вместо этого.

Смотри скриншоты:

Поток Ответ 1

Поток Ответ 2

Поток Ответ 3

Шаг 1. Настройка приложения с разрешениями для совершения звонков в MS Graph. Используйте это руководство, чтобы узнать, как это сделать - http://blogopaxio.azurewebsites.net/accessing-graph-api-from-microsoft-flow-using-application-permissions-2/

Шаг 2: Добавьте HTTP в MS Graph и установите параметры, как на скриншоте 1 этого поста - это действие создаст гостевого пользователя и URL-адрес приглашения, который пользователю потребуется для входа на сайт.

Шаг 3: На этом этапе запустите поток, чтобы мы могли получить 'пригласитьРедемурл' из тела шага Вывод для HTTP - вам понадобится этот конкретный URL-адрес, чтобы отдельно отправить его по электронной почте конечному пользователю.

Шаг 4. Сделайте паузу на одну или две минуты, чтобы убедиться, что информация из предыдущих действий «залипает» - при условии, что все это работает, на данный момент у пользователя фактически будет создана гостевая учетная запись, и вы Их можно будет увидеть в разделе «Пользователи» в вашем административном центре O365, однако они пока не будут знать о доступе к своей учетной записи (мы сообщим об этом в конце нашего электронного письма).

Шаг 5. Добавьте пользователя в группу безопасности SharePoint с помощью действия «Отправить HTTP-запрос в SharePoint». Обратите внимание, что «sitegroups (19)» в URI этого действия относится к номеру идентификатора группы PnP, в которую вы их помещаете, поэтому в моем случае идентификатор группы был 19. Если вы не уверены в этом идентификаторе вашей группы, подключитесь к сайту SharePoint через PowerShell с помощью команд PnP, затем запустите Get-PnPGroup.

Шаг 6. Отправьте электронное письмо приглашенному пользователю с помощью действия Outlook Отправить электронную почту. К вашему сведению, переменная «Сайт SharePoint» на моем снимке экрана на самом деле представляет собой «InviteRedeemURL».

Надеюсь, это поможет всем, кто не знает, как это сделать. Если у кого-то есть лучшее решение, которое достигает этого всеми средствами, отправьте это!

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...