Поделиться через


Настройка утверждений с помощью пользовательской политики утверждений Microsoft Graph (предварительная версия)

Утверждение представляет собой информацию, предложенную поставщиком удостоверений, о пользователе в составе токена, выпущенного для этого пользователя. Настройка утверждений используется администраторами клиента для настройки утверждений, добавленных в токены, для определенных приложений в своих клиентах. Настройка утверждений поддерживает настройку утверждений для приложений с помощью протоколов SAML, OAuth и OpenID Connect. Вы можете использовать настройку утверждений для:

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

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

Необходимые компоненты

  • Клиент Microsoft Entra.
  • Корпоративное приложение, настроенное в Центре администрирования Microsoft Entra.
  • Для пользователей PowerShell скачайте последний пакет SDK Для Microsoft Graph PowerShell. Этот шаг необязательный.

Настройка утверждений в идентификаторе Microsoft Entra

Идентификатор Microsoft Entra поддерживает два способа настройки утверждений с помощью Microsoft Graph/PowerShell для приложений:

В следующих примерах вы создаете, обновляете и заменяете политики для субъектов-служб. Пользовательские политики утверждений всегда связаны с объектами субъекта-службы . Перед созданием политики пользовательских утверждений для субъекта-службы необходимо настроить корпоративное приложение в рамках предварительных требований.

Откройте Microsoft Graph Explorer в браузере войдите в Microsoft Graph Explorer по крайней мере администратором приложений, выберите один из следующих сценариев.

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

Пропуск базовых утверждений из токенов

В этом примере создается настраиваемая политика утверждений, которая удаляет базовый набор утверждений из токенов, выданных связанному субъекту-службе.

  1. В Microsoft Graph Explorer определите приложение, которое вы хотите настроить настраиваемую политику утверждений для использования API субъекта-службы.

  2. Создайте политику настраиваемых утверждений, выполнив следующий API. Эта политика, связанная с субъектом-службой, исключает основные утверждения из маркеров.

    PUT https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
    

    Запрос текста.

    {
        "includeBasicClaimSet": false
    }
    
  3. Чтобы просмотреть новую политику, выполните следующую команду.

    GET https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
    

    Ответ:

    HTTP/1.1 200 OK
    Content-type: application/json
    
    {
        "@odata.context": "…",
        "id": "aaaaaaaa-bbbb-cccc-1111-222222222222.",
        "includeBasicClaimSet": false,
        "includeApplicationIdInIssuer": false,
        "audienceOverride": null,
        "groupFilter": null,
        "claims": []
    }
    

Включение и как утверждений EmployeeIDTenantCountry в токены

В этом примере создается настройка утверждений, добавляющих маркеры и TenantCountry в нееEmployeeID. В этом примере мы также добавим базовые утверждения, заданные в маркеры.

  1. В Microsoft Graph Explorer определите приложение, которое вы хотите настроить настраиваемую политику утверждений для использования API субъекта-службы.

  2. Создайте политику настраиваемых утверждений, выполнив следующий API. Эта политика, связанная с субъектом-службой, добавляет утверждения EmployeeID и TenantCountry в маркеры.

    PUT https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
    

    Запрос текста.

    {
        "includeBasicClaimSet": true,
        "claims": [
            {
                "@odata.type": "#microsoft.graph.customClaim",
                "name": "employeeId",
                "namespace": null,
                "tokenFormat": [
                    "jwt"
                ],
                "samlAttributeNameFormat": null,
                "configurations": [
                    {
                        "condition": null,
                        "attribute": {
                            "@odata.type": "#microsoft.graph.sourcedAttribute",
                            "id": " employeeid",
                            "source": "user",
                            "isExtensionAttribute": false
                        },
                        "transformations": []
                    }
                ]
            },
            {
                "@odata.type": "#microsoft.graph.customClaim",
                "name": "country",
                "namespace": null,
                "tokenFormat": [
                    "jwt"
                ],
                "samlAttributeNameFormat": null,
                "configurations": [
                    {
                        "condition": null,
                        "attribute": {
                            "@odata.type": "#microsoft.graph.sourcedAttribute",
                            "id": " tenantcountry",
                            "source": "user",
                            "isExtensionAttribute": false
                        },
                        "transformations": []
                    }
                ]
            }
        ]
    }
    
  3. Чтобы просмотреть новую политику, выполните следующую команду:

    GET https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
    

    Ответ:

    {
        "@odata.context": "…",
        "id": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "includeBasicClaimSet": true,
        "includeApplicationIdInIssuer": false,
        "audienceOverride": null,
        "groupFilter": null,
        "claims": [...]
    }
    

Использование преобразования утверждений в токенах

В этом примере вы обновляете политику, чтобы вывести пользовательское утверждение JoinedData в JWTs, выданные связанным субъектам-службам. Это утверждение содержит значение, созданное путем объединения данных, хранящихся в атрибуте extensionattribute1 в объекте пользователя с "-ext". В этом примере мы исключим набор базовых утверждений из токенов.

  1. В Microsoft Graph Explorer определите приложение, которое вы хотите настроить настраиваемую политику утверждений для использования API субъекта-службы.

  2. Создайте настраиваемую политику утверждений, выполнив следующий API. Эта политика выдает пользовательское утверждение JoinedData маркерам.

    PATCH https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
    

    Запрос текста.

    {
        "includeBasicClaimSet": true,
        "claims": 
        [
            {
                "@odata.type": "#microsoft.graph.customClaim",
                "name": "JoinedData",
                "namespace": null,
                "tokenFormat": [
                    "jwt"
                ],
                "samlAttributeNameFormat": null,
                "configurations": 
                [
                    {
                        "condition": null,
                        "attribute": null,
                        "transformations": 
                        [
                            {
                                "@odata.type": "#microsoft.graph.joinTransformation",
                                "separator": "-",
                                "input": 
                                {
                                    "treatAsMultiValue": false,
                                    "attribute": 
                                    {
                                        "@odata.type": "#microsoft.graph.sourcedAttribute",
                                        "id": "extensionattribute1",
                                        "source": "user",
                                        "isExtensionAttribute": false
                                    }
                                },
                                "input2": 
                                {
                                    "treatAsMultiValue": false,
                                    "attribute": 
                                    {
                                        "@odata.type":"#microsoft.graph.valueBasedAttribute",
                                        "value": "ext"
                                     }
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    }
    

    Примечание.

    Настраиваемая политика утверждений — это строго типизированная политика, и каждое преобразование использует другое @odata.type значение.

  3. Чтобы увидеть новую политику и получить политику ObjectId, выполните следующую команду:

    GET https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
    

    Ответ:

    {
        "@odata.context": "…",
        "id": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "includeBasicClaimSet": true,
        "includeApplicationIdInIssuer": false,
        "audienceOverride": null,
        "groupFilter": null,
        "claims": [...]
    }