Контроль внешнего доступа для групп Office 365 - PullRequest
0 голосов
/ 07 мая 2019

Возможно ли включить / отключить внешний доступ pr 365 групп из c #.Я вижу, что некоторые PowerShell cmd имеют свойство AllowGhestUsers, но я не могу найти что-либо в Microsoft Graph или аналогичном?

1 Ответ

0 голосов
/ 07 мая 2019

Управление этими настройками осуществляется с помощью групповых графиков Microsoft Graph .Настройки могут быть установлены для всего арендатора (затрагивающие все группы), и они могут быть установлены для конкретной группы (затрагивающей только эту группу).

Ниже приведено несколько примеров использования Microsoft Graph SDK для.NET , чтобы проиллюстрировать, как можно изменить эти параметры:

Отключить гостевых пользователей, получающих доступ к группам Office 365

В приведенном ниже примере обновляются общедоступные настройки для гостевых пользователей в группе Office 365, чтобы отключитьдобавление гостевых пользователей и отключение доступа существующих гостевых пользователей к групповому контенту.Это примерно эквивалентно шагам, описанным в Использование PowerShell для управления гостевым доступом .

var groupSettingsName = "Group.Unified";

// Get the group settings
var groupSettingsResult = await graph.GroupSettings.Request().GetAsync();
var groupSettings = groupSettingsResult
    .FirstOrDefault(s => s.DisplayName == groupSettingsName);

// If these settings don't exist, add them (with their default values)
if (groupSettings == null)
{
    // Get the settings template
    var groupSettingsTemplates = await graph.GroupSettingTemplates.Request().GetAsync();
    var unifiedGroupSettingTemplate = groupSettingsTemplates
        .First(g => g.DisplayName == groupSettingsName);

    // Create a new setting based on the template
    var newGroupSettings = new GroupSetting()
    {
        TemplateId = unifiedGroupSettingTemplate.Id,
        Values = unifiedGroupSettingTemplate.Values.Select(
            v => new SettingValue()
            {
                Name = v.Name,
                Value = v.DefaultValue
            })
    };

    // Create the settings
    groupSettings = await graph.GroupSettings.Request().AddAsync(newGroupSettings);
}

// Update settings (if needed)
var settings = groupSettings.Values.ToDictionary(x => x.Name, x => x);
if (settings["AllowToAddGuests"].Value.ToLower() != "false"
    || settings["AllowGuestsToAccessGroups"].Value.ToLower() != "false")
{
    settings["AllowGuestsToAccessGroups"].Value = "false";
    settings["AllowToAddGuests"].Value = "false";
    await graph.GroupSettings[groupSettings.Id].Request()
        .UpdateAsync(new GroupSetting() { Values = settings.Values });
}

Отключение добавления гостевых пользователей в определенную группу Office 365

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

var groupGuestSettingsName = "Group.Unified.Guest";

// Get the group in question
var groupResult = await graph.Groups.Request()
    .Filter("displayName eq 'Test_Office365_group'").GetAsync();
var group = groupResult.First();

// Get the group's settings relating to guests
var groupSettingsResult = await graph.Groups[group.Id].Settings.Request().GetAsync();        
var groupSettings = groupSettingsResult
    .FirstOrDefault(s => s.DisplayName == groupGuestSettingsName);

// If these settings don't exist on the group, add them (with their default values)
if (groupSettings == null)
{
    // Get the settings template
    var groupSettingsTemplates = await graph.GroupSettingTemplates.Request().GetAsync();
    var unifiedGroupGuestSettingTemplate = groupSettingsTemplates
        .First(g => g.DisplayName == groupGuestSettingsName);

    // Create a new group setting based on the template
    var newGroupSettings = new GroupSetting()
    {
        TemplateId = unifiedGroupGuestSettingTemplate.Id,
        Values = unifiedGroupGuestSettingTemplate.Values.Select(
            v => new SettingValue()
            {
                Name = v.Name,
                Value = v.DefaultValue
            })
    };

    // Add these settings to the group
    groupSettings = await graph.Groups[group.Id].Settings.Request().AddAsync(newGroupSettings);
}

// Change AllowToAddGuests setting to false, if needed
var settings = groupSettings.Values.ToDictionary(x => x.Name, x => x);
if (settings["AllowToAddGuests"].Value.ToLower() != "false")
{
    settings["AllowToAddGuests"].Value = "False";
    await graph.GroupSettings[groupSettings.Id].Request()
        .UpdateAsync(new GroupSetting() { Values = settings.Values });
}
...