Namespace: microsoft.graph
Importante
As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.
Crie uma nova configuração de diretório com base nos modelos disponíveis em directorySettingTemplates. Essas configurações podem estar no nível do locatário ou no nível do grupo.
Os seguintes modelos de configuração estão disponíveis para grupos:
-
Group.Unified: defina as configurações para todos ou para grupos específicos do Microsoft 365.
-
Group.Unified.Guest: defina as configurações de acesso de convidado para um grupo específico do Microsoft 365.
-
Group.Security: defina configurações para todos ou grupos de segurança de nuvem específicos, como habilitar rótulos de confidencialidade MIP. Requer uma licença P1 do Microsoft Entra ID.
-
Group.Security.Policies: defina as configurações para um grupo de segurança de nuvem específico. Requer uma licença P1 do Microsoft Entra ID.
Essa API está disponível nas seguintes implantações de nuvem nacional.
| Serviço global |
Governo dos EUA L4 |
US Government L5 (DOD) |
China operada pela 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Permissões
Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
Criar configurações para todo o locatário
| Tipo de permissão |
Permissões menos privilegiadas |
Permissões com privilégios mais elevados |
| Delegado (conta corporativa ou de estudante) |
GroupSettings.ReadWrite.All |
Directory.ReadWrite.All |
| Delegado (conta pessoal da Microsoft) |
Sem suporte. |
Sem suporte. |
| Application |
GroupSettings.ReadWrite.All |
Directory.ReadWrite.All |
Importante
Para acesso delegado usando contas corporativas ou de estudante, o usuário conectado deve receber uma função do Microsoft Entra com suporte ou uma função personalizada que conceda as permissões necessárias para esta operação. Esta operação dá suporte às seguintes funções internas, que fornecem apenas o menor privilégio necessário:
- Ler propriedades básicas sobre como definir modelos e configurações - Microsoft Entra Joined Device Administrador Local, Leitores de Diretório, Leitor Global
- Gerenciar todas as configurações de grupo/diretório - Gravadores de Diretório
- Gerenciar configurações globais e locais para grupos; gerenciar
Group.Unified.Guest e Group.Unified configurações - Administrador de Grupos
- Atualizar
Password Rule Settings - Administrador da Política de Autenticação
- Atualizar configurações, ler propriedades básicas sobre definição de modelos e configurações - Administrador de usuários
Quando um aplicativo recebe permissões delegadas Directory.Read.All ou Directory.ReadWrite.All , o usuário conectado só precisa da função de membro padrão. Nenhuma função adicional do Microsoft Entra é necessária. As funções do Microsoft Entra listadas acima são necessárias somente quando o aplicativo de chamada recebe uma permissão delegada mais limitada, como GroupSettings.Read.All. Nesse caso, o usuário conectado deve ter uma das funções listadas.
Criar configurações específicas do grupo
| Tipo de permissão |
Permissões menos privilegiadas |
Permissões com privilégios mais elevados |
| Delegado (conta corporativa ou de estudante) |
GroupSettings.ReadWrite.All |
Directory.ReadWrite.All |
| Delegado (conta pessoal da Microsoft) |
Sem suporte. |
Sem suporte. |
| Application |
GroupSettings.ReadWrite.All |
Directory.ReadWrite.All |
Solicitação HTTP
Crie uma configuração para todo o locatário.
POST /settings
Crie uma configuração específica para o grupo.
POST /groups/{id}/settings
Corpo da solicitação
No corpo da solicitação, forneça uma representação JSON do objeto directorySetting .
Resposta
Se for bem-sucedido, esse método retornará 201 Created o código de resposta e o objeto directorySetting no corpo da resposta.
Exemplos
Exemplo 1: Criar uma configuração para bloquear convidados para um grupo específico do Microsoft 365
Solicitação
O exemplo a seguir mostra uma solicitação.
POST https://graph.microsoft.com/beta/groups/05aa6a98-956a-45c0-b13b-88076a23f2cd/settings
Content-type: application/json
{
"templateId": "08d542b9-071f-4e16-94b0-74abb372e3d9",
"values": [
{
"name": "AllowToAddGuests",
"value": "false"
}
]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new DirectorySetting
{
TemplateId = "08d542b9-071f-4e16-94b0-74abb372e3d9",
Values = new List<SettingValue>
{
new SettingValue
{
Name = "AllowToAddGuests",
Value = "false",
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Groups["{group-id}"].Settings.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewDirectorySetting()
templateId := "08d542b9-071f-4e16-94b0-74abb372e3d9"
requestBody.SetTemplateId(&templateId)
settingValue := graphmodels.NewSettingValue()
name := "AllowToAddGuests"
settingValue.SetName(&name)
value := "false"
settingValue.SetValue(&value)
values := []graphmodels.SettingValueable {
settingValue,
}
requestBody.SetValues(values)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
settings, err := graphClient.Groups().ByGroupId("group-id").Settings().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
DirectorySetting directorySetting = new DirectorySetting();
directorySetting.setTemplateId("08d542b9-071f-4e16-94b0-74abb372e3d9");
LinkedList<SettingValue> values = new LinkedList<SettingValue>();
SettingValue settingValue = new SettingValue();
settingValue.setName("AllowToAddGuests");
settingValue.setValue("false");
values.add(settingValue);
directorySetting.setValues(values);
DirectorySetting result = graphClient.groups().byGroupId("{group-id}").settings().post(directorySetting);
const options = {
authProvider,
};
const client = Client.init(options);
const directorySetting = {
templateId: '08d542b9-071f-4e16-94b0-74abb372e3d9',
values: [
{
name: 'AllowToAddGuests',
value: 'false'
}
]
};
await client.api('/groups/05aa6a98-956a-45c0-b13b-88076a23f2cd/settings')
.version('beta')
.post(directorySetting);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\DirectorySetting;
use Microsoft\Graph\Beta\Generated\Models\SettingValue;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new DirectorySetting();
$requestBody->setTemplateId('08d542b9-071f-4e16-94b0-74abb372e3d9');
$valuesSettingValue1 = new SettingValue();
$valuesSettingValue1->setName('AllowToAddGuests');
$valuesSettingValue1->setValue('false');
$valuesArray []= $valuesSettingValue1;
$requestBody->setValues($valuesArray);
$result = $graphServiceClient->groups()->byGroupId('group-id')->settings()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Groups
$params = @{
templateId = "08d542b9-071f-4e16-94b0-74abb372e3d9"
values = @(
@{
name = "AllowToAddGuests"
value = "false"
}
)
}
New-MgBetaGroupSetting -GroupId $groupId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.directory_setting import DirectorySetting
from msgraph_beta.generated.models.setting_value import SettingValue
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = DirectorySetting(
template_id = "08d542b9-071f-4e16-94b0-74abb372e3d9",
values = [
SettingValue(
name = "AllowToAddGuests",
value = "false",
),
],
)
result = await graph_client.groups.by_group_id('group-id').settings.post(request_body)
Resposta
O exemplo a seguir mostra a resposta.
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#settings/$entity",
"id": "a06fa228-3042-4662-bd09-33e298da1afe",
"displayName": null,
"templateId": "08d542b9-071f-4e16-94b0-74abb372e3d9",
"values": [
{
"name": "AllowToAddGuests",
"value": "false"
}
]
}
Exemplo 2: criar uma configuração de nível de locatário ou diretório
Solicitação
POST https://graph.microsoft.com/beta/settings
Content-type: application/json
{
"templateId": "62375ab9-6b52-47ed-826b-58e47e0e304b",
"values": [
{
"name": "GuestUsageGuidelinesUrl",
"value": "https://privacy.contoso.com/privacystatement"
},
{
"name": "EnableMSStandardBlockedWords",
"value": "true"
},
{
"name": "EnableMIPLabels",
"value": "true"
},
{
"name": "PrefixSuffixNamingRequirement",
"value": "[Contoso-][GroupName]"
}
]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new DirectorySetting
{
TemplateId = "62375ab9-6b52-47ed-826b-58e47e0e304b",
Values = new List<SettingValue>
{
new SettingValue
{
Name = "GuestUsageGuidelinesUrl",
Value = "https://privacy.contoso.com/privacystatement",
},
new SettingValue
{
Name = "EnableMSStandardBlockedWords",
Value = "true",
},
new SettingValue
{
Name = "EnableMIPLabels",
Value = "true",
},
new SettingValue
{
Name = "PrefixSuffixNamingRequirement",
Value = "[Contoso-][GroupName]",
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Settings.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewDirectorySetting()
templateId := "62375ab9-6b52-47ed-826b-58e47e0e304b"
requestBody.SetTemplateId(&templateId)
settingValue := graphmodels.NewSettingValue()
name := "GuestUsageGuidelinesUrl"
settingValue.SetName(&name)
value := "https://privacy.contoso.com/privacystatement"
settingValue.SetValue(&value)
settingValue1 := graphmodels.NewSettingValue()
name := "EnableMSStandardBlockedWords"
settingValue1.SetName(&name)
value := "true"
settingValue1.SetValue(&value)
settingValue2 := graphmodels.NewSettingValue()
name := "EnableMIPLabels"
settingValue2.SetName(&name)
value := "true"
settingValue2.SetValue(&value)
settingValue3 := graphmodels.NewSettingValue()
name := "PrefixSuffixNamingRequirement"
settingValue3.SetName(&name)
value := "[Contoso-][GroupName]"
settingValue3.SetValue(&value)
values := []graphmodels.SettingValueable {
settingValue,
settingValue1,
settingValue2,
settingValue3,
}
requestBody.SetValues(values)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
settings, err := graphClient.Settings().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
DirectorySetting directorySetting = new DirectorySetting();
directorySetting.setTemplateId("62375ab9-6b52-47ed-826b-58e47e0e304b");
LinkedList<SettingValue> values = new LinkedList<SettingValue>();
SettingValue settingValue = new SettingValue();
settingValue.setName("GuestUsageGuidelinesUrl");
settingValue.setValue("https://privacy.contoso.com/privacystatement");
values.add(settingValue);
SettingValue settingValue1 = new SettingValue();
settingValue1.setName("EnableMSStandardBlockedWords");
settingValue1.setValue("true");
values.add(settingValue1);
SettingValue settingValue2 = new SettingValue();
settingValue2.setName("EnableMIPLabels");
settingValue2.setValue("true");
values.add(settingValue2);
SettingValue settingValue3 = new SettingValue();
settingValue3.setName("PrefixSuffixNamingRequirement");
settingValue3.setValue("[Contoso-][GroupName]");
values.add(settingValue3);
directorySetting.setValues(values);
DirectorySetting result = graphClient.settings().post(directorySetting);
const options = {
authProvider,
};
const client = Client.init(options);
const directorySetting = {
templateId: '62375ab9-6b52-47ed-826b-58e47e0e304b',
values: [
{
name: 'GuestUsageGuidelinesUrl',
value: 'https://privacy.contoso.com/privacystatement'
},
{
name: 'EnableMSStandardBlockedWords',
value: 'true'
},
{
name: 'EnableMIPLabels',
value: 'true'
},
{
name: 'PrefixSuffixNamingRequirement',
value: '[Contoso-][GroupName]'
}
]
};
await client.api('/settings')
.version('beta')
.post(directorySetting);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\DirectorySetting;
use Microsoft\Graph\Beta\Generated\Models\SettingValue;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new DirectorySetting();
$requestBody->setTemplateId('62375ab9-6b52-47ed-826b-58e47e0e304b');
$valuesSettingValue1 = new SettingValue();
$valuesSettingValue1->setName('GuestUsageGuidelinesUrl');
$valuesSettingValue1->setValue('https://privacy.contoso.com/privacystatement');
$valuesArray []= $valuesSettingValue1;
$valuesSettingValue2 = new SettingValue();
$valuesSettingValue2->setName('EnableMSStandardBlockedWords');
$valuesSettingValue2->setValue('true');
$valuesArray []= $valuesSettingValue2;
$valuesSettingValue3 = new SettingValue();
$valuesSettingValue3->setName('EnableMIPLabels');
$valuesSettingValue3->setValue('true');
$valuesArray []= $valuesSettingValue3;
$valuesSettingValue4 = new SettingValue();
$valuesSettingValue4->setName('PrefixSuffixNamingRequirement');
$valuesSettingValue4->setValue('[Contoso-][GroupName]');
$valuesArray []= $valuesSettingValue4;
$requestBody->setValues($valuesArray);
$result = $graphServiceClient->settings()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.DirectoryManagement
$params = @{
templateId = "62375ab9-6b52-47ed-826b-58e47e0e304b"
values = @(
@{
name = "GuestUsageGuidelinesUrl"
value = "https://privacy.contoso.com/privacystatement"
}
@{
name = "EnableMSStandardBlockedWords"
value = "true"
}
@{
name = "EnableMIPLabels"
value = "true"
}
@{
name = "PrefixSuffixNamingRequirement"
value = "[Contoso-][GroupName]"
}
)
}
New-MgBetaDirectorySetting -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.directory_setting import DirectorySetting
from msgraph_beta.generated.models.setting_value import SettingValue
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = DirectorySetting(
template_id = "62375ab9-6b52-47ed-826b-58e47e0e304b",
values = [
SettingValue(
name = "GuestUsageGuidelinesUrl",
value = "https://privacy.contoso.com/privacystatement",
),
SettingValue(
name = "EnableMSStandardBlockedWords",
value = "true",
),
SettingValue(
name = "EnableMIPLabels",
value = "true",
),
SettingValue(
name = "PrefixSuffixNamingRequirement",
value = "[Contoso-][GroupName]",
),
],
)
result = await graph_client.settings.post(request_body)
Resposta
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#settings/$entity",
"id": "844d252c-4de2-43eb-a784-96df77231aae",
"displayName": null,
"templateId": "62375ab9-6b52-47ed-826b-58e47e0e304b",
"values": [
{
"name": "GuestUsageGuidelinesUrl",
"value": "https://privacy.contoso.com/privacystatement"
},
{
"name": "EnableMSStandardBlockedWords",
"value": "true"
},
{
"name": "EnableMIPLabels",
"value": "true"
},
{
"name": "PrefixSuffixNamingRequirement",
"value": "[Contoso-][GroupName]"
}
]
}
Exemplo 3: Habilitar rótulos de confidencialidade para todos os grupos de segurança de nuvem no locatário
Observação
Esse recurso requer uma licença do Microsoft Entra ID P1.
Solicitação
POST https://graph.microsoft.com/beta/settings
Content-type: application/json
{
"templateId": "d209f6fa-3839-4d70-b83f-60b1c64d0e8f",
"values": [
{
"name": "EnableMIPLabels",
"value": "true"
}
]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new DirectorySetting
{
TemplateId = "d209f6fa-3839-4d70-b83f-60b1c64d0e8f",
Values = new List<SettingValue>
{
new SettingValue
{
Name = "EnableMIPLabels",
Value = "true",
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Settings.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewDirectorySetting()
templateId := "d209f6fa-3839-4d70-b83f-60b1c64d0e8f"
requestBody.SetTemplateId(&templateId)
settingValue := graphmodels.NewSettingValue()
name := "EnableMIPLabels"
settingValue.SetName(&name)
value := "true"
settingValue.SetValue(&value)
values := []graphmodels.SettingValueable {
settingValue,
}
requestBody.SetValues(values)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
settings, err := graphClient.Settings().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
DirectorySetting directorySetting = new DirectorySetting();
directorySetting.setTemplateId("d209f6fa-3839-4d70-b83f-60b1c64d0e8f");
LinkedList<SettingValue> values = new LinkedList<SettingValue>();
SettingValue settingValue = new SettingValue();
settingValue.setName("EnableMIPLabels");
settingValue.setValue("true");
values.add(settingValue);
directorySetting.setValues(values);
DirectorySetting result = graphClient.settings().post(directorySetting);
const options = {
authProvider,
};
const client = Client.init(options);
const directorySetting = {
templateId: 'd209f6fa-3839-4d70-b83f-60b1c64d0e8f',
values: [
{
name: 'EnableMIPLabels',
value: 'true'
}
]
};
await client.api('/settings')
.version('beta')
.post(directorySetting);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\DirectorySetting;
use Microsoft\Graph\Beta\Generated\Models\SettingValue;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new DirectorySetting();
$requestBody->setTemplateId('d209f6fa-3839-4d70-b83f-60b1c64d0e8f');
$valuesSettingValue1 = new SettingValue();
$valuesSettingValue1->setName('EnableMIPLabels');
$valuesSettingValue1->setValue('true');
$valuesArray []= $valuesSettingValue1;
$requestBody->setValues($valuesArray);
$result = $graphServiceClient->settings()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.DirectoryManagement
$params = @{
templateId = "d209f6fa-3839-4d70-b83f-60b1c64d0e8f"
values = @(
@{
name = "EnableMIPLabels"
value = "true"
}
)
}
New-MgBetaDirectorySetting -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.directory_setting import DirectorySetting
from msgraph_beta.generated.models.setting_value import SettingValue
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = DirectorySetting(
template_id = "d209f6fa-3839-4d70-b83f-60b1c64d0e8f",
values = [
SettingValue(
name = "EnableMIPLabels",
value = "true",
),
],
)
result = await graph_client.settings.post(request_body)
Resposta
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#settings/$entity",
"id": "3e4a9b9d-1234-5678-abcd-1234567890ab",
"displayName": null,
"templateId": "d209f6fa-3839-4d70-b83f-60b1c64d0e8f",
"values": [
{
"name": "EnableMIPLabels",
"value": "true"
}
]
}