Freigeben über


Anpassen von Ansprüchen mit der Anspruchszuordnungsrichtlinie in Microsoft Graph

Sie können zusätzliche Benutzerattribute zu Zugriffstoken hinzufügen, damit Ihre App bessere Autorisierungsentscheidungen treffen kann. In diesem Artikel wird gezeigt, wie Sie mithilfe von Microsoft Graph-APIs eine Anspruchszuordnungsrichtlinie erstellen und zuweisen, zugriffstoken benutzerdefinierte Ansprüche hinzufügen und den benutzerdefinierten Anspruch im Token überprüfen.

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

  • Zugriff auf einen API-Client wie Graph Explorer, der mit einem Microsoft Entra Konto angemeldet ist, das über die Rolle Anwendungsadministrator verfügt und die folgenden delegierten Berechtigungen gewährt: Policy.Read.All, Policy.ReadWrite.ApplicationConfiguration und Application.ReadWrite.All.
  • Ein Clientdienstprinzipal, dem die Anspruchszuordnungsrichtlinie zugewiesen werden soll.
  • Ein Ressourcendienstprinzipal, der APIs verfügbar macht.

Erstellen einer Anspruchszuordnungsrichtlinie

Diese Richtlinie fügt dem Token den department Anspruch aus dem Benutzerobjekt hinzu.

Anforderung

POST https://graph.microsoft.com/beta/policies/claimsMappingPolicies
Content-type: application/json

{
 "definition": [
   "{\"ClaimsMappingPolicy\":{\"Version\":1,\"IncludeBasicClaimSet\":\"true\",\"ClaimsSchema\":[{\"Source\":\"user\",\"ID\":\"department\",\"JwtClaimType\":\"department\"}]}}"
 ],
 "displayName": "ExtraClaimsTest"
}

Antwort

Notieren Sie sich die ID aus der Antwort, die Weiter unten in diesem Artikel verwendet werden soll.

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#policies/claimsMappingPolicies/$entity",
  "id": "06d5d20d-2955-45f8-a15d-cf2f434b8116",
  "deletedDateTime": null,
  "definition": [
      "{\"ClaimsMappingPolicy\":{\"Version\":1,\"IncludeBasicClaimSet\":\"true\",\"ClaimsSchema\":[{\"Source\":\"user\",\"ID\":\"department\",\"JwtClaimType\":\"department\"}]}}"
  ],
  "displayName": "ExtraClaimsTest",
  "isOrganizationDefault": false
}

Sie können der Richtlinie auch mehr als ein Attribut hinzufügen. Im folgenden Beispiel werden dem Token sowohl die department Ansprüche als companyname auch hinzugefügt.

{
  "definition": [
        "{\"ClaimsMappingPolicy\":{\"Version\":1,\"IncludeBasicClaimSet\":\"true\",\"ClaimsSchema\":[{\"Source\":\"user\",\"ID\":\"department\",\"JwtClaimType\":\"department\"},{\"Source\":\"user\",\"ID\":\"companyname\",\"JwtClaimType\":\"companyname\"}]}}"
    ],
 "displayName": "ExtraClaimsTest"
}

Zuweisen der Richtlinie zu einem Ressourcendienstprinzipal

Die folgende Anforderung weist die Anspruchszuordnungsrichtlinie einem Dienstprinzipal zu. Eine erfolgreiche Antwort gibt zurück 204 No Content.

POST https://graph.microsoft.com/v1.0/servicePrincipals/3bdbbc1a-5e94-4c2b-895f-231d8af4beee/claimsMappingPolicies/$ref
Content-type: application/json

{
 "@odata.id": "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/06d5d20d-2955-45f8-a15d-cf2f434b8116"
}

Aktivieren zugeordneter Ansprüche im Ressourcenanwendungsobjekt

Aktualisieren Sie das Anwendungsobjekt, um zugeordnete Ansprüche zu akzeptieren und Zugriffstokenversion 2 zu verwenden. Eine erfolgreiche Antwort gibt zurück 204 No Content.

PATCH https://graph.microsoft.com/v1.0/applications/3dfbe85f-2d14-4660-b1a2-cb9c633ceebb
Content-type: application/json

{
  "api": {
    "acceptMappedClaims": true,
    "requestedAccessTokenVersion": 2
  }
}

Testen des Zugriffstokens

Rufen Sie in einem API-Client, mit dem Sie den Microsoft Identity Platform- und OAuth 2.0-Autorisierungscodeflows befolgen können, ein Zugriffstoken ab. Schließen Sie in den Scope-Parameter einen der Bereiche ein, die von Ihrem Ressourcendienstprinzipal verfügbar gemacht werden, zopenid profile email scope-defined-by-your-api. Bapi://00001111-aaaa-2222-bbbb-3333cccc4444/test. wo scope-defined-by-your-api sein könnte.

Verwenden Sie jwt.ms , um das Zugriffstoken zu decodieren. Der department Anspruch sollte im Token angezeigt werden.

Ressourcen bereinigen

Verwenden Sie die folgende Anforderung, um die Zuweisung der Anspruchszuordnungsrichtlinie für den Dienstprinzipal aufzuheben. Eine erfolgreiche Antwort gibt zurück 204 No Content.

DELETE https://graph.microsoft.com/v1.0/servicePrincipals/3bdbbc1a-5e94-4c2b-895f-231d8af4beee/claimsMappingPolicies//06d5d20d-2955-45f8-a15d-cf2f434b8116/$ref