Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Оцените, является ли пользователь или устройство членом динамической группы. Возвращается правило членства вместе с другими сведениями, которые использовались при оценке. Эту операцию можно выполнить следующими способами:
- Оцените, является ли пользователь или устройство членом указанной динамической группы.
- Оцените, будет ли пользователь или устройство членом динамической группы, на основе идентификатора пользователя или устройства и правила членства.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба |
Правительство США L4 |
Правительство США L5 (DOD) |
Китай управляется 21Vianet |
✅ |
✅ |
✅ |
✅ |
Разрешения
В следующей таблице показаны наименее привилегированные разрешения или разрешения, необходимые для вызова этого API для каждого поддерживаемого типа ресурсов. Следуйте рекомендациям , чтобы запросить разрешения с наименьшими привилегиями. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Оценка динамического членства с помощью идентификатора участника и идентификатора группы
Поддерживаемый ресурс |
Делегированное (рабочая или учебная учетная запись) |
Делегированное (личная учетная запись Майкрософт) |
Для приложений |
device |
Group.Read.All и Device.Read.All |
Не поддерживается. |
Не поддерживается. |
user |
Group.Read.All и User.Read.All |
Не поддерживается. |
Не поддерживается. |
Оценка динамического членства с помощью идентификатора участника и правила членства
Поддерживаемый ресурс |
Делегированное (рабочая или учебная учетная запись) |
Делегированное (личная учетная запись Майкрософт) |
Для приложений |
device |
Device.Read.All |
Не поддерживается. |
Не поддерживается. |
user |
User.Read.All |
Не поддерживается. |
Не поддерживается. |
HTTP-запрос
POST /groups/{id}/evaluateDynamicMembership
POST /groups/evaluateDynamicMembership
Текст запроса
В тексте запроса укажите необходимые свойства.
В следующей таблице перечислены свойства, необходимые при оценке членства в группах.
Параметр |
Тип |
Описание |
memberId |
Коллекция строк |
memberId — это идентификатор объекта пользователя или устройства для оценки. |
membershipRule |
Коллекция строк |
Правило, используемое для оценки членства. Если это свойство не указано, вычисляется правило для существующей группы. Если это свойство указано, пользователь или устройство оценивается на предмет возможного членства в группе с тем же правилом. Дополнительные сведения см. в статье Правила динамического членства для групп в Microsoft Entra ID. |
Отклик
В случае успешного выполнения этот метод возвращает код отклика 200 OK
и объект evaluateDynamicMembershipResult .
Примеры
Пример 1. Оценка того, является ли пользователь или устройство членом существующей группы
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/beta/groups/{id}/evaluateDynamicMembership
Content-type: application/json
{
"memberId": "319b41e8-d9e4-42f8-bdc9-741113f48b33"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Groups.Item.EvaluateDynamicMembership;
var requestBody = new EvaluateDynamicMembershipPostRequestBody
{
MemberId = "319b41e8-d9e4-42f8-bdc9-741113f48b33",
};
// 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}"].EvaluateDynamicMembership.PostAsync(requestBody);
mgc-beta groups evaluate-dynamic-membership-by-id post --group-id {group-id} --body '{\
"memberId": "319b41e8-d9e4-42f8-bdc9-741113f48b33"\
}\
'
// 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"
graphgroups "github.com/microsoftgraph/msgraph-beta-sdk-go/groups"
//other-imports
)
requestBody := graphgroups.NewEvaluateDynamicMembershipPostRequestBody()
memberId := "319b41e8-d9e4-42f8-bdc9-741113f48b33"
requestBody.SetMemberId(&memberId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
evaluateDynamicMembership, err := graphClient.Groups().ByGroupId("group-id").EvaluateDynamicMembership().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.beta.groups.item.evaluatedynamicmembership.EvaluateDynamicMembershipPostRequestBody evaluateDynamicMembershipPostRequestBody = new com.microsoft.graph.beta.groups.item.evaluatedynamicmembership.EvaluateDynamicMembershipPostRequestBody();
evaluateDynamicMembershipPostRequestBody.setMemberId("319b41e8-d9e4-42f8-bdc9-741113f48b33");
var result = graphClient.groups().byGroupId("{group-id}").evaluateDynamicMembership().post(evaluateDynamicMembershipPostRequestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const evaluateDynamicMembershipResult = {
memberId: '319b41e8-d9e4-42f8-bdc9-741113f48b33'
};
await client.api('/groups/{id}/evaluateDynamicMembership')
.version('beta')
.post(evaluateDynamicMembershipResult);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Groups\Item\EvaluateDynamicMembership\EvaluateDynamicMembershipPostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new EvaluateDynamicMembershipPostRequestBody();
$requestBody->setMemberId('319b41e8-d9e4-42f8-bdc9-741113f48b33');
$result = $graphServiceClient->groups()->byGroupId('group-id')->evaluateDynamicMembership()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Groups
$params = @{
memberId = "319b41e8-d9e4-42f8-bdc9-741113f48b33"
}
Test-MgBetaGroupDynamicMembership -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.groups.item.evaluate_dynamic_membership.evaluate_dynamic_membership_post_request_body import EvaluateDynamicMembershipPostRequestBody
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = EvaluateDynamicMembershipPostRequestBody(
member_id = "319b41e8-d9e4-42f8-bdc9-741113f48b33",
)
result = await graph_client.groups.by_group_id('group-id').evaluate_dynamic_membership.post(request_body)
Отклик
Ниже показан пример отклика.
HTTP/1.1 200 OK
Content-type: application/json
{
"membershipRule": "(user.displayName -startsWith \"EndTestUser\")",
"membershipRuleEvaluationResult": true,
"membershipRuleEvaluationDetails": {
"expressionResult": true,
"expression": "user.displayName -startsWith \"EndTestUser\"",
"propertyToEvaluate": {
"propertyName": "displayName",
"propertyValue": "EndTestUser001"
}
}
}
Пример 2. Оценка того, является ли пользователь или устройство членом группы на основе правила членства
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/beta/groups/evaluateDynamicMembership
Content-type: application/json
{
"memberId": "319b41e8-d9e4-42f8-bdc9-741113f48b33",
"membershipRule": "(user.displayName -startsWith \"EndTestUser\")"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Groups.EvaluateDynamicMembership;
var requestBody = new EvaluateDynamicMembershipPostRequestBody
{
MemberId = "319b41e8-d9e4-42f8-bdc9-741113f48b33",
MembershipRule = "(user.displayName -startsWith \"EndTestUser\")",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Groups.EvaluateDynamicMembership.PostAsync(requestBody);
mgc-beta groups evaluate-dynamic-membership post --body '{\
"memberId": "319b41e8-d9e4-42f8-bdc9-741113f48b33",\
"membershipRule": "(user.displayName -startsWith \"EndTestUser\")"\
}\
'
// 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"
graphgroups "github.com/microsoftgraph/msgraph-beta-sdk-go/groups"
//other-imports
)
requestBody := graphgroups.NewEvaluateDynamicMembershipPostRequestBody()
memberId := "319b41e8-d9e4-42f8-bdc9-741113f48b33"
requestBody.SetMemberId(&memberId)
membershipRule := "(user.displayName -startsWith \"EndTestUser\")"
requestBody.SetMembershipRule(&membershipRule)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
evaluateDynamicMembership, err := graphClient.Groups().EvaluateDynamicMembership().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.beta.groups.evaluatedynamicmembership.EvaluateDynamicMembershipPostRequestBody evaluateDynamicMembershipPostRequestBody = new com.microsoft.graph.beta.groups.evaluatedynamicmembership.EvaluateDynamicMembershipPostRequestBody();
evaluateDynamicMembershipPostRequestBody.setMemberId("319b41e8-d9e4-42f8-bdc9-741113f48b33");
evaluateDynamicMembershipPostRequestBody.setMembershipRule("(user.displayName -startsWith \"EndTestUser\")");
var result = graphClient.groups().evaluateDynamicMembership().post(evaluateDynamicMembershipPostRequestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const evaluateDynamicMembershipResult = {
memberId: '319b41e8-d9e4-42f8-bdc9-741113f48b33',
membershipRule: '(user.displayName -startsWith \"EndTestUser\")'
};
await client.api('/groups/evaluateDynamicMembership')
.version('beta')
.post(evaluateDynamicMembershipResult);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Groups\EvaluateDynamicMembership\EvaluateDynamicMembershipPostRequestBody;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new EvaluateDynamicMembershipPostRequestBody();
$requestBody->setMemberId('319b41e8-d9e4-42f8-bdc9-741113f48b33');
$requestBody->setMembershipRule('(user.displayName -startsWith \"EndTestUser\")');
$result = $graphServiceClient->groups()->evaluateDynamicMembership()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Groups
$params = @{
memberId = "319b41e8-d9e4-42f8-bdc9-741113f48b33"
membershipRule = "(user.displayName -startsWith "EndTestUser")"
}
Test-MgBetaGroupDynamicMembershipRule -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.groups.evaluate_dynamic_membership.evaluate_dynamic_membership_post_request_body import EvaluateDynamicMembershipPostRequestBody
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = EvaluateDynamicMembershipPostRequestBody(
member_id = "319b41e8-d9e4-42f8-bdc9-741113f48b33",
membership_rule = "(user.displayName -startsWith \"EndTestUser\")",
)
result = await graph_client.groups.evaluate_dynamic_membership.post(request_body)
Отклик
Ниже приводится пример отклика.
HTTP/1.1 200 OK
Content-type: application/json
{
"membershipRule": "(user.displayName -startsWith \"EndTestUser\")",
"membershipRuleEvaluationResult": true,
"membershipRuleEvaluationDetails": {
"expressionResult": true,
"expression": "user.displayName -startsWith \"EndTestUser\"",
"propertyToEvaluate": {
"propertyName": "displayName",
"propertyValue": "EndTestUser001"
}
}
}