Dela via


Anpassa anspråk med hjälp av Microsoft Graph Custom Claims Policy (förhandsversion)

Ett anspråk är information som en identitetsprovider anger om en användare i den token som de utfärdar för den användaren. Anspråksanpassning används av klientadministratörer för att anpassa anspråk som genereras i token för ett visst program i klientorganisationen. Anpassning av anspråk stöder konfiguration av anspråk för program med hjälp av SAML-, OAuth- och OpenID Connect-protokoll. Du kan använda anspråksanpassning för att:

  • Välj vilka anspråk som ska ingå i token.
  • Skapa anspråkstyper som inte redan finns.
  • Välj eller ändra datakällan som genereras i specifika anspråk.

I den här instruktionsguiden går vi igenom några vanliga scenarier som kan hjälpa dig att förstå hur du använder principen anpassade anspråk.

Förutsättningar

Anpassning av anspråk i Microsoft Entra-ID

Microsoft Entra ID har stöd för två sätt att anpassa anspråk med hjälp av Microsoft Graph/PowerShell för dina program:

I följande exempel skapar, uppdaterar och ersätter du principer för tjänstens huvudnamn. Anpassade anspråksprinciper är alltid länkade till objekt för tjänstens huvudnamn . Se till att du har konfigurerat ditt företagsprogram som en del av förutsättningarna innan du skapar en princip för anpassade anspråk för programmet/tjänstens huvudnamn.

Öppna Microsoft Graph Explorer i webbläsaren logga in på Microsoft Graph Explorer som minst programadministratör och välj något av följande scenarier.

När du har skapat en princip för anpassade anspråk bör du konfigurera ditt program för att bekräfta att token innehåller de anpassade anspråken. Mer information finns i Säkerhetsöverväganden.

Utelämna de grundläggande anspråken från token

I det här exemplet skapar du en anpassad anspråksprincip som tar bort den grundläggande anspråksuppsättningen från token som utfärdats till det länkade tjänstens huvudnamn.

  1. I Microsoft Graph Explorer identifierar du det program som du vill konfigurera principen för anpassade anspråk för att använda API:et för tjänstens huvudnamn.

  2. Skapa principen för anpassade anspråk genom att köra följande API. Den här principen, som är länkad till ett huvudnamn för tjänsten, utelämnar de grundläggande anspråken från token.

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

    Begärandetext:

    {
        "includeBasicClaimSet": false
    }
    
  3. Om du vill se din nya princip kör du följande kommando

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

    Svar:

    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": []
    }
    

EmployeeID Inkludera och TenantCountry som anspråk i token

I det här exemplet skapar du en anpassning till de anspråk som lägger till EmployeeID och TenantCountry till token. I det här exemplet inkluderar vi även de grundläggande anspråk som angetts i tokens.

  1. I Microsoft Graph Explorer identifierar du det program som du vill konfigurera principen för anpassade anspråk för att använda API:et för tjänstens huvudnamn.

  2. Skapa principen för anpassade anspråk genom att köra följande API. Den här principen, som är länkad till ett huvudnamn för tjänsten, lägger till EmployeeID- och TenantCountry-anspråken till token.

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

    Begärandetext:

    {
        "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. Om du vill se din nya princip kör du följande kommando:

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

    Svar:

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

Använda en anspråkstransformering i token

I det här exemplet uppdaterar du en princip för att generera ett anpassat anspråk "JoinedData" till JWT:er som utfärdats till länkade tjänsthuvudnamn. Det här anspråket innehåller ett värde som skapats genom att koppla data som lagras i attributet extensionattribute1 på användarobjektet med "-ext". I det här exemplet exkluderar vi de grundläggande anspråk som anges i token.

  1. I Microsoft Graph Explorer identifierar du det program som du vill konfigurera principen för anpassade anspråk för att använda API:et för tjänstens huvudnamn.

  2. Skapa principen för anpassade anspråk genom att köra följande API. Den här principen genererar ett anpassat anspråk JoinedData till token.

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

    Begärandetext:

    {
        "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"
                                     }
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    }
    

    Kommentar

    Anpassad anspråksprincip är en princip med stark typ och varje transformering använder ett annat @odata.type värde.

  3. Om du vill se din nya princip och hämta principen ObjectIdkör du följande kommando:

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

    Svar:

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