Delen via


Zelfstudie: Inrichting ontwikkelen en plannen voor een SCIM-eindpunt in Microsoft Entra-id

Als toepassingsontwikkelaar kunt u het systeem gebruiken voor SCIM-gebruikersbeheer-API (Cross-Domain Identity Management) om automatische inrichting van gebruikers en groepen tussen uw toepassing en Microsoft Entra-id mogelijk te maken. In dit artikel wordt beschreven hoe u een SCIM-eindpunt bouwt en integreert met de Microsoft Entra-inrichtingsservice. De SCIM-specificatie biedt een gemeenschappelijk schema voor het inrichten van gebruikers. Wanneer SCIM wordt gebruikt met federatiestandaarden zoals SAML of OpenID Connect, biedt SCIM beheerders een end-to-end oplossing op basis van standaarden voor toegangsbeheer.

Inrichten van Microsoft Entra-id voor een app met SCIM

SCIM 2.0 is een gestandaardiseerde definitie van twee eindpunten: een /Users eindpunt en een /Groups eindpunt. Er worden algemene REST API-eindpunten gebruikt om objecten te maken, bij te werken en te verwijderen. De SCIM bestaat uit een vooraf gedefinieerd schema voor algemene kenmerken, zoals groepsnaam, gebruikersnaam, voornaam, achternaam en e-mail.

Apps die een SCIM 2.0-REST API bieden, kunnen de nadelen van het werken met een eigen API voor gebruikersbeheer verminderen of elimineren. Elke compatibele SCIM-client weet bijvoorbeeld hoe u een HTTP POST van een JSON-object naar het /Users-eind punt kunt maken om een nieuwe gebruikersvermelding te maken. Apps die voldoen aan de SCIM-standaard kunnen direct profiteren van bestaande clients, hulpprogramma's en code, in plaats van dat ze een iets andere API voor dezelfde basisacties moeten gebruiken.

Met het standaard gebruikersobjectschema en de REST-beheer-API’s die zijn gedefinieerd in SCIM 2.0 (RFC 7642, 7643, 7644) kunnen id-providers en apps gemakkelijker met elkaar worden geïntegreerd. Toepassingsontwikkelaars die een SCIM-eindpunt bouwen, kunnen deze integreren met elke SCIM-compatibele client zonder aanpassingen te doen.

Als u het inrichten voor een toepassing wilt automatiseren, moet er een SCIM-eindpunt worden gebouwd en geïntegreerd dat toegang heeft tot de Microsoft Entra-inrichtingsservice. Gebruik de volgende stappen om het inrichten van gebruikers en groepen in uw toepassing te starten.

  1. Ontwerp uw gebruikers- en groepsschema : identificeer de objecten en kenmerken van de toepassing om te bepalen hoe deze worden toegewezen aan het gebruikers- en groepsschema dat wordt ondersteund door de Microsoft Entra SCIM-implementatie.

  2. Inzicht krijgen in de Microsoft Entra SCIM-implementatie : inzicht in hoe de Microsoft Entra-inrichtingsservice wordt geïmplementeerd om de verwerking en antwoorden van uw SCIM-protocolaanvragen te modelleren.

  3. Een SCIM-eindpunt bouwen: een eindpunt moet SCIM 2.0-compatibel zijn om te integreren met de Microsoft Entra-inrichtingsservice. Als optie kunt u gebruikmaken van Microsoft Common Language Infrastructure (CLI)-bibliotheken en -codevoorbeelden om uw eindpunt te bouwen. Deze voorbeelden zijn alleen ter referentie en om te testen. We raden af om ze te gebruiken als afhankelijkheden uw productie-app.

  4. Integreer uw SCIM-eindpunt met de Microsoft Entra-inrichtingsservice. Microsoft Entra ID ondersteunt verschillende toepassingen van derden die SCIM 2.0 implementeren. Als u een van deze apps gebruikt, kunt u het inrichten en ongedaan maken van de inrichting van gebruikers en groepen snel automatiseren.

  5. [Optioneel] Publiceer uw toepassing naar de galerie met Microsoft Entra-toepassingen : maak het voor klanten gemakkelijk om uw toepassing te detecteren en eenvoudig inrichting te configureren.

Diagram met de vereiste stappen voor het integreren van een SCIM-eindpunt met Microsoft Entra-id.

Uw gebruikers- en groepsschema ontwerpen

Elke toepassing vereist verschillende kenmerken om een gebruiker of groep te maken. Start uw integratie door de vereiste objecten (gebruikers, groepen) en kenmerken (naam, manager, functie, enzovoort) te identificeren die uw toepassing nodig heeft.

De SCIM-standaard biedt een schema voor het beheren van gebruikers en groepen.

Het basisschema voor gebruikers vereist slechts drie kenmerken (alle andere kenmerken zijn optioneel):

  • id, door serviceprovider gedefinieerde id
  • userName, een unieke id voor de gebruiker (wordt over het algemeen toegewezen aan de Principal-naam van de Microsoft Entra-gebruiker)
  • meta, alleen-lezen metagegevens die worden onderhouden door de serviceprovider

Naast het basisgebruikersschema definieert de SCIM-standaard een enterprise-gebruikersextensie met een model voor het uitbreiden van het gebruikersschema om te voldoen aan de behoeften van uw toepassing.

Als uw toepassing bijvoorbeeld zowel het e-mailadres van een gebruiker als de manager van een gebruiker vereist, gebruikt u het kernschema om het e-mailadres van de gebruiker en het schema van de ondernemingsgebruiker te verzamelen om de manager van de gebruiker te verzamelen.

Volg deze stappen om uw schema te ontwerpen:

  1. Vermeld de kenmerken die uw toepassing nodig heeft en categoriseer vervolgens als kenmerken die nodig zijn voor verificatie (bijvoorbeeld loginName en e-mail). Kenmerken zijn nodig om de levenscyclus van de gebruiker te beheren (bijvoorbeeld status/actief) en alle andere kenmerken die nodig zijn om de toepassing te laten werken (bijvoorbeeld manager, tag).

  2. Controleer of de kenmerken al zijn gedefinieerd in het algemene gebruikersschema of het enterprise-gebruikersschema. Zo niet, dan moet u een extensie definiëren voor het gebruikersschema dat betrekking heeft op de ontbrekende kenmerken. Zie een voorbeeld voor een extensie voor de gebruiker om het inrichten van een gebruiker tagtoe te staan.

  3. Wijs SCIM-kenmerken toe aan de gebruikerskenmerken in Microsoft Entra-id. Als een van de kenmerken die u hebt gedefinieerd in uw SCIM-eindpunt geen duidelijke tegenhanger heeft in het Microsoft Entra-gebruikersschema, begeleidt u de tenantbeheerder om het schema uit te breiden of gebruikt u een extensiekenmerk, zoals wordt weergegeven in het voorbeeld voor de tags eigenschap.

De volgende tabel bevat een voorbeeld van vereiste kenmerken:

Vereist app-kenmerk/voorbeeld Toegewezen SCIM-kenmerk Toegewezen Microsoft Entra-kenmerk
loginName gebruikersnaam userPrincipalName
firstName name.givenName givenName
lastName name.familyName surName
workMail emails[type eq "work"].value E-mail
manager manager manager
tag urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User:tag extensionAttribute1
status actief isSoftDeleted (berekende waarde niet opgeslagen voor gebruiker)

De volgende JSON-nettolading toont een voorbeeld van een SCIM-schema:

{
     "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
      "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
      "urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User"],
     "userName":"bjensen@testuser.com",
     "id": "48af03ac28ad4fb88478",
     "externalId":"bjensen",
     "name":{
       "familyName":"Jensen",
       "givenName":"Barbara"
     },
     "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
     "manager": "123456"
   },
     "urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User": {
     "tag": "701984",
   },
   "meta": {
     "resourceType": "User",
     "created": "2010-01-23T04:56:22Z",
     "lastModified": "2011-05-13T04:42:34Z",
     "version": "W\/\"3694e05e9dff591\"",
     "location":
 "https://example.com/v2/Users/00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
   }
}   

Notitie

Naast de vereiste kenmerken voor de toepassing bevat de JSON-weergave de vereiste kenmerken id, externalId en meta.

Het helpt bij het categoriseren tussen /User en /Group toewijzen van standaardgebruikerskenmerken in Microsoft Entra-id aan de SCIM RFC. Bekijk hoe kenmerken worden toegewezen tussen Microsoft Entra ID en uw SCIM-eindpunt.

De volgende tabel bevat een voorbeeld van gebruikerskenmerken:

Microsoft Entra-gebruiker urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
IsSoftDeleted actief
afdeling urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department
displayName displayName
employeeId urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber
Facsimile-TelephoneNumber phoneNumbers[type eq "fax"].value
givenName name.givenName
jobTitle title
e-mail emails[type eq "work"].value
mailNickname externalId
manager urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager
mobiele apparaten phoneNumbers[type eq "mobile"].value
postalCode addresses[type eq "work"].postalCode
proxy-Addresses emails[type eq "other"].Value
physical-Delivery-OfficeName addresses[type eq "other"].Formatted
streetAddress addresses[type eq "work"].streetAddress
surname name.familyName
telephone-Number phoneNumbers[type eq "work"].value
user-PrincipalName gebruikersnaam

De volgende tabel bevat een voorbeeld van groepskenmerken:

Microsoft Entra-groep urn:ietf:params:scim:schemas:core:2.0:Group
displayName displayName
leden leden
objectId externalId

Notitie

U hoeft niet zowel gebruikers als groepen te ondersteunen, of alle kenmerken die hier worden weergegeven. Het is alleen een verwijzing naar de wijze waarop kenmerken in Microsoft Entra-id vaak worden toegewezen aan eigenschappen in het SCIM-protocol.

Er zijn verschillende eindpunten gedefinieerd in de SCIM RFC. U kunt beginnen met het /User-eindpunt en vervolgens van daaruit verder gaan. De volgende tabel bevat een aantal SCIM-eindpunten:

Eindpunt Beschrijving
/User Hiermee voert u CRUD-bewerkingen op een gebruikersobject uit.
/Group Hiermee voert u CRUD-bewerkingen op een groepsobject uit.
/Schemas De set kenmerken die door elke client en serviceprovider wordt ondersteund, kan variëren. De ene serviceprovider kan name, title en emails gebruiken, terwijl een andere service provider name, title en phoneNumbers gebruikt. Het eindpunt voor schema's maakt het mogelijk om de kenmerken te detecteren die worden ondersteund.
/Bulk Met bulkbewerkingen kunt u bewerkingen uitvoeren op een grote verzameling resourceobjecten in één bewerking (bijvoorbeeld lidmaatschappen bijwerken voor een grote groep).
/ServiceProviderConfig Hier vindt u informatie over de functies van de SCIM-standaard die worden ondersteund, bijvoorbeeld de resources die worden ondersteund en de verificatiemethode.
/ResourceTypes Geeft de metagegevens van elke bron aan.

Notitie

Gebruik het eindpunt /Schemas om aangepaste kenmerken te ondersteunen of als uw schema regelmatig verandert, omdat een client het meest recente schema automatisch kan ophalen. Gebruik het eindpunt /Bulk om groepen te ondersteunen.

Inzicht in de Microsoft Entra SCIM-implementatie

De Microsoft Entra-inrichtingsservice is ontworpen ter ondersteuning van een SCIM 2.0-API voor gebruikersbeheer.

Belangrijk

Het gedrag van de Microsoft Entra SCIM-implementatie is voor het laatst bijgewerkt op 18 december 2018. Zie scim 2.0-protocolnaleving van de Microsoft Entra-service voor het inrichten van gebruikers voor meer informatie over wat er is gewijzigd.

Binnen de SCIM 2.0-protocolspecificatie moet uw toepassing de volgende vereisten ondersteunen:

Vereiste Naslagnotities (SCIM-protocol)
Gebruikers maken en eventueel ook groepen Sectie 3.3
Gebruikers of groepen wijzigen met PATCH-aanvragen Sectie 3.5.2. Ondersteuning garandeert dat groepen en gebruikers op een efficiënte manier worden ingericht.
Een bekende bron ophalen voor een gebruiker of groep die eerder is gemaakt Sectie 3.4.1
Query's voor gebruikers of groepen uitvoeren Sectie 3.4.2. Standaard worden gebruikers opgehaald met hun id en opgevraagd met hun username en externalId, en groepen worden er query's op displayNameuitgevoerd.
Het filter excludedAttributes=members bij het uitvoeren van query's op de groepsbron Sectie 3.4.2.2
Ondersteuning voor het weergeven van gebruikers en paginering Sectie 3.4.2.4.
Een gebruiker active=false voorlopig verwijderen en de gebruiker herstellen active=true Het gebruikersobject moet worden geretourneerd in een aanvraag, ongeacht of de gebruiker actief is of niet. De enige keer dat de gebruiker niet mag worden geretourneerd, is wanneer deze niet uit de toepassing wordt verwijderd.
Het /Schemas-eindpunt ondersteunen Sectie 7 Het eindpunt voor schemadetectie wordt gebruikt om meer kenmerken te detecteren.
Accepteer één Bearer-token voor verificatie en autorisatie van Microsoft Entra-id voor uw toepassing.

Gebruik de algemene richtlijnen bij het implementeren van een SCIM-eindpunt om compatibiliteit met Microsoft Entra-id te garanderen:

Algemeen:

  • id is een vereiste eigenschap voor alle bronnen. Elk antwoord dat een resource retourneert, moet ervoor zorgen dat elke resource deze eigenschap heeft, met uitzondering van ListResponse nul elementen.
  • Waarden die worden verzonden, moeten worden opgeslagen in dezelfde indeling als ze zijn verzonden. Ongeldige waarden moeten worden geweigerd met een beschrijvend, uitvoerbaar foutbericht. Transformaties van gegevens mogen niet plaatsvinden tussen gegevens uit Microsoft Entra-id en gegevens die zijn opgeslagen in de SCIM-toepassing. (bijvoorbeeld. Een telefoonnummer dat is verzonden als 55555555555 mag niet worden opgeslagen/geretourneerd als +5 (555) 555-5555)
  • Het is niet nodig om de volledige bron op te nemen in het PATCH-antwoord.
  • Er is geen hoofdlettergevoelige overeenkomst vereist voor structurele elementen in SCIM, met name PATCH-bewerkingswaardenop, zoals gedefinieerd in sectie 3.5.2. Microsoft Entra ID verzendt de waarden van op toevoegen, vervangen en verwijderen.
  • Microsoft Entra ID doet aanvragen om een willekeurige gebruiker en groep op te halen om ervoor te zorgen dat het eindpunt en de referenties geldig zijn. Dit wordt ook gedaan als onderdeel van de stroom Verbinding testen .
  • Ondersteuning voor HTTPS op uw SCIM-eindpunt
  • Aangepaste complexe en multivalued kenmerken worden ondersteund, maar Microsoft Entra ID heeft niet veel complexe gegevensstructuren om gegevens uit te halen in deze gevallen. Naam-/waardekenmerken kunnen eenvoudig worden toegewezen, maar het doorstromen van gegevens naar complexe kenmerken met drie of meer subdistributies wordt niet ondersteund.
  • De subattribute waarden van complexe kenmerken met meerdere waarden moeten uniek zijn. Er kunnen bijvoorbeeld geen twee verschillende e-mailadressen zijn met het subtype 'werk'.
  • De header voor alle antwoorden moet van het inhoudstype zijn: application/scim+json

Bronnen ophalen:

  • Het antwoord op een query/filter-aanvraag moet altijd een ListResponse zijn.
  • Microsoft Entra maakt alleen gebruik van de volgende operators: eq, and
  • Het kenmerk waarop de resources kunnen worden opgevraagd, moet worden ingesteld als een overeenkomend kenmerk in de toepassing. Zie Toewijzingen van gebruikersinrichtingskenmerken aanpassen.

/Gebruikers:

  • Het kenmerk Rechten wordt niet ondersteund.
  • Alle kenmerken die als uniek worden beschouwd, moeten worden gebruikt als onderdeel van een gefilterde query. (Als de uniekheid van de gebruiker bijvoorbeeld wordt geëvalueerd voor zowel userName als e-mails[type eq "work"], moet een GET to /Users met een filter zowel userName eq "user@contoso.com" als emails[type eq "work"].value eq "user@contoso.com" query's toestaan.

/Groepen:

  • Groepen zijn optioneel, maar worden alleen ondersteund als de SCIM-implementatie PATCH-aanvragen ondersteunt.
  • Groepen moeten uniek zijn voor de waarde 'displayName' om overeen te komen met De Microsoft Entra-id en de SCIM-toepassing. De uniekheid is geen vereiste van het SCIM-protocol, maar is een vereiste voor het integreren van een SCIM-eindpunt met Microsoft Entra-id.

/Schema's (schemadetectie):

  • Voorbeeldaanvraag/reactie
  • Schemadetectie wordt gebruikt voor bepaalde galerietoepassingen. Schemadetectie is de enige methode om meer kenmerken toe te voegen aan het schema van een bestaande SCIM-toepassing in de galerie. Schemadetectie wordt momenteel niet ondersteund voor aangepaste SCIM-toepassingen die niet in de galerie zijn.
  • Als een waarde niet aanwezig is, verzendt u geen null-waarden.
  • Eigenschapswaarden moeten kameel hoofdletters zijn (bijvoorbeeld readWrite).
  • Er moet een lijstantwoord worden geretourneerd.
  • De Microsoft Entra-inrichtingsservice doet de aanvraag /schema's wanneer u de inrichtingsconfiguratie opslaat. De aanvraag wordt ook ingediend wanneer u de pagina voor het bewerken van de inrichting opent. Andere gedetecteerde kenmerken worden aan klanten weergegeven in de kenmerktoewijzingen onder de lijst met doelkenmerken. Schemadetectie leidt alleen tot meer doelkenmerken die worden toegevoegd. Kenmerken worden niet verwijderd.

Inrichting en ongedaan maken van inrichting van gebruikers

In het volgende diagram ziet u de berichten die microsoft Entra-id naar een SCIM-eindpunt verzendt om de levenscyclus van een gebruiker in het identiteitsarchief van uw toepassing te beheren.

Diagram met de inrichtingsvolgorde van de gebruiker.

Inrichting en ongedaan maken van inrichting van groepen

De inrichting en het ongedaan maken van de inrichting van groepen is optioneel. Wanneer deze is geïmplementeerd en ingeschakeld, ziet u in de volgende afbeelding de berichten die microsoft Entra-id naar een SCIM-eindpunt verzendt om de levenscyclus van een groep in het identiteitsarchief van uw toepassing te beheren. Deze berichten verschillen op twee manieren van de berichten over gebruikers:

  • Bij aanvragen voor het ophalen van groepen wordt het ledenkenmerk uitgesloten van alle resources die worden weergegeven als antwoord op de aanvraag.
  • Aanvragen om te bepalen of een verwijzingskenmerk een bepaalde waarde heeft zijn aanvragen over het ledenkenmerk.

In het volgende diagram ziet u de volgorde voor het ongedaan maken van de inrichting van groepen:

Diagram met de volgorde van het ongedaan maken van de inrichting van groepen.

Aanvragen en antwoorden van het SCIM-Protocol

Dit artikel bevat voorbeelden van SCIM-aanvragen die worden verzonden door de Microsoft Entra-inrichtingsservice en voorbeeld van verwachte antwoorden. Voor de beste resultaten moet u de app coderen om deze aanvragen in deze indeling af te handelen en de verwachte antwoorden te verzenden.

Belangrijk

Als u wilt weten hoe en wanneer de Microsoft Entra-service voor het inrichten van gebruikers de bewerkingen verzendt die in het voorbeeld worden beschreven, raadpleegt u de sectie Inrichtingscycli: Initial and incremental in How provisioning works.

Gebruikersbewerkingen

Groepsbewerkingen

Schemadetectie

Gebruikersbewerkingen

  • Gebruik userName of emails[type eq "work"] kenmerken om query's uit te voeren op gebruikers.

Create User

Aanvraag

POST /Users

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User",
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
    "externalId": "0a21f0f2-8d2a-4f8e-bf98-7363c4aed4ef",
    "userName": "Test_User_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "active": true,
    "emails": [{
        "primary": true,
        "type": "work",
        "value": "Test_User_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com"
    }],
    "meta": {
        "resourceType": "User"
    },
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName"
    },
    "roles": []
}
Respons

HTTP/1.1 201 Created

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "48af03ac28ad4fb88478",
    "externalId": "0a21f0f2-8d2a-4f8e-bf98-7363c4aed4ef",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "userName": "Test_User_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName",
    },
    "active": true,
    "emails": [{
        "value": "Test_User_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com",
        "type": "work",
        "primary": true
    }]
}

Gebruiker ophalen

Aanvraag

OPHALEN /Users/5d48a0a8e9f04aa38008

Antwoord (gebruiker gevonden)

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "5d48a0a8e9f04aa38008",
    "externalId": "58342554-38d6-4ec8-948c-50044d0a33fd",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "userName": "Test_User_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName",
    },
    "active": true,
    "emails": [{
        "value": "Test_User_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com",
        "type": "work",
        "primary": true
    }]
}
Aanvraag

GET /Users/5171a35d82074e068ce2

Antwoord (gebruiker is niet gevonden. De details zijn niet vereist, alleen de status.)

HTTP/1.1 404 niet gevonden

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:Error"
    ],
    "status": "404",
    "detail": "Resource 23B51B0E5D7AE9110A49411D@7cca31655d49f3640a494224 not found"
}

Gebruiker ophalen met query

Aanvraag

GET /Users?filter=userName eq "Test_User_00aa00aa-bb11-cc22-dd33-44eee44ee44eee"

Respons

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 1,
    "Resources": [{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
        "id": "2441309d85324e7793ae",
        "externalId": "7fce0092-d52e-4f76-b727-3955bd72c939",
        "meta": {
            "resourceType": "User",
            "created": "2018-03-27T19:59:26.000Z",
            "lastModified": "2018-03-27T19:59:26.000Z"
            
        },
        "userName": "Test_User_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "name": {
            "familyName": "familyName",
            "givenName": "givenName"
        },
        "active": true,
        "emails": [{
            "value": "Test_User_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com",
            "type": "work",
            "primary": true
        }]
    }],
    "startIndex": 1,
    "itemsPerPage": 20
}

Gebruiker ophalen met query: nul resultaten

Aanvraag

GET /Users?filter=userName eq "non-existent user"

Respons

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 0,
    "Resources": [],
    "startIndex": 1,
    "itemsPerPage": 20
}

Gebruiker bijwerken [eigenschappen met meerdere waarden]

Aanvraag

PATCH/users/6764549bef60420686bc HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
            {
            "op": "Replace",
            "path": "emails[type eq \"work\"].value",
            "value": "updatedEmail@microsoft.com"
            },
            {
            "op": "Replace",
            "path": "name.familyName",
            "value": "updatedFamilyName"
            }
    ]
}
Respons

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "6764549bef60420686bc",
    "externalId": "6c75de36-30fa-4d2d-a196-6bdcdb6b6539",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "userName": "Test_User_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "name": {
        "formatted": "givenName updatedFamilyName",
        "familyName": "updatedFamilyName",
        "givenName": "givenName"
    },
    "active": true,
    "emails": [{
        "value": "updatedEmail@microsoft.com",
        "type": "work",
        "primary": true
    }]
}

Gebruiker bijwerken [eigenschappen met één waarde]

Aanvraag

PATCH /Users/5171a35d82074e068ce2 HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [{
        "op": "Replace",
        "path": "userName",
        "value": "5b50642d-79fc-4410-9e90-4c077cdd1a59@testuser.com"
    }]
}
Respons

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "5171a35d82074e068ce2",
    "externalId": "aa1eca08-7179-4eeb-a0be-a519f7e5cd1a",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
        
    },
    "userName": "5b50642d-79fc-4410-9e90-4c077cdd1a59@testuser.com",
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName",
    },
    "active": true,
    "emails": [{
        "value": "Test_User_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com",
        "type": "work",
        "primary": true
    }]
}

Gebruiker uitschakelen

Aanvraag

PATCH /Users/5171a35d82074e068ce2 HTTP/1.1

{
    "Operations": [
        {
            "op": "Replace",
            "path": "active",
            "value": false
        }
    ],
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ]
}
Respons
{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "id": "CEC50F275D83C4530A495FCF@834d0e1e5d8235f90a495fda",
    "userName": "deanruiz@testuser.com",
    "name": {
        "familyName": "Harris",
        "givenName": "Larry"
    },
    "active": false,
    "emails": [
        {
            "value": "gloversuzanne@testuser.com",
            "type": "work",
            "primary": true
        }
    ],
    "addresses": [
        {
            "country": "ML",
            "type": "work",
            "primary": true
        }
    ],
    "meta": {
        "resourceType": "Users",
        "location": "/scim/5171a35d82074e068ce2/Users/CEC50F265D83B4530B495FCF@5171a35d82074e068ce2"
    }
}

Gebruiker verwijderen

Aanvraag

DELETE /Users/5171a35d82074e068ce2 HTTP/1.1

Respons

HTTP/1.1 204 No Content

Groepsbewerkingen

  • Groepen worden gemaakt met een lege ledenlijst.
  • Gebruik het displayName kenmerk om query's uit te voeren op groepen.
  • Het bijwerken van de PATCH-aanvraag van de groep moet een HTTP 204 No Content opleveren in het antwoord. Het is niet aan te raden om een instantie terug te sturen met een lijst van alle leden.
  • Het is niet nodig om alle leden van de groep te retourneren.

Groep maken

Aanvraag

POST /Groups HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group", "http://schemas.microsoft.com/2006/11/ResourceManagement/ADSCIM/2.0/Group"],
    "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159",
    "displayName": "displayName",
    "meta": {
        "resourceType": "Group"
    }
}
Respons

HTTP/1.1 201 Created

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
    "id": "927fa2c08dcb4a7fae9e",
    "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159",
    "meta": {
        "resourceType": "Group",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
        
    },
    "displayName": "displayName",
    "members": []
}

Groep ophalen

Aanvraag

GET /Groups/40734ae655284ad3abcc?excludedAttributes=members HTTP/1.1

Respons

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
    "id": "40734ae655284ad3abcc",
    "externalId": "60f1bb27-2e1e-402d-bcc4-ec999564a194",
    "meta": {
        "resourceType": "Group",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "displayName": "displayName",
}

Groep ophalen met displayName

Aanvraag

GET /Groups?excludedAttributes=members&filter=displayName eq "displayName" HTTP/1.1

Respons

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 1,
    "Resources": [{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
        "id": "8c601452cc934a9ebef9",
        "externalId": "0db508eb-91e2-46e4-809c-30dcbda0c685",
        "meta": {
            "resourceType": "Group",
            "created": "2018-03-27T22:02:32.000Z",
            "lastModified": "2018-03-27T22:02:32.000Z",
            
        },
        "displayName": "displayName",
    }],
    "startIndex": 1,
    "itemsPerPage": 20
}

Groep bijwerken [niet-leden kenmerken]

Aanvraag

PATCH/groups/fa2ce26709934589afc5 HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [{
        "op": "Replace",
        "path": "displayName",
        "value": "1879db59-3bdf-4490-ad68-ab880a269474updatedDisplayName"
    }]
}
Respons

HTTP/1.1 204 No Content

Groep bijwerken [Leden toevoegen]

Aanvraag

PATCH /Groups/a99962b9f99d4c4fac67 HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [{
        "op": "Add",
        "path": "members",
        "value": [{
            "$ref": null,
            "value": "f648f8d5ea4e4cd38e9c"
        }]
    }]
}
Respons

HTTP/1.1 204 No Content

Groep bijwerken [Leden verwijderen]

Aanvraag

PATCH /Groups/a99962b9f99d4c4fac67 HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [{
        "op": "Remove",
        "path": "members",
        "value": [{
            "$ref": null,
            "value": "f648f8d5ea4e4cd38e9c"
        }]
    }]
}
Respons

HTTP/1.1 204 No Content

Groep verwijderen

Aanvraag

DELETE /Groups/cdb1ce18f65944079d37 HTTP/1.1

Respons

HTTP/1.1 204 No Content

Schemadetectie

Schema detecteren

Aanvraag

GET /Schema's

Respons

HTTP/1.1 200 OK

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "itemsPerPage": 50,
    "startIndex": 1,
    "totalResults": 3,
    "Resources": [
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Schema"],
    "id" : "urn:ietf:params:scim:schemas:core:2.0:User",
    "name" : "User",
    "description" : "User Account",
    "attributes" : [
      {
        "name" : "userName",
        "type" : "string",
        "multiValued" : false,
        "description" : "Unique identifier for the User, typically
used by the user to directly authenticate to the service provider.
Each User MUST include a non-empty userName value.  This identifier
MUST be unique across the service provider's entire set of Users.
REQUIRED.",
        "required" : true,
        "caseExact" : false,
        "mutability" : "readWrite",
        "returned" : "default",
        "uniqueness" : "server"
      },                
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" :
        "/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:User"
    }
  },
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Schema"],
    "id" : "urn:ietf:params:scim:schemas:core:2.0:Group",
    "name" : "Group",
    "description" : "Group",
    "attributes" : [
      {
        "name" : "displayName",
        "type" : "string",
        "multiValued" : false,
        "description" : "A human-readable name for the Group.
REQUIRED.",
        "required" : false,
        "caseExact" : false,
        "mutability" : "readWrite",
        "returned" : "default",
        "uniqueness" : "none"
      },
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" :
        "/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Group"
    }
  },
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Schema"],
    "id" : "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
    "name" : "EnterpriseUser",
    "description" : "Enterprise User",
    "attributes" : [
      {
        "name" : "employeeNumber",
        "type" : "string",
        "multiValued" : false,
        "description" : "Numeric or alphanumeric identifier assigned
to a person, typically based on order of hire or association with an
organization.",
        "required" : false,
        "caseExact" : false,
        "mutability" : "readWrite",
        "returned" : "default",
        "uniqueness" : "none"
      },
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" :
"/v2/Schemas/urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
    }
  }
]
}

Beveiligingsvereisten

TLS Protocol Versions

De enige acceptabele protocolversie is TLS 1.2. Er is geen andere SSL/TLS-versie toegestaan.

  • RSA-sleutels moeten ten minste 2048 bits zijn.
  • ECC-sleutels moeten ten minste 256 bits zijn en worden gegenereerd met behulp van een goedgekeurde elliptische curve

Sleutellengten

Alle services moeten X.509-certificaten gebruiken die zijn gegenereerd met cryptografische sleutels van voldoende lengte, wat betekent:

Coderingssuites

Alle services moeten worden geconfigureerd voor gebruik van de volgende coderingssuites, in de exacte volgorde die in het voorbeeld is opgegeven. Als u alleen een RSA-certificaat hebt, heeft de ECDSA-coderingssuites geen effect.

Minimale staaf voor TLS 1.2-coderingssuites:

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

IP-bereiken

De Microsoft Entra-inrichtingsservice werkt momenteel onder de IP-bereiken voor Microsoft Entra-id, zoals hier wordt vermeld. U kunt de IP-bereiken onder de AzureActiveDirectory tag toevoegen om verkeer van de Microsoft Entra-inrichtingsservice toe te staan in uw toepassing. U moet de lijst met IP-bereiken zorgvuldig bekijken voor berekende adressen. Een adres zoals '40.126.25.32' kan worden weergegeven in de lijst met IP-bereiken als '40.126.0.0/18'. U kunt de lijst IP-bereik ook programmatisch ophalen met behulp van de volgende API.

Microsoft Entra ID ondersteunt ook een oplossing op basis van een agent om connectiviteit te bieden met toepassingen in privénetwerken (on-premises, gehost in Azure, gehost in AWS, enzovoort). Klanten kunnen een lichtgewicht agent implementeren, die connectiviteit biedt met Microsoft Entra ID zonder binnenkomende poorten te openen, op een server in hun privénetwerk. U vindt hier meer informatie.

Een SCIM-eindpunt bouwen

Nu u uw schema hebt ontworpen en de Microsoft Entra SCIM-implementatie begrijpt, kunt u aan de slag met het ontwikkelen van uw SCIM-eindpunt. In plaats van helemaal zelf te beginnen en de implementatie volledig te bouwen, kunt u vertrouwen op veel open source SCIM-bibliotheken die zijn gepubliceerd door de SCIM-community.

Zie Een voorbeeld voor SCIM-eindpunt ontwikkelen voor hulp bij het bouwen van een SCIM-eindpunt, inclusief voorbeelden.

Het voorbeeld van open source .NET Core-referentiecode dat is gepubliceerd door het Microsoft Entra-inrichtingsteam, is een dergelijke resource waarmee u snel aan de slag kunt met uw ontwikkeling. Bouw een SCIM-eindpunt en test het vervolgens door de verstrekte voorbeeldaanvragen/antwoorden uit te voeren.

Notitie

De referentiecode is bedoeld om u te helpen aan de slag te gaan met het bouwen van uw SCIM-eindpunt en wordt 'AS IS' opgegeven. Bijdragen van de gemeenschap zijn welkom bij het bouwen en onderhouden van de code.

De oplossing bestaat uit twee projecten Microsoft.SCIM en Microsoft.SCIM.WebHostSample.

Het Microsoft.SCIM-project is de bibliotheek waarin de onderdelen van de webservice worden gedefinieerd die voldoen aan de SCIM-specificatie. Het declareert de interface Microsoft.SCIM.IProvider, aanvragen worden omgezet in aanroepen naar de methoden van de provider, die zouden worden geprogrammeerd voor gebruik in een identiteitsarchief.

Uitsplitsing: een aanvraag omgezet in aanroepen naar de methoden van de provider

Het project Microsoft.SCIM.WebHostSample is een ASP.NET Core-webtoepassing op basis van de sjabloon Leeg . Hiermee kan de voorbeeldcode worden geïmplementeerd als zelfstandig, gehost in containers of in Internet Information Services. Het implementeert ook de Microsoft.SCIM.IProvider-interface waarbij klassen in het geheugen worden bewaard als een voorbeeld van een identiteitsopslag.

public class Startup
{
    ...
    public IMonitor MonitoringBehavior { get; set; }
    public IProvider ProviderBehavior { get; set; }

    public Startup(IWebHostEnvironment env, IConfiguration configuration)
    {
        ...
        this.MonitoringBehavior = new ConsoleMonitor();
        this.ProviderBehavior = new InMemoryProvider();
    }
    ...

Een aangepast SCIM-eindpunt bouwen

Het SCIM-eindpunt moet een HTTP-adres en serververificatiecertificaat hebben waarvan de basiscertificeringsinstantie een van de volgende namen heeft:

  • CNNIC
  • Comodo
  • Cyber Trust
  • DigiCert
  • GeoTrust
  • GlobalSign
  • Go Daddy
  • VeriSign
  • WoSign
  • DST Root CA X3

De .NET Core SDK bevat een HTTPS-ontwikkelingscertificaat dat tijdens de ontwikkeling wordt gebruikt. Het certificaat wordt geïnstalleerd als onderdeel van de first-run-ervaring. Afhankelijk van hoe u de ASP.NET Core-webtoepassing uitvoert, luistert deze naar een andere poort:

  • Microsoft.SCIM.WebHostSample: https://localhost:5001
  • IIS Express: https://localhost:44359

Gebruik de volgende koppeling voor meer informatie over HTTPS in ASP.NET Core: HTTPS afdwingen in ASP.NET Core

Verificatie van eindpunt afhandelen

Aanvragen van de Microsoft Entra-inrichtingsservice bevatten een OAuth 2.0 Bearer-token. Een autorisatieserver geeft het bearer-token uit. Microsoft Entra ID is een voorbeeld van een vertrouwde autorisatieserver. Configureer de Microsoft Entra-inrichtingsservice om een van de volgende tokens te gebruiken:

  • Een bearer-token met een lange levensduur. Als voor het SCIM-eindpunt een OAuth Bearer-token van een andere verlener dan Microsoft Entra-id is vereist, kopieert u het vereiste OAuth Bearer-token naar het optionele token voor geheim. In een ontwikkelomgeving kunt u het testtoken van het /scim/token eindpunt gebruiken. Testtokens mogen niet worden gebruikt in productieomgevingen.

  • Microsoft Entra bearer-token. Als het veld Token voor geheim leeg blijft, bevat De Microsoft Entra-id een OAuth Bearer-token dat is uitgegeven vanuit Microsoft Entra-id bij elke aanvraag. Apps die Gebruikmaken van Microsoft Entra ID als id-provider kunnen dit door Microsoft Entra ID uitgegeven token valideren.

    • De toepassing die aanvragen ontvangt, moet de tokenverlener valideren als Microsoft Entra-id voor een verwachte Microsoft Entra-tenant.
    • Een iss claim identificeert de uitgever van het token. Bijvoorbeeld: "iss":"https://sts.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/". In dit voorbeeld identificeert het basisadres van de claimwaarde https://sts.windows.net Microsoft Entra-id als de uitgever, terwijl het relatieve adressegment aaaabbbb-0000-cccc-1111-dddd2222eeeee een unieke id is van de Microsoft Entra-tenant waarvoor het token is uitgegeven.
    • De doelgroep voor een token is de toepassings-id voor de toepassing in de galerie. Toepassingen die zijn geregistreerd in één tenant, ontvangen dezelfde iss claim met SCIM-aanvragen. De toepassings-id voor alle aangepaste apps is 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Het token dat is gegenereerd door de Microsoft Entra-id mag alleen worden gebruikt voor het testen. Deze mag niet worden gebruikt in productieomgevingen.

In de voorbeeldcode worden aanvragen geverifieerd met het pakket Microsoft.AspNetCore.Authentication.JwtBearer package. De volgende code dwingt af dat aanvragen voor een van de eindpunten van de service worden geverifieerd met behulp van het Bearer-token dat is uitgegeven door Microsoft Entra ID voor een opgegeven tenant:

public void ConfigureServices(IServiceCollection services)
{
    if (_env.IsDevelopment())
    {
        ...
    }
    else
    {
        services.AddAuthentication(options =>
        {
            options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        })
            .AddJwtBearer(options =>
            {
                options.Authority = " https://sts.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/";
                options.Audience = "8adf8e6e-67b2-4cf2-a259-e3dc5476c621";
                ...
            });
    }
    ...
}

public void Configure(IApplicationBuilder app)
{
    ...
    app.UseAuthentication();
    app.UseAuthorization();
    ...
}

De voorbeeldcode maakt gebruik van ASP.NET Core-omgevingen om de verificatie-opties tijdens de ontwikkelingsfase te wijzigen en het gebruik van een zelfondertekend token in te schakelen.

Zie Meerdere omgevingen gebruiken in ASP.NET Core voor meer informatie over meerdere omgevingen in ASP.NET Core.

Met de volgende code wordt afgedwongen dat aanvragen voor een van de eindpunten van de service worden geverifieerd met behulp van een Bearer-token dat is ondertekend met een aangepaste sleutel:

public void ConfigureServices(IServiceCollection services)
{
    if (_env.IsDevelopment())
    {
        services.AddAuthentication(options =>
        {
            options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        })
        .AddJwtBearer(options =>
        {
            options.TokenValidationParameters =
                new TokenValidationParameters
                {
                    ValidateIssuer = false,
                    ValidateAudience = false,
                    ValidateLifetime = false,
                    ValidateIssuerSigningKey = false,
                    ValidIssuer = "Microsoft.Security.Bearer",
                    ValidAudience = "Microsoft.Security.Bearer",
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("A1B2C3D4E5F6A1B2C3D4E5F6"))
                };
        });
    }
...

Verzend een GET-aanvraag naar de tokencontroller om een geldig Bearer-token op te halen. De methode GenerateJSONWebToken is verantwoordelijk voor het maken van een token dat overeenkomt met de parameters die zijn geconfigureerd voor ontwikkeling:

private string GenerateJSONWebToken()
{
    // Create token key
    SymmetricSecurityKey securityKey =
        new SymmetricSecurityKey(Encoding.UTF8.GetBytes("A1B2C3D4E5F6A1B2C3D4E5F6"));
    SigningCredentials credentials =
        new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

    // Set token expiration
    DateTime startTime = DateTime.UtcNow;
    DateTime expiryTime = startTime.AddMinutes(120);

    // Generate the token
    JwtSecurityToken token =
        new JwtSecurityToken(
            "Microsoft.Security.Bearer",
            "Microsoft.Security.Bearer",
            null,
            notBefore: startTime,
            expires: expiryTime,
            signingCredentials: credentials);

    string result = new JwtSecurityTokenHandler().WriteToken(token);
    return result;
}

Inrichting en het ongedaan maken van de inrichting van gebruikers afhandelen

Voorbeeld 1. een query uitvoeren op de service voor een overeenkomende gebruiker

Microsoft Entra ID voert een query uit op de service voor een gebruiker met een externalId kenmerkwaarde die overeenkomt met de mailNickname-kenmerkwaarde van een gebruiker in Microsoft Entra-id. De query wordt uitgedrukt als een HTTP-aanvraag (Hypertext Transfer Protocol), zoals in dit voorbeeld, waarbij jyoung een voorbeeld is van een mailNickname van een gebruiker in Microsoft Entra ID.

Notitie

Dit is een voorbeeld. Niet alle gebruikers hebben een mailnickname-kenmerk en de waarde die een gebruiker heeft, is mogelijk niet uniek in de Directory. Daarnaast kan het kenmerk dat wordt gebruikt voor overeenkomende kenmerken (in dit geval) externalIdworden geconfigureerd in de kenmerktoewijzingen van Microsoft Entra.

GET https://.../scim/Users?filter=externalId eq jyoung HTTP/1.1
 Authorization: Bearer ...

In de voorbeeldcode wordt de aanvraag omgezet in een aanroep naar de QueryAsync-methode van de provider van de service. Dit is de handtekening van die methode:

// System.Threading.Tasks.Tasks is defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in 
// Microsoft.SCIM.Service.  
// Microsoft.SCIM.Resource is defined in 
// Microsoft.SCIM.Schemas.  
// Microsoft.SCIM.IQueryParameters is defined in 
// Microsoft.SCIM.Protocol.  

Task<Resource[]> QueryAsync(IRequest<IQueryParameters> request);

In deze voorbeeldquery voor een gebruiker met een opgegeven waarde voor het kenmerk externalId zijn de waarden van de argumenten die zijn doorgegeven aan de methode QueryAsync:

  • Parameters. AlternateFilters.Count: 1
  • parameters.AlternateFilters.ElementAt(0).AttributePath: "externalId"
  • Parameters. AlternateFilters.ElementAt(0). ComparisonOperator: ComparisonOperator.Equals
  • parameters.AlternateFilter.ElementAt(0).ComparisonValue: "jyoung"

Voorbeeld 2. Een gebruiker inrichten

Als het antwoord op een query naar het SCIM-eindpunt voor een gebruiker met een externalId kenmerkwaarde die overeenkomt met de mailNickname-kenmerkwaarde van een gebruiker geen gebruikers retourneert, vraagt Microsoft Entra ID aan dat de service een gebruiker inricht die overeenkomt met die in Microsoft Entra-id. Hier volgt een voorbeeld van een dergelijke aanvraag:

POST https://.../scim/Users HTTP/1.1
Authorization: Bearer ...
Content-type: application/scim+json
{
   "schemas":
   [
     "urn:ietf:params:scim:schemas:core:2.0:User",
     "urn:ietf:params:scim:schemas:extension:enterprise:2.0User"],
   "externalId":"jyoung",
   "userName":"jyoung@testuser.com",
   "active":true,
   "addresses":null,
   "displayName":"Joy Young",
   "emails": [
     {
       "type":"work",
       "value":"jyoung@Contoso.com",
       "primary":true}],
   "meta": {
     "resourceType":"User"},
    "name":{
     "familyName":"Young",
     "givenName":"Joy"},
   "phoneNumbers":null,
   "preferredLanguage":null,
   "title":null,
   "department":null,
   "manager":null}

In de voorbeeldcode wordt de aanvraag omgezet in een aanroep naar de Methode CreateAsync van de provider van de service. Dit is de handtekening van die methode:

// System.Threading.Tasks.Tasks is defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in 
// Microsoft.SCIM.Service.  
// Microsoft.SCIM.Resource is defined in 
// Microsoft.SCIM.Schemas.  

Task<Resource> CreateAsync(IRequest<Resource> request);

In een aanvraag voor het inrichten van gebruikers is de waarde van het resourceargument een exemplaar van de Microsoft.SCIM.Core2EnterpriseUser klasse. Deze klasse wordt gedefinieerd in de Microsoft.SCIM.Schemas bibliotheek. Als de aanvraag voor het inrichten van de gebruiker slaagt, wordt verwacht dat de implementatie van de methode een exemplaar van de Microsoft.SCIM.Core2EnterpriseUser klasse retourneert. De waarde van de Identifier eigenschap wordt ingesteld op de unieke id van de zojuist ingerichte gebruiker.

Voorbeeld 3. De huidige status van een gebruiker opvragen

Microsoft Entra ID vraagt de huidige status van de opgegeven gebruiker van de service aan met een aanvraag zoals:

GET ~/scim/Users/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 HTTP/1.1
Authorization: Bearer ...

In de voorbeeldcode wordt de aanvraag omgezet in een aanroep naar de methode RetrieveAsync van de provider van de service. Dit is de handtekening van die methode:

// System.Threading.Tasks.Tasks is defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in 
// Microsoft.SCIM.Service.  
// Microsoft.SCIM.Resource and 
// Microsoft.SCIM.IResourceRetrievalParameters 
// are defined in Microsoft.SCIM.Schemas 

Task<Resource> RetrieveAsync(IRequest<IResourceRetrievalParameters> request);

In het voorbeeld van een aanvraag, om de huidige status van een gebruiker op te halen, zijn de waarden van de eigenschappen van het object dat is opgegeven als de waarde van het parameterargument als volgt:

  • Id: "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1e1e1e1"
  • SchemaIdentifier: urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

Voorbeeld 4. Een query uitvoeren op de waarde van een verwijzingskenmerk dat moet worden bijgewerkt

Microsoft Entra ID controleert de huidige kenmerkwaarde in het identiteitsarchief voordat deze wordt bijgewerkt. Alleen het kenmerk Manager is echter de eerste controle voor gebruikers. Hier volgt een voorbeeld van een aanvraag om te bepalen of het managerkenmerk van een gebruikersobject momenteel een bepaalde waarde heeft: In de voorbeeldcode wordt de aanvraag omgezet in een aanroep van de QueryAsync-methode van de provider van de service. De waarde van de eigenschappen van het object die wordt opgegeven als de waarde van het argument parameters, is als volgt:

  • Parameters. AlternateFilters.Count: 2
  • Parameters. AlternateFilters.ElementAt(x). AttributePath: "ID"
  • Parameters. AlternateFilters.ElementAt(x). ComparisonOperator: ComparisonOperator.Equals
  • Parameters. AlternateFilter.ElementAt(x). ComparisonValue: "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1e1e1"
  • parameters.AlternateFilters.ElementAt(y).AttributePath: "manager"
  • Parameters. AlternateFilters.ElementAt(y). ComparisonOperator: ComparisonOperator.Equals
  • Parameters. AlternateFilter.ElementAt(y). ComparisonValue: "00aa00aa-bb11-cc22-dd33-44eee44ee44eee"
  • Parameters. RequestedAttributePaths.ElementAt(0): "ID"
  • Parameters. SchemaIdentifier: urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

De waarde van de index x kan zijn 0 en de waarde van de index y kan zijn 1. Of de waarde van x kan zijn 1 en de waarde van y kan zijn 0. Dit is afhankelijk van de volgorde van de expressies van de filterqueryparameter.

Voorbeeld 5. Aanvraag van Microsoft Entra-id naar een SCIM-eindpunt om een gebruiker bij te werken

Hier volgt een voorbeeld van een aanvraag van Microsoft Entra-id naar een SCIM-eindpunt om een gebruiker bij te werken:

PATCH ~/scim/Users/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 HTTP/1.1
Authorization: Bearer ...
Content-type: application/scim+json
{
    "schemas": 
    [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations":
    [
      {
        "op":"Add",
        "path":"manager",
        "value":
          [
            {
              "$ref":"http://.../scim/Users/00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
              "value":"00aa00aa-bb11-cc22-dd33-44ee44ee44ee"}]}]}

In de voorbeeldcode wordt de aanvraag omgezet in een aanroep naar de UpdateAsync-methode van de serviceprovider. Dit is de handtekening van die methode:

// System.Threading.Tasks.Tasks and 
// System.Collections.Generic.IReadOnlyCollection<T>  // are defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in
// Microsoft.SCIM.Service.
// Microsoft.SCIM.IPatch, 
// is defined in Microsoft.SCIM.Protocol. 

Task UpdateAsync(IRequest<IPatch> request);

In het voorbeeld van een aanvraag heeft het object dat is opgegeven als de waarde van het patchargument de volgende eigenschapswaarden om een gebruiker bij te werken:

Argument Weergegeven als
ResourceIdentifier.Identifier "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1e1e1"
ResourceIdentifier.SchemaIdentifier urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
(PatchRequest as PatchRequest2).Operations.Count 1
(PatchRequest as PatchRequest2).Operations.ElementAt(0).OperationName OperationName.Add
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Path.AttributePath Manager
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.Count 1
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.ElementAt(0).Reference http://.../scim/Users/00aa00aa-bb11-cc22-dd33-44ee44ee44ee
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.ElementAt(0).Value 00aa00aa-bb11-cc22-dd33-44eee44ee44e

Voorbeeld 6. Inrichting van een gebruiker verwijderen

Als u de inrichting van een gebruiker wilt ongedaan maken vanuit een identiteitsarchief dat wordt uitgevoerd door een SCIM-eindpunt, verzendt Microsoft Entra-id een aanvraag zoals:

DELETE ~/scim/Users/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 HTTP/1.1
Authorization: Bearer ...

In de voorbeeldcode wordt de aanvraag omgezet in een aanroep naar de DeleteAsync-methode van de provider van de service. Dit is de handtekening van die methode:

// System.Threading.Tasks.Tasks is defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in 
// Microsoft.SCIM.Service.  
// Microsoft.SCIM.IResourceIdentifier, 
// is defined in Microsoft.SCIM.Protocol. 

Task DeleteAsync(IRequest<IResourceIdentifier> request);

Het object dat als waarde voor het argument resourceIdentifier wordt gegeven, heeft de volgende eigenschapswaarden in het voorbeeld van een aanvraag om de inrichting van een gebruiker ongedaan te maken:

  • ResourceIdentifier.Identifier: "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
  • ResourceIdentifier.SchemaIdentifier: urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

Uw SCIM-eindpunt integreren met de Microsoft Entra-inrichtingsservice

Microsoft Entra-id kan worden geconfigureerd om automatisch toegewezen gebruikers en groepen in te richten voor toepassingen die een specifiek profiel van het SCIM 2.0-protocol implementeren. De details van het profiel worden beschreven in De Microsoft Entra SCIM-implementatie.

Neem contact op met uw toepassingsprovider of de documentatie van uw toepassingsprovider voor instructies over de compatibiliteit met deze vereisten.

Belangrijk

De Microsoft Entra SCIM-implementatie is gebouwd op de Microsoft Entra-service voor het inrichten van gebruikers, die is ontworpen om gebruikers voortdurend synchroon te houden tussen Microsoft Entra ID en de doeltoepassing, en implementeert een zeer specifieke set standaardbewerkingen. Het is belangrijk om dit gedrag te begrijpen om inzicht te hebben in het gedrag van de Microsoft Entra-inrichtingsservice. Zie voor meer informatie de sectie Inrichtingscycli: Initiële en incrementele in hoe inrichting werkt.

Aan de slag

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

Toepassingen die ondersteuning bieden voor het SCIM-profiel dat in dit artikel wordt beschreven, kunnen worden verbonden met Microsoft Entra-id met behulp van de functie 'toepassing niet-galerie' in de Microsoft Entra-toepassingsgalerie. Zodra de verbinding is gemaakt, voert Microsoft Entra ID een synchronisatieproces uit. Het proces wordt elke 40 minuten uitgevoerd. Het proces voert een query uit op het SCIM-eindpunt van de toepassing voor toegewezen gebruikers en groepen en maakt of wijzigt deze op basis van de toewijzingsgegevens.

Verbinding maken met een toepassing die ondersteuning biedt voor SCIM:

  1. Meld u als toepassingsbeheerder aan bij het Microsoft Entra-beheercentrum.

  2. Blader naar Bedrijfstoepassingen voor identiteitstoepassingen>>.

  3. Er wordt een lijst met alle geconfigureerde apps weergegeven, met inbegrip van apps die zijn toegevoegd vanuit de galerie.

  4. Selecteer + Nieuwe toepassing>+ Uw eigen toepassing maken.

  5. Voer een naam in voor uw toepassing, kies de optie 'Alle andere toepassingen integreren die u niet in de galerie vindt' en selecteer dan Toevoegen om een app-object te maken. De nieuwe app wordt toegevoegd aan de lijst met bedrijfstoepassingen en wordt geopend op het scherm voor het beheren van apps.

    In de volgende schermopname ziet u de galerie met Microsoft Entra-toepassingen:

    Schermopname van de galerie met Microsoft Entra-toepassingen.

  6. Selecteer in het scherm voor het beheren van apps Inrichting in het linker deelvenster.

  7. Selecteer Automatischin het menu Inrichtingsmodus.

    In de volgende schermopname ziet u de configuratie-instellingen voor inrichting in het Microsoft Entra-beheercentrum:

    Schermopname van de pagina app-inrichting in het Microsoft Entra-beheercentrum.

  8. Voer in het veld Tenant-URL de URL in van het SCIM-eindpunt van de toepassing. Voorbeeld: https://api.contoso.com/scim/

  9. Als voor het SCIM-eindpunt een OAuth Bearer-token van een andere verlener dan Microsoft Entra-id is vereist, kopieert u het vereiste OAuth Bearer-token naar het optionele token voor geheim. Als dit veld leeg blijft, bevat Microsoft Entra-id bij elke aanvraag een OAuth Bearer-token dat is uitgegeven vanuit Microsoft Entra-id. Apps die Gebruikmaken van Microsoft Entra ID als id-provider kunnen dit door Microsoft Entra ID uitgegeven token valideren.

    Notitie

    Het is niet raadzaam dit veld leeg te laten en te vertrouwen op een token dat is gegenereerd door Microsoft Entra-id. Deze optie is voornamelijk beschikbaar voor testdoeleinden.

  10. Selecteer Verbinding testen om Microsoft Entra ID verbinding te laten maken met het SCIM-eindpunt. Als de poging mislukt, wordt er informatie over de fout weergegeven.

    Notitie

    Test connection query's op het SCIM-eindpunt voor een gebruiker die niet bestaat, met behulp van een willekeurige GUID als de overeenkomende eigenschap die is geselecteerd in de Microsoft Entra-configuratie. Het verwachte juiste antwoord is HTTP 200 OK met een leeg SCIM ListResponse-bericht.

  11. Als de pogingen om verbinding te maken met de toepassing slagen, selecteert u Opslaan om de beheerdersreferenties op te slaan.

  12. In de sectie Toewijzingen zijn er twee sets kenmerktoewijzingen: een voor gebruikersobjecten en één voor groepsobjecten. Selecteer elk kenmerk om de kenmerken te controleren die vanuit Microsoft Entra-id met uw app worden gesynchroniseerd. De kenmerken die als overeenkomende eigenschappen zijn geselecteerd, worden gebruikt om de gebruikers en groepen in uw app te vinden voor updatebewerkingen. Selecteer Opslaan om eventuele wijzigingen toe te passen.

    Notitie

    U kunt de synchronisatie van groepsobjecten eventueel uitschakelen door de toewijzing van groepen uit te schakelen.

  13. Onder Instellingenwordt in het veld Bereik gedefinieerd welke gebruikers en groepen worden gesynchroniseerd. Selecteer Alleen toegewezen gebruikers en groepen (aanbevolen) om gebruikers en groepen te synchroniseren die zijn toegewezen op het tabblad Gebruikers en groepen.

  14. Nadat de configuratie is voltooid, stelt u de Inrichtingsstatus in op Aan.

  15. Selecteer Opslaan om de Microsoft Entra-inrichtingsservice te starten.

  16. Als alleen toegewezen gebruikers en groepen worden gesynchroniseerd (aanbevolen), selecteert u het tabblad Gebruikers en groepen . Wijs vervolgens de gebruikers of groepen toe die u wilt synchroniseren.

Zodra de eerste cyclus is gestart, kunt u Inrichtingslogboeken selecteren in het linker deelvenster om de voortgang te bewaken, hierin worden alle acties weergegeven die door de inrichtingsservice in uw app worden uitgevoerd. Zie Rapportage over automatische inrichting van gebruikersaccounts voor meer informatie over het lezen van de Microsoft Entra-inrichtingslogboeken.

Notitie

De initiële cyclus duurt langer dan toekomstige synchronisaties, die ongeveer om de 40 minuten plaatsvinden zolang de service wordt uitgevoerd.

Als u een toepassing bouwt die door meer dan één tenant wordt gebruikt, maakt u deze beschikbaar in de Microsoft Entra-toepassingsgalerie. Het is eenvoudig voor organisaties om de toepassing te detecteren en inrichting te configureren. Het publiceren van uw app in de Microsoft Entra-galerie en het beschikbaar maken van inrichtingen voor anderen is eenvoudig. Bekijk de stappen hier Microsoft werkt met u mee om uw toepassing te integreren in de galerie, uw eindpunt te testen en onboardingdocumentatie voor klanten vrij te geven.

Gebruik de controlelijst om uw toepassing snel te introduceren en klanten hebben een soepele ervaring bij implementatie. De informatie wordt van u verzameld bij het onboarden naar de galerie.

  • Ondersteuning voor een SCIM 2.0 gebruikers- en groepseindpunt (er is slechts één vereist, maar beide worden aanbevolen)
  • Ondersteuning voor ten minste 25 aanvragen per seconde per tenant om ervoor te zorgen dat het inrichten en ongedaan maken van de inrichting van gebruikers en groepen zonder vertraging kan worden uitgevoerd (vereist)
  • Technische hulp en ondersteuning om klanten te begeleiden na onboarding in de galerie (vereist)
  • 3 niet-verlopende test-aanmeldingsgegevens voor uw toepassing (vereist)
  • Ondersteuning voor het verlenen van OAuth-autorisatiecode of een token met een lange levensduur, zoals beschreven in het voorbeeld (vereist)
  • OIDC-apps moeten ten minste één rol (aangepast of standaard) hebben gedefinieerd
  • Technische hulp en ondersteuning om klanten te ondersteunen na onboarding in de galerie (vereist)
  • Ondersteuning voor schemadetectie (vereist)
  • Ondersteuning voor het bijwerken van meerdere groepslidmaatschappen met één PATCH
  • Openbare documentatie van uw SCIM-eindpunt

De SCIM-specificatie bepaalt geen SCIM-specifiek schema voor verificatie en autorisatie en is afhankelijk van het gebruik van bestaande industrienormen.

Verificatiemethode Voordelen Nadelen Ondersteuning
Gebruikersnaam en wachtwoord (niet aanbevolen of ondersteund door Microsoft Entra ID) Eenvoudig te implementeren Onveilig: Your Pa$$word doesn't matter Niet ondersteund voor nieuwe galerie in de galerie en niet-galerie-apps.
Bearer-token met lange levensduur Voor tokens met een lange levensduur hoeft geen gebruiker aanwezig te zijn. Ze zijn eenvoudig te gebruiken voor beheerders bij het instellen van inrichting. Tokens met een lange levensduur kunnen moeilijk worden gedeeld met een beheerder zonder gebruik te maken van onveilige methoden zoals e-mail. Ondersteund voor galerie- en niet-galerie-apps.
OAuth-autorisatiecode verlenen Toegangstokens hebben een kortere levensduur dan wachtwoorden en hebben een geautomatiseerd vernieuwingsmechanisme dat bearertokens met een lange levensduur niet hebben. Er moet een echte gebruiker aanwezig zijn tijdens de eerste autorisatie, wat een bepaald niveau van verantwoordelijkheid toevoegt Hiervoor moet een gebruiker aanwezig zijn. Als de gebruiker de organisatie verlaat, is het token ongeldig en moet de autorisatie opnieuw worden voltooid. Ondersteund voor galerie-apps, maar niet voor niet-galerie-apps. U kunt echter een toegangstoken in de gebruikersinterface opgeven als geheim token voor testdoeleinden op korte termijn. Ondersteuning voor het verlenen van OAuth-code voor niet-galerie-apps bevindt zich in onze achterstand, naast ondersteuning voor configureerbare verificatie-/token-URL's in de galerie-app.
Referenties voor OAuth-client verlenen Toegangstokens hebben een kortere levensduur dan wachtwoorden en hebben een geautomatiseerd vernieuwingsmechanisme dat bearertokens met een lange levensduur niet hebben. Zowel bij het verlenen van de autorisatiecode als de clientaanmeldingsgegevens wordt hetzelfde type toegangstoken gebruikt, dus het schakelen tussen deze methoden is transparant voor de API. Inrichten kan worden geautomatiseerd en nieuwe tokens kunnen op de achtergrond worden aangevraagd zonder tussenkomst van de gebruiker. Ondersteund voor galerie-apps, maar niet voor niet-galerie-apps. U kunt echter een toegangstoken in de gebruikersinterface opgeven als geheim token voor testdoeleinden op korte termijn. Ondersteuning voor het verlenen van OAuth-codes voor niet-galerie-apps staat in onze backlog.

Notitie

Het is niet raadzaam om het tokenveld leeg te laten in de aangepaste gebruikersinterface van de microsoft Entra-inrichtingsconfiguratie. Het gegenereerde token is voornamelijk bedoeld voor testdoeleinden.

Stroom voor verlenen van OAuth-code

De service voor inrichting ondersteunt de toekenning voor autorisatiecodes. Na het indienen van uw aanvraag voor het publiceren van uw app in de galerie, werkt ons team samen met u om de volgende informatie te verzamelen:

  • URL voor autorisatie: een URL van de client om autorisatie te verkrijgen van de broneigenaar door omleiding van de gebruikersagent. De gebruiker wordt omgeleid naar deze URL om de toegang te autoriseren.

  • URL voor tokenuitwisseling: een URL door de client voor het uitwisselen van een autorisatiemachtiging voor een toegangstoken, meestal met clientverificatie.

  • Client-id: de autorisatieserver verleent de geregistreerde client een client-id. Dit is een unieke tekenreeks voor de registratiegegevens die door de client worden verstrekt. De client-id is geen geheim; deze wordt blootgesteld aan de resource-eigenaar en mag niet alleen worden gebruikt voor clientverificatie.

  • Clientgeheim: een geheim dat wordt gegenereerd door de autorisatieserver en die alleen een unieke waarde mag zijn die alleen bekend is bij de autorisatieserver.

Notitie

De autorisatie-URL en URL voor tokenuitwisseling kunnen momenteel niet per tenant worden geconfigureerd.

Notitie

OAuth v1 wordt niet ondersteund vanwege de blootstelling van het clientgeheim. OAuth v2 wordt ondersteund.

Wanneer u de stroom OAuth-codetoekenning gebruikt, moet u een model ondersteunen waarbij elke klant zijn eigen client-id en clientgeheim indient bij het instellen van een inrichtingsexemplaren. Eén client-id/clientgeheimpaar voor de hele app wordt niet ondersteund.

Stroom voor het verlenen van OAuth-code instellen

  1. Meld u als toepassingsbeheerder aan bij het Microsoft Entra-beheercentrum.

  2. Blader naar Het inrichten van bedrijfstoepassingen voor identiteitstoepassingen>>>>en selecteer Autoriseren.

  3. Meld u als toepassingsbeheerder aan bij het Microsoft Entra-beheercentrum.

  4. Blader naar Bedrijfstoepassingen voor identiteitstoepassingen>>.

  5. Selecteer uw toepassing en ga naar Inrichten.

  6. Selecteer Autoriseren.

    1. Gebruikers worden omgeleid naar de autorisatie-URL (aanmeldingspagina voor de app van derden).

    2. Beheerder verstrekt aanmeldingsgegevens voor de toepassing van derden.

    3. De app van derden leidt de gebruiker terug en levert de toekenningscode

    4. De Inrichtingsservice roept de token-URL aan en levert de toekenningscode. De toepassing van derden reageert met het toegangstoken, het vernieuwingstoken en de vervaldatum

  7. Wanneer de inrichtingscyclus begint, controleert de service of het huidige toegangstoken geldig is en wisselt deze zo nodig voor een nieuw token. Het toegangstoken wordt verstrekt in elke aanvraag die aan de app wordt gedaan en de geldigheid van de aanvraag wordt voor elke aanvraag gecontroleerd.

Notitie

Hoewel het niet mogelijk is om OAuth in te stellen op de niet-galerie-toepassingen, kunt u handmatig een toegangstoken genereren vanaf uw autorisatieserver en deze als geheime token invoeren in een niet-galerie-toepassing. Hiermee kunt u de compatibiliteit van uw SCIM-server met de Microsoft Entra-inrichtingsservice controleren voordat u onboarding uitvoert naar de app-galerie, die wel ondersteuning biedt voor de OAuth-codetoekenning.

OAuth bearer-tokens met een lange levensduur: als uw toepassing de stroom voor het verlenen van OAuth-autorisatiecode niet ondersteunt, genereert u in plaats daarvan een OAuth bearer-token dat een beheerder kan gebruiken om de inrichtingsintegratie in te stellen. Het token moet eeuwig zijn, anders wordt de inrichtingstaak in quarantaine geplaatst wanneer het token verloopt.

Voor meer verificatie- en autorisatiemethoden laat het ons weten op UserVoice.

We raden u aan om uw bestaande documentatie bij te werken en de integratie in uw marketingkanalen te versterken om het bewustzijn en de vraag van onze gezamenlijke integratie te stimuleren. U wordt aangeraden de volgende controlelijst te voltooien ter ondersteuning van de lancering:

  • Zorg dat uw verkoop- en klantondersteuningsteams op de hoogte zijn van en dat ze kunnen praten over de integratiemogelijkheden en dat ze hier klaar voor zijn. Geef uw team een korte beschrijving en voeg de integratie toe aan uw verkoopmaterialen.
  • Maak een blogbericht of persbericht met een beschrijving van de gezamenlijke integratie, de voordelen en hoe deze kan worden gebruikt. Voorbeeld: Imprivata en Microsoft Entra Press Release
  • Maak gebruik van uw sociale media zoals X, Facebook of LinkedIn om de integratie met uw klanten te promoten. Zorg ervoor dat u Entra-id opneemt @Microsoft , zodat we uw bericht opnieuw kunnenweet. Voorbeeld: Imprivata X Post
  • Maak of werk uw marketingpagina's/website (zoals integratiepagina, partnerpagina, prijspagina, enzovoort) in om de beschikbaarheid van de gezamenlijke integratie op te nemen. Voorbeeld: Pingboard-integratiepagina, Smartsheet-integratiepagina, Monday.com pagina met prijzen
  • Maak een Help Center-artikel of technische documentatie over hoe klanten aan de slag kunnen. Voorbeeld: Integratie van Envoy + Microsoft Entra.
  • Breng klanten van de nieuwe integratie op de hoogte via uw klantcommunicatiekanalen (maandelijkse nieuwsbrieven, e-mailcampagnes, opmerkingen bij de release van het product).

Volgende stappen