Oktatóanyag – SCIM-végpont létrehozása és a felhasználók üzembe helyezésének konfigurálása az Azure AD-velTutorial - Build a SCIM endpoint and configure user provisioning with Azure AD

Alkalmazás-fejlesztőként használhatja a tartományok közötti Identitáskezelés (SCIM) felhasználói felügyeleti API-t, hogy lehetővé váljon a felhasználók és csoportok automatikus kiépítés az alkalmazás és az Azure AD között.As an application developer, you can use the System for Cross-Domain Identity Management (SCIM) user management API to enable automatic provisioning of users and groups between your application and Azure AD. Ez a cikk bemutatja, hogyan hozhat létre egy SCIM-végpontot, és hogyan integrálható az Azure AD kiépítési szolgáltatásával.This article describes how to build a SCIM endpoint and integrate with the Azure AD provisioning service. A SCIM-specifikáció általános felhasználói sémát biztosít az üzembe helyezéshez.The SCIM specification provides a common user schema for provisioning. Az olyan összevonási szabványokkal együtt, mint az SAML vagy az OpenID Connect, a SCIM teljes körű, szabványokon alapuló megoldást biztosít a rendszergazdáknak a hozzáférés-kezeléshez.When used in conjunction with federation standards like SAML or OpenID Connect, SCIM gives administrators an end-to-end, standards-based solution for access management.

A SCIM a két végpont szabványosított definíciója: egy/Users-végpont és egy/groups-végpont.SCIM is a standardized definition of two endpoints: a /Users endpoint and a /Groups endpoint. Általános REST-műveleteket használ az objektumok létrehozásához, frissítéséhez és törléséhez, valamint egy előre definiált sémát az általános attribútumok, például a csoportnév, a Felhasználónév, az utónév, a vezetéknév és az e-mailek számára.It uses common REST verbs to create, update, and delete objects, and a pre-defined schema for common attributes like group name, username, first name, last name and email. A SCIM 2,0 REST API-t kínáló alkalmazások csökkenthetik vagy megszüntethetik a saját felhasználói felügyeleti API-k használatával végzett munkát.Apps that offer a SCIM 2.0 REST API can reduce or eliminate the pain of working with a proprietary user management API. A megfelelő SCIM-ügyfelek például megtudhatják, hogyan hozhat létre egy JSON-objektum HTTP-BEJEGYZÉSét a/Users-végponton egy új felhasználói bejegyzés létrehozásához.For example, any compliant SCIM client knows how to make an HTTP POST of a JSON object to the /Users endpoint to create a new user entry. Ahelyett, hogy némileg eltérő API-ra lenne szüksége ugyanahhoz az alapszintű műveletekhez, a SCIM szabványnak megfelelő alkalmazások azonnal kihasználhatják a meglévő ügyfeleket, eszközöket és kódokat.Instead of needing a slightly different API for the same basic actions, apps that conform to the SCIM standard can instantly take advantage of pre-existing clients, tools, and code.

Kiépítés az Azure AD-ből egy SCIM-val rendelkező alkalmazásba

A SCIM 2,0 (RFC 7642, 7643, 7644) által meghatározott általános felhasználói objektum sémája és REST API-k lehetővé teszik az identitás-szolgáltatók és az alkalmazások könnyebb integrálását.The standard user object schema and rest APIs for management defined in SCIM 2.0 (RFC 7642, 7643, 7644) allow identity providers and apps to more easily integrate with each other. Az SCIM-végpontot felépítő alkalmazás-fejlesztők az egyéni munka nélkül is integrálhatók bármely SCIM-kompatibilis ügyféllel.Application developers that build a SCIM endpoint can integrate with any SCIM-compliant client without having to do custom work.

Az alkalmazások kiépítésének automatizálásához SCIM-végpontokat kell létrehoznia és integrálnia az Azure AD SCIM-ügyféllel.Automating provisioning to an application requires building and integrating a SCIM endpoint with the Azure AD SCIM client. A felhasználók és csoportok alkalmazásba való kiépítés elindításához hajtsa végre az alábbi lépéseket.Perform the following steps to start provisioning users and groups into your application.

A SCIM-végpont Azure AD-vel való integrálásának lépései

1. lépés: a felhasználó és a csoport sémájának megtervezéseStep 1: Design your user and group schema

Minden alkalmazáshoz különböző attribútumok szükségesek egy felhasználó vagy csoport létrehozásához.Every application requires different attributes to create a user or group. Az integráció megkezdéséhez azonosítsa az alkalmazás által igényelt objektumokat (felhasználókat, csoportokat) és attribútumokat (név, felettes, beosztás stb.).Start your integration by identifying the objects (users, groups) and attributes (name, manager, job title, etc.) that your application requires. A SCIM standard definiál egy sémát a felhasználók és csoportok kezeléséhez.The SCIM standard defines a schema for managing users and groups. Az alapvető felhasználói sémához csak három attribútum szükséges: azonosító (szolgáltató által definiált azonosító), externalId (ügyfél által definiált azonosító) és meta (csak olvasható metaadatok a szolgáltató által karbantartva).The core user schema only requires three attributes: id (service provider defined identifier), externalId (client defined identifier), and meta (read-only metadata maintained by the service provider). Az összes többi attribútum nem kötelező.All other attributes are optional. Az alapszintű felhasználói sémán kívül a SCIM standard definiál egy vállalati felhasználói bővítményt és egy modellt a felhasználói séma kibővítéséhez, hogy megfeleljen az alkalmazás igényeinek.In addition to the core user schema, the SCIM standard defines an enterprise user extension and a model for extending the user schema to meet your application’s needs. Ha például az alkalmazás egy felhasználó felettesét igényli, a vállalati felhasználói sémával összegyűjtheti a felhasználó felettesét és a központi sémát a felhasználó e-mail-címének összegyűjtéséhez.If, for example, your application requires a user’s manager, you can use the enterprise user schema to collect the user’s manager and the core schema to collect the user’s email. A séma kialakításához kövesse az alábbi lépéseket:To design your schema, follow the steps below:

  1. Az alkalmazás által igényelt attribútumok listázása.List the attributes your application requires. Hasznos lehet a követelményeknek a hitelesítéshez (pl. loginName és e-mailek) való bontása, a felhasználó életciklusának kezeléséhez szükséges attribútumok (pl. állapot/aktív) és az adott alkalmazás működéséhez szükséges egyéb attribútumok (például a kezelő, a címke).It can be helpful to break down your requirements into the attributes needed for authentication (e.g. loginName and email), attributes needed to manage the lifecycle of the user (e.g. status / active), and other attributes needed for your particular application to work (e.g. manager, tag).
  2. Győződjön meg arról, hogy ezek az attribútumok már definiálva vannak-e az alapszintű felhasználói sémában vagy a vállalati felhasználói sémában.Check whether those attributes are already defined in the core user schema or enterprise user schema. Ha az alapszintű vagy a vállalati felhasználói sémák nem fedik le az összes szükséges attribútumot, akkor meg kell adnia egy bővítményt a felhasználói sémához, amely tartalmazza a szükséges attribútumokat.If any attributes that you need and aren’t covered in the core or enterprise user schemas, you will need to define an extension to the user schema that covers the attributes you need. Az alábbi példában egy bővítményt adtunk hozzá a felhasználóhoz, amely lehetővé teszi a felhasználó számára a "címke" kiépítési lehetőséget.In the example below, we’ve added an extension to the user to allow provisioning a “tag” on a user. A legjobb, ha csak az alapszintű és a vállalati felhasználói sémákkal indul, és később további egyéni sémákat szeretne kibővíteni.It is best to start with just the core and enterprise user schemas and expand out to additional custom schemas later.
  3. Képezze le a SCIM attribútumokat az Azure AD felhasználói attribútumaira.Map the SCIM attributes to the user attributes in Azure AD. Ha a SCIM-végpontban definiált attribútumok egyike nem rendelkezik egyértelmű jogosultsággal az Azure AD felhasználói sémájában, akkor az adatai nem a legtöbb bérlőn található felhasználói objektumon vannak tárolva.If one of the attributes you have defined in your SCIM endpoint does not have a clear counterpart on the Azure AD user schema, there is a good chance the data isn’t stored on the user object at all on most tenants. Vegye figyelembe, hogy ez az attribútum nem kötelező-e a felhasználók létrehozásához.Consider whether this attribute can be optional for creating a user. Ha az attribútum kritikus fontosságú az alkalmazás működéséhez, a bérlői rendszergazdát a séma kiterjesztéséhez, vagy a "címkék" tulajdonsághoz az alábbi ábrán látható módon használja.If the attribute is critical for your application to work, guide the tenant administrator to extend their schema or use an extension attribute as shown below for the “tags” property.

1. táblázat: a szükséges attribútumok körvonalazásaTable 1: Outline the attributes that you need

1. lépés: az alkalmazás által igényelt attribútumok meghatározásaStep 1: Determine attributes your app requires 2. lépés: az alkalmazásra vonatkozó követelmények leképezése a SCIM standard értékreStep 2: Map app requirements to SCIM standard 3. lépés: SCIM-attribútumok leképezése az Azure AD-attribútumokraStep 3: Map SCIM attributes to the Azure AD attributes
loginNameloginName userName (Felhasználónév)userName userPrincipalNameuserPrincipalName
firstNamefirstName name.givenNamename.givenName givenNamegivenName
lastNamelastName név. lastNamename.lastName lastNamelastName
workMailworkMail E-mailek [type EQ "work"]. ValueEmails[type eq “work”].value MailMail
managermanager managermanager managermanager
címketag urn: IETF: params: scim: sémák: bővítmény: 2.0: CustomExtension: címkeurn:ietf:params:scim:schemas:extension:2.0:CustomExtension:tag extensionAttribute1extensionAttribute1
statusstatus activeactive isSoftDeleted (nem a felhasználó által tárolt számított érték)isSoftDeleted (computed value not stored on user)

A fent definiált séma az alábbi JSON-adattartalommal lesz ábrázolva.The schema defined above would be represented using the JSON payload below. Vegye figyelembe, hogy az alkalmazáshoz szükséges attribútumok mellett a JSON-ábrázolás magában foglalja a szükséges id , externalId és meta attribútumokat is.Note that in addition to the attributes required for the application, the JSON representation includes the required id, externalId, and meta attributes.

{
     "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",
     "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:CustomAttribute: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/2819c223-7f76-453a-919d-413861904646"
   }

2. táblázat: alapértelmezett felhasználói attribútum leképezéseTable 2: Default user attribute mapping

Ezután az alábbi táblázat segítségével megismerheti, hogy az alkalmazás által igényelt attribútumok hogyan képezhetők le az Azure AD-ben és a SCIM RFC-ben található attribútumokra.You can then use the table below to understand how the attributes your application requires could map to an attribute in Azure AD and the SCIM RFC. Testreszabhatja az attribútumok leképezését az Azure ad és a scim végpontja között.You can customize how attributes are mapped between Azure AD and your SCIM endpoint. Vegye figyelembe, hogy nem kell támogatnia a felhasználókat és a csoportokat, sem az összes alább látható attribútumot.Note that you don't need to support both users and groups or all the attributes shown below. Ezek arra utalnak, hogy az Azure AD-beli attribútumok gyakran a SCIM protokoll tulajdonságaira vannak leképezve.They are a reference for how attributes in Azure AD are often mapped to properties in the SCIM protocol.

Azure Active Directory felhasználóAzure Active Directory user "urn: IETF: params: scim: sémák: bővítmény: Enterprise: 2.0: user""urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
IsSoftDeletedIsSoftDeleted activeactive
Részlegdepartment urn: IETF: params: scim: sémák: bővítmény: Enterprise: 2.0: felhasználó: részlegurn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department
displayNamedisplayName displayNamedisplayName
AlkalmazottkódemployeeId urn: IETF: params: scim: sémák: bővítmény: Enterprise: 2.0: felhasználó: employeeNumberurn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber
Facsimile-TelephoneNumberFacsimile-TelephoneNumber phoneNumbers [type EQ "fax"]. ValuephoneNumbers[type eq "fax"].value
givenNamegivenName name.givenNamename.givenName
BeosztásjobTitle címtitle
Levelezésmail emails[type eq "work"].valueemails[type eq "work"].value
mailNicknamemailNickname externalIdexternalId
managermanager urn: IETF: params: scim: sémák: bővítmény: Enterprise: 2.0: User: Managerurn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager
mobilmobile phoneNumbers[type eq "mobile"].valuephoneNumbers[type eq "mobile"].value
IrányítószámpostalCode címek [type EQ "work"]. irányítószámaddresses[type eq "work"].postalCode
proxy – címekproxy-Addresses e-mailek [type EQ "other"]. Értékemails[type eq "other"].Value
fizikai kézbesítés – OfficeNamephysical-Delivery-OfficeName címek [type EQ "other"]. Formázottaddresses[type eq "other"].Formatted
streetAddressstreetAddress címek [type EQ "work"]. streetAddressaddresses[type eq "work"].streetAddress
surnamesurname name.familyNamename.familyName
telefonszámtelephone-Number phoneNumbers[type eq "work"].valuephoneNumbers[type eq "work"].value
felhasználó – egyszerű névuser-PrincipalName userName (Felhasználónév)userName

3. táblázat: az alapértelmezett Group attribútum leképezéseTable 3: Default group attribute mapping

Azure Active Directory csoportAzure Active Directory group urn: IETF: params: scim: sémák: Core: 2.0: Groupurn:ietf:params:scim:schemas:core:2.0:Group
displayNamedisplayName displayNamedisplayName
Levelezésmail emails[type eq "work"].valueemails[type eq "work"].value
mailNicknamemailNickname displayNamedisplayName
tagokmembers tagokmembers
objectIdobjectId externalIdexternalId
proxyAddressesproxyAddresses e-mailek [type EQ "other"]. Értékemails[type eq "other"].Value

A SCIM RFC-ben több végpont is definiálva van.There are several endpoints defined in the SCIM RFC. Megkezdheti a/User-végpont megkezdését, majd onnan kiterjesztheti.You can get started with the /User endpoint and then expand from there. Az/schemas-végpont hasznos lehet egyéni attribútumok használatakor, vagy ha a séma gyakran változik.The /Schemas endpoint is helpful when using custom attributes or if your schema changes frequently. Lehetővé teszi, hogy az ügyfél automatikusan lekérje a legfrissebb sémát.It enables a client to retrieve the most up-to-date schema automatically. A/bulk végpont különösen hasznos a csoportok támogatásakor.The /Bulk endpoint is especially helpful when supporting groups. Az alábbi táblázat a SCIM standardban definiált különböző végpontokat ismerteti.The table below describes the various endpoints defined in the SCIM standard. Az/schemas-végpont hasznos lehet egyéni attribútumok használatakor, vagy ha a séma gyakran változik.The /Schemas endpoint is helpful when using custom attributes or if your schema changes frequently. Lehetővé teszi, hogy az ügyfél automatikusan beolvassa a legnaprakészebb sémát.It enables a client to retrieve the most up to date schema automatically. A/bulk végpont különösen hasznos a csoportok támogatásakor.The /Bulk endpoint is especially helpful when supporting groups. Az alábbi táblázat a SCIM standardban definiált különböző végpontokat ismerteti.The table below describes the various endpoints defined in the SCIM standard.

4. táblázat: a fejleszteni kívánt végpontok meghatározásaTable 4: Determine the endpoints that you would like to develop

VÉGPONTENDPOINT LEÍRÁSDESCRIPTION
/User/User SZIFILISZ-műveletek végrehajtása felhasználói objektumon.Perform CRUD operations on a user object.
/Group/Group SZIFILISZ-műveletek végrehajtása egy csoport objektumon.Perform CRUD operations on a group object.
/ServiceProviderConfig/ServiceProviderConfig A SCIM szabvány által támogatott funkciók részleteit tartalmazza, például a támogatott erőforrásokat és a hitelesítési módszert.Provides details about the features of the SCIM standard that are supported, for example the resources that are supported and the authentication method.
/ResourceTypes/ResourceTypes Az egyes erőforrásokra vonatkozó metaadatok megadásaSpecifies metadata about each resource
/Schemas/Schemas Az egyes ügyfelek és szolgáltatók által támogatott attribútumok különbözőek lehetnek.The set of attributes supported by each client and service provider can vary. Az egyik szolgáltató például, name title , és emails , míg egy másik szolgáltató a, a és a szolgáltatást használja name title phoneNumbers .One service provider might include name, title, and emails, while another service provider uses name, title, and phoneNumbers. A sémák végpont lehetővé teszi a támogatott attribútumok felderítését.The schemas endpoint allows for discovery of the attributes supported.
/Bulk/Bulk A tömeges műveletek lehetővé teszik, hogy az erőforrás-objektumok nagy gyűjteményében műveleteket hajtson végre egyetlen műveletben (például egy nagy csoport frissítési tagsága).Bulk operations allow you to perform operations on a large collection of resource objects in a single operation (e.g. update memberships for a large group).

2. lépés: az Azure AD SCIM implementációjának ismertetéseStep 2: Understand the Azure AD SCIM implementation

Fontos

Az Azure AD-SCIM implementációjának viselkedését legutóbb 2018. december 18-án frissítették.The behavior of the Azure AD SCIM implementation was last updated on December 18, 2018. További információ a változásokról: SCIM 2,0 protokoll megfelelősége az Azure ad felhasználói kiépítési szolgáltatáshoz.For information on what changed, see SCIM 2.0 protocol compliance of the Azure AD User Provisioning service.

Ha olyan alkalmazást hoz létre, amely támogatja a SCIM 2,0 felhasználói Management API-t, ez a szakasz részletesen ismerteti az Azure AD SCIM-ügyfél megvalósításának módját.If you're building an application that supports a SCIM 2.0 user management API, this section describes in detail how the Azure AD SCIM client is implemented. Azt is bemutatja, hogyan modellezheti a SCIM-kérelmek kezelését és válaszait.It also shows how to model your SCIM protocol request handling and responses. A SCIM-végpont implementálása után tesztelheti azt az előző szakaszban leírt eljárással.Once you've implemented your SCIM endpoint, you can test it by following the procedure described in the previous section.

Az SCIM 2,0 protokoll specifikációjakeretében az alkalmazásnak meg kell felelnie a következő követelményeknek:Within the SCIM 2.0 protocol specification, your application must meet these requirements:

  • Támogatja a felhasználók létrehozását és opcionálisan csoportokat is, az scim protokoll 3,3. szakaszának megfelelően.Supports creating users, and optionally also groups, as per section 3.3 of the SCIM protocol.
  • Támogatja a javítási kérelmekkel rendelkező felhasználók vagy csoportok módosítását a scim protokoll 3.5.2. szakaszaszerint.Supports modifying users or groups with PATCH requests, as per section 3.5.2 of the SCIM protocol. A támogatása biztosítja, hogy a csoportok és a felhasználók a megfelelő módon legyenek kiépítve.Supporting ensures that groups and users are provisioned in a performant manner.
  • A támogatja a korábban létrehozott felhasználók vagy csoportok ismert erőforrásának beolvasását, a scim protokoll 3.4.1-es szakaszánakmegfelelően.Supports retrieving a known resource for a user or group created earlier, as per section 3.4.1 of the SCIM protocol.
  • Támogatja a felhasználók vagy csoportok lekérdezését a scim protokoll 3.4.2. szakaszának megfelelően.Supports querying users or groups, as per section 3.4.2 of the SCIM protocol. Alapértelmezés szerint a felhasználók lekérik a és a által id lekérdezett username felhasználókat externalId , és a csoportokat a által kérdezik le displayName .By default, users are retrieved by their id and queried by their username and externalId, and groups are queried by displayName.
  • Támogatja a felhasználó azonosító és kezelő általi lekérdezését az SCIM protokoll 3.4.2. szakaszának megfelelően.Supports querying user by ID and by manager, as per section 3.4.2 of the SCIM protocol.
  • Támogatja a csoportok lekérdezését azonosító és tag szerint, a SCIM protokoll 3.4.2. szakaszának megfelelően.Supports querying groups by ID and by member, as per section 3.4.2 of the SCIM protocol.
  • Elfogad egyetlen tulajdonosi jogkivonatot az Azure AD hitelesítéséhez és engedélyezéséhez az alkalmazáshoz.Accepts a single bearer token for authentication and authorization of Azure AD to your application.
  • Támogatja a felhasználó törlését active=false és a felhasználó visszaállítását active=true (a felhasználói objektumot egy kérelemben kell visszaadnia, függetlenül attól, hogy a felhasználó aktív-e).Supports soft-deleting a user active=false and restoring the user active=true (the user object should be returned in a request whether or not the user is active). Az egyetlen alkalommal, amikor a felhasználót nem lehet visszaadni, ha az alkalmazásból nehezen törlődik.The only time the user should not be returned is when it is hard deleted from the application.

Az Azure AD-vel való kompatibilitás érdekében kövesse az alábbi általános irányelveket a SCIM-végpontok megvalósításához:Follow these general guidelines when implementing a SCIM endpoint to ensure compatibility with Azure AD:

  • id az összes erőforráshoz kötelező tulajdonság.id is a required property for all the resources. Minden erőforrást visszaadó válasznak biztosítania kell, hogy minden erőforrás rendelkezik ezzel a tulajdonsággal, kivéve a ListResponse nulla taggal.Every response that returns a resource should ensure each resource has this property, except for ListResponse with zero members.
  • A lekérdezési/szűrési kérelemre adott válasznak mindig a következőnek kell lennie: ListResponse .Response to a query/filter request should always be a ListResponse.
  • A csoportok nem kötelezőek, de csak akkor támogatottak, ha a SCIM implementációja támogatja a javítási kérelmeket.Groups are optional, but only supported if the SCIM implementation supports PATCH requests.
  • A javítás válaszában nem szükséges a teljes erőforrás belefoglalása.It isn't necessary to include the entire resource in the PATCH response.
  • Microsoft Azure AD csak a következő operátorokat használja:Microsoft Azure AD only uses the following operators:
    • eq
    • and
  • Nincs szükség a kis-és nagybetűk megkülönböztetésére a SCIM szerkezeti elemein, különösen a javítás op műveleti értékein, ahogy az a-ben van meghatározva https://tools.ietf.org/html/rfc7644#section-3.5.2 .Don't require a case-sensitive match on structural elements in SCIM, in particular PATCH op operation values, as defined in https://tools.ietf.org/html/rfc7644#section-3.5.2. Az Azure AD az "op" értékeket bocsátja ki, Add Replace és Remove .Azure AD emits the values of 'op' as Add, Replace, and Remove.
  • Microsoft Azure AD egy véletlenszerűen kiválasztott felhasználó és csoport beolvasását kéri a végpont és a hitelesítő adatok érvényességének biztosításához.Microsoft Azure AD makes requests to fetch a random user and group to ensure that the endpoint and the credentials are valid. Emellett a Azure Portal tesztelési kapcsolati folyamatának részeként is végrehajtja.It's also done as a part of Test Connection flow in the Azure portal.
  • Azt az attribútumot, amely alapján az erőforrásokat le lehet kérdezni, megfelelő attribútumként kell beállítani az alkalmazásban a Azure Portalban.The attribute that the resources can be queried on should be set as a matching attribute on the application in the Azure portal. További információ: a felhasználói kiépítési attribútumok társításának testreszabásaFor more information, see Customizing User Provisioning Attribute Mappings
  • HTTPS-támogatás a SCIM-végpontonSupport HTTPS on your SCIM endpoint

Felhasználók kiépítése és megszüntetéseUser provisioning and deprovisioning

A következő ábra azokat az üzeneteket mutatja be, amelyeket Azure Active Directory küld egy SCIM szolgáltatásnak az alkalmazás identitás-tárolójában lévő felhasználó életciklusának kezeléséhez.The following illustration shows the messages that Azure Active Directory sends to a SCIM service to manage the lifecycle of a user in your application's identity store.

A felhasználó kiépítési és megszüntetési sorrendjének megjelenítéseShows the user provisioning and deprovisioning sequence
A felhasználó kiépítése és megszüntetéseUser provisioning and deprovisioning sequence

Csoport kiépítése és megszüntetéseGroup provisioning and deprovisioning

A csoport kiépítése és megszüntetése nem kötelező.Group provisioning and deprovisioning are optional. A implementált és a engedélyezést követően az alábbi ábra azokat az üzeneteket mutatja be, amelyeket az Azure AD a SCIM szolgáltatásnak küld egy csoport életciklusának kezeléséhez az alkalmazás identitás-tárolójában.When implemented and enabled, the following illustration shows the messages that Azure AD sends to a SCIM service to manage the lifecycle of a group in your application's identity store. Ezek az üzenetek két módon különböznek a felhasználók üzeneteitől:Those messages differ from the messages about users in two ways:

  • A csoportok beolvasására irányuló kérések azt határozzák meg, hogy a tagok attribútumot ki kell zárni a kérelemre válaszként megadott összes erőforrásból.Requests to retrieve groups specify that the members attribute is to be excluded from any resource provided in response to the request.
  • Azon kérések, amelyek alapján megállapítható, hogy egy hivatkozási attribútumnak van-e bizonyos értéke a Members attribútummal kapcsolatos kérelmek.Requests to determine whether a reference attribute has a certain value are requests about the members attribute.

Megjeleníti a csoport kiépítésének és megszüntetésének folyamatát.Shows the group provisioning and deprovisioning sequence
Csoport kiépítése és megszüntetési folyamataGroup provisioning and deprovisioning sequence

SCIM és válaszokSCIM protocol requests and responses

Ez a szakasz példákat tartalmaz az Azure AD SCIM-ügyfél által kibocsátott SCIM-kérelmekre, és példa erre a várt válaszokra.This section provides example SCIM requests emitted by the Azure AD SCIM client and example expected responses. A legjobb eredmény érdekében az alkalmazásnak az ilyen formátumú kérelmek kezelésére és a várt válaszokat kell kibocsátania.For best results, you should code your app to handle these requests in this format and emit the expected responses.

Fontos

Ha meg szeretné tudni, hogyan és mikor bocsátja ki az Azure AD-beli felhasználó-kiépítési szolgáltatást az alább ismertetett műveleteket, tekintse meg a kiépítési ciklusok: kezdeti és növekményes kiépítés című szakaszt.To understand how and when the Azure AD user provisioning service emits the operations described below, see the section Provisioning cycles: Initial and incremental in How provisioning works.

Felhasználói műveletekUser Operations

Csoportosítási műveletekGroup Operations

Felhasználói műveletekUser Operations

  • A felhasználókat lekérdezéssel userName vagy attribútumokkal lehet lekérdezni email[type eq "work"] .Users can be queried by userName or email[type eq "work"] attributes.

Felhasználó létrehozásaCreate User

KérésRequest

/Users közzétételePOST /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_ab6490ee-1e48-479e-a20b-2d77186b5dd1",
    "active": true,
    "emails": [{
        "primary": true,
        "type": "work",
        "value": "Test_User_fd0ea19b-0777-472c-9f96-4f70d2226f2e@testuser.com"
    }],
    "meta": {
        "resourceType": "User"
    },
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName"
    },
    "roles": []
}
ReagálásResponse

HTTP/1.1 201 létrehozvaHTTP/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_ab6490ee-1e48-479e-a20b-2d77186b5dd1",
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName",
    },
    "active": true,
    "emails": [{
        "value": "Test_User_fd0ea19b-0777-472c-9f96-4f70d2226f2e@testuser.com",
        "type": "work",
        "primary": true
    }]
}

Felhasználó beolvasásaGet User

KérésRequest

/Users/5d48a0a8e9f04aa38008 beolvasásaGET /Users/5d48a0a8e9f04aa38008

Válasz (felhasználó található)Response (User found)

HTTP/1.1 200 OKHTTP/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_feed3ace-693c-4e5a-82e2-694be1b39934",
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName",
    },
    "active": true,
    "emails": [{
        "value": "Test_User_22370c1a-9012-42b2-bf64-86099c2a1c22@testuser.com",
        "type": "work",
        "primary": true
    }]
}
KérésRequest

/Users/5171a35d82074e068ce2 beolvasásaGET /Users/5171a35d82074e068ce2

Válasz (a felhasználó nem található.Response (User not found. Vegye figyelembe, hogy a részletek nem szükségesek, csak az állapot.)Note that the detail is not required, only status.)
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:Error"
    ],
    "status": "404",
    "detail": "Resource 23B51B0E5D7AE9110A49411D@7cca31655d49f3640a494224 not found"
}

Felhasználó lekérése lekérdezés alapjánGet User by query

KérésRequest

/Users beolvasása? Filter = userName EQ "Test_User_dfeef4c5-5681 -4387-b016-bdf221e82081"GET /Users?filter=userName eq "Test_User_dfeef4c5-5681-4387-b016-bdf221e82081"

ReagálásResponse

HTTP/1.1 200 OKHTTP/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_dfeef4c5-5681-4387-b016-bdf221e82081",
        "name": {
            "familyName": "familyName",
            "givenName": "givenName"
        },
        "active": true,
        "emails": [{
            "value": "Test_User_91b67701-697b-46de-b864-bd0bbe4f99c1@testuser.com",
            "type": "work",
            "primary": true
        }]
    }],
    "startIndex": 1,
    "itemsPerPage": 20
}

Felhasználó lekérése lekérdezéssel – nulla eredményekGet User by query - Zero results

KérésRequest

/Users beolvasása? Filter = userName EQ "nem létező felhasználó"GET /Users?filter=userName eq "non-existent user"

ReagálásResponse

HTTP/1.1 200 OKHTTP/1.1 200 OK

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

Felhasználó frissítése [többszörös értékű tulajdonságok]Update User [Multi-valued properties]

KérésRequest

PATCH/Users/6764549bef60420686bc HTTP/1.1PATCH /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"
            }
    ]
}
ReagálásResponse

HTTP/1.1 200 OKHTTP/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_fbb9dda4-fcde-4f98-a68b-6c5599e17c27",
    "name": {
        "formatted": "givenName updatedFamilyName",
        "familyName": "updatedFamilyName",
        "givenName": "givenName"
    },
    "active": true,
    "emails": [{
        "value": "updatedEmail@microsoft.com",
        "type": "work",
        "primary": true
    }]
}

Felhasználó frissítése [egyértékű tulajdonságok]Update User [Single-valued properties]

KérésRequest

PATCH/Users/5171a35d82074e068ce2 HTTP/1.1PATCH /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"
    }]
}
ReagálásResponse

HTTP/1.1 200 OKHTTP/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_49dc1090-aada-4657-8434-4995c25a00f7@testuser.com",
        "type": "work",
        "primary": true
    }]
}

Felhasználó letiltásaDisable User

KérésRequest

PATCH/Users/5171a35d82074e068ce2 HTTP/1.1PATCH /Users/5171a35d82074e068ce2 HTTP/1.1

{
    "Operations": [
        {
            "op": "Replace",
            "path": "active",
            "value": false
        }
    ],
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ]
}
ReagálásResponse
{
    "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"
    }
}

Felhasználó törléseDelete User

KérésRequest

/Users/5171a35d82074e068ce2 törlése HTTP/1.1DELETE /Users/5171a35d82074e068ce2 HTTP/1.1

ReagálásResponse

HTTP/1.1 204 nincs tartalomHTTP/1.1 204 No Content

Csoportosítási műveletekGroup Operations

  • A csoportokat mindig üres tagok listájával kell létrehozni.Groups shall always be created with an empty members list.
  • A csoportokat az attribútum kérdezheti le displayName .Groups can be queried by the displayName attribute.
  • Ha frissíteni szeretne a csoport-javítási kérelemre, egy HTTP 204 -es verzióra van szükség a válaszban.Update to the group PATCH request should yield an HTTP 204 No Content in the response. Ha egy törzset ad vissza, az összes tag listája nem ajánlott.Returning a body with a list of all the members isn't advisable.
  • Nem szükséges a csoport összes tagjának visszaküldését támogatni.It isn't necessary to support returning all the members of the group.

Csoport létrehozásaCreate Group

KérésRequest

/Groups közzététele HTTP/1.1POST /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"
    }
}
ReagálásResponse

HTTP/1.1 201 létrehozvaHTTP/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": []
}

Csoport beolvasásaGet Group

KérésRequest

/Groups/40734ae655284ad3abcc beolvasása? excludedAttributes = tagok HTTP/1.1GET /Groups/40734ae655284ad3abcc?excludedAttributes=members HTTP/1.1

ReagálásResponse

HTTP/1.1 200 OKHTTP/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",
}

Csoport beolvasása displayName alapjánGet Group by displayName

KérésRequest

/Groups beolvasása? excludedAttributes = tagok&Filter = displayName EQ "displayName" HTTP/1.1GET /Groups?excludedAttributes=members&filter=displayName eq "displayName" HTTP/1.1

ReagálásResponse

HTTP/1.1 200 OKHTTP/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
}

Csoport frissítése [nem tag attribútumok]Update Group [Non-member attributes]

KérésRequest

PATCH/groups/fa2ce26709934589afc5 HTTP/1.1PATCH /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"
    }]
}
ReagálásResponse

HTTP/1.1 204 nincs tartalomHTTP/1.1 204 No Content

Csoport frissítése [Tagok hozzáadása]Update Group [Add Members]

KérésRequest

PATCH/groups/a99962b9f99d4c4fac67 HTTP/1.1PATCH /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"
        }]
    }]
}
ReagálásResponse

HTTP/1.1 204 nincs tartalomHTTP/1.1 204 No Content

Csoport frissítése [tagok eltávolítása]Update Group [Remove Members]

KérésRequest

PATCH/groups/a99962b9f99d4c4fac67 HTTP/1.1PATCH /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"
        }]
    }]
}
ReagálásResponse

HTTP/1.1 204 nincs tartalomHTTP/1.1 204 No Content

Csoport törléseDelete Group

KérésRequest

/Groups/cdb1ce18f65944079d37 törlése HTTP/1.1DELETE /Groups/cdb1ce18f65944079d37 HTTP/1.1

ReagálásResponse

HTTP/1.1 204 nincs tartalomHTTP/1.1 204 No Content

Biztonsági követelményekSecurity requirements

TLS protokoll verzióiTLS Protocol Versions

Az egyetlen elfogadható TLS protokoll-verzió a TLS 1,2 és a TLS 1,3.The only acceptable TLS protocol versions are TLS 1.2 and TLS 1.3. A TLS más verziói nem engedélyezettek.No other versions of TLS are permitted. Nem engedélyezett az SSL verziója.No version of SSL is permitted.

  • Az RSA-kulcsoknak legalább 2 048 bitenek kell lenniük.RSA keys must be at least 2,048 bits.
  • Az ECC-kulcsoknak legalább 256 bitenek kell lenniük, jóváhagyott elliptikus görbe használatával létrehozvaECC keys must be at least 256 bits, generated using an approved elliptic curve

Kulcs hosszaKey Lengths

Az összes szolgáltatásnak a megfelelő hosszúságú titkosítási kulcsok használatával generált X. 509 tanúsítványokat kell használnia, ami azt jelenti, hogy:All services must use X.509 certificates generated using cryptographic keys of sufficient length, meaning:

Titkosítási csomagokCipher Suites

Minden szolgáltatást úgy kell konfigurálni, hogy a következő titkosítási csomagokat használja az alább megadott sorrendben.All services must be configured to use the following cipher suites, in the exact order specified below. Vegye figyelembe, hogy ha csak RSA-tanúsítvánnyal rendelkezik, akkor a ECDSA titkosítási csomagok nem lépnek érvénybe.Note that if you only have an RSA certificate, installed the ECDSA cipher suites do not have any effect.

TLS 1,2 titkosítási csomagok minimális sávja:TLS 1.2 Cipher Suites minimum bar:

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

IP-címtartományokIP Ranges

Az Azure AD kiépítési szolgáltatás jelenleg az ittfelsorolt AzureActiveDirectory IP-címtartományok alatt működik.The Azure AD provisioning service currently operates under the IP Ranges for AzureActiveDirectory as listed here. A AzureActiveDirectory címke alatt felsorolt IP-címtartományok hozzáadásával engedélyezheti az Azure AD kiépítési szolgáltatásból érkező adatforgalmat az alkalmazásba.You can add the IP ranges listed under the AzureActiveDirectory tag to allow traffic from the Azure AD provisioning service into your application. Vegye figyelembe, hogy a számított címek esetében alaposan át kell tekintenie az IP-címtartomány listáját.Note that you will need to review the IP range list carefully for computed addresses. A "40.126.25.32" címet az IP-címtartomány listában "40.126.0.0/18"-ként lehet megjeleníteni.An address such as '40.126.25.32' could be represented in the IP range list as '40.126.0.0/18'. Az IP-programozott módon az alábbi APIhasználatával is lekérheti.You can also programatically retrieve the IP range list using the following API.

3. lépés: SCIM-végpont létrehozásaStep 3: Build a SCIM endpoint

Most, hogy megtervezte a sémát, és megértette az Azure AD SCIM megvalósítását, megkezdheti az SCIM-végpont fejlesztését.Now that you have designed your schema and understood the Azure AD SCIM implementation, you can get started developing your SCIM endpoint. Ahelyett, hogy teljesen elkezdené, és a megvalósítást teljes mértékben saját maga is kiépítheti, a SCIM-Közösség által közzétett nyílt forráskódú SCIM-könyvtárakra támaszkodhat.Rather than starting from scratch and building the implementation completely on your own, you can rely on a number of open source SCIM libraries published by the SCIM community.

Az Azure AD-kiépítési csapat által közzétett nyílt forráskódú .NET Core- hivatkozási kód egy ilyen erőforrás, amely elkezdheti a fejlesztést.The open source .NET Core reference code published by the Azure AD provisioning team is one such resource that can jump start your development. Miután létrehozta a SCIM-végpontot, tesztelni kell. Használhatja a hivatkozási kód részeként megadott Poster-tesztek gyűjteményét, vagy futtathatja a fentebbismertetett minta kérelmeket/válaszokat.Once you have built your SCIM endpoint, you will want to test it out. You can use the collection of postman tests provided as part of the reference code or run through the sample requests / responses provided above.

Megjegyzés

A hivatkozási kód célja, hogy segítséget nyújtson a SCIM-végpont létrehozásában, és "ahogy van".The reference code is intended to help you get started building your SCIM endpoint and is provided "AS IS." A közösségi hozzájárulások szívesen segítenek felépíteni és karbantartani a kódot.Contributions from the community are welcome to help build and maintain the code.

A megoldás két projektből áll: a Microsoft. scim és a Microsoft. scim. WebHostSample.The solution is composed of two projects, Microsoft.SCIM and Microsoft.SCIM.WebHostSample.

A Microsoft. scim projekt az a könyvtár, amely meghatározza a webszolgáltatás azon összetevőit, amelyek megfelelnek a scim specifikációjának.The Microsoft.SCIM project is the library that defines the components of the web service that conforms to the SCIM specification. Deklarálja a _Microsoft. scim. IProvider_felületet, a kérelmeket a szolgáltató módszereire fordítja le, amelyek az Identity Store-ban való működésre lesznek programozva.It declares the interface Microsoft.SCIM.IProvider, requests are translated into calls to the provider’s methods, which would be programmed to operate on an identity store.

Részletezés: A szolgáltató módszereire irányuló kérések lefordítása

A Microsoft. scim. WebHostSample projekt egy Visual Studio ASP.net Core webalkalmazás, amely az üres sablon alapján történik.The Microsoft.SCIM.WebHostSample project is a Visual Studio ASP.NET Core Web Application, based on the Empty template. Ez lehetővé teszi, hogy a mintakód önálló, tárolókban vagy Internet Information Services belül legyen üzembe helyezhető.This allows the sample code to be deployed as standalone, hosted in containers or within Internet Information Services. Emellett a Microsoft. scim. IProvider felületet is alkalmazza a memóriában lévő osztályok tárolására a minta identitás-tárolóként.It also implements the Microsoft.SCIM.IProvider interface keeping classes in memory as a sample identity store.

    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();
        }
        ...

Egyéni SCIM-végpont létrehozásaBuilding a custom SCIM endpoint

A SCIM szolgáltatásnak rendelkeznie kell egy HTTP-címen és egy kiszolgálói hitelesítési tanúsítvánnyal, amelynek a legfelső szintű hitelesítésszolgáltatója a következő nevek egyike:The SCIM service must have an HTTP address and server authentication certificate of which the root certification authority is one of the following names:

  • CNNICCNNIC
  • ComodoComodo
  • CyberTrustCyberTrust
  • DigiCertDigiCert
  • GeoTrustGeoTrust
  • GlobalSignGlobalSign
  • Go DaddyGo Daddy
  • VeriSignVeriSign
  • WoSignWoSign

A .NET Core SDK tartalmaz egy HTTPS-fejlesztési tanúsítványt, amelyet a fejlesztés során használhat, a tanúsítványt a rendszer az első futtatási élmény részeként telepíti.The .NET Core SDK includes an HTTPS development certificate that can be used during development, the certificate is installed as part of the first-run experience. Attól függően, hogy hogyan futtatja a ASP.NET Core webalkalmazást, egy másik portot fog hallgatni:Depending on how you run the ASP.NET Core Web Application it will listen to a different port:

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

A HTTPS-vel kapcsolatos további információkért ASP.NET Core használja a következő hivatkozást: https betartatása ASP.net CoreFor more information on HTTPS in ASP.NET Core use the following link: Enforce HTTPS in ASP.NET Core

Végpont hitelesítésének feldolgozásaHandling endpoint authentication

A Azure Active Directorytól érkező kérések közé tartozik egy OAuth 2,0 tulajdonosi jogkivonat.Requests from Azure Active Directory include an OAuth 2.0 bearer token. A kérelmet fogadó bármely szolgáltatásnak hitelesítenie kell a kiállítót úgy, hogy Azure Active Directory a várt Azure Active Directory bérlőnek.Any service receiving the request should authenticate the issuer as being Azure Active Directory for the expected Azure Active Directory tenant.

A jogkivonatban a kibocsátót egy ISS jogcím azonosítja, például: "iss":"https://sts.windows.net/cbb1a5ac-f33b-45fa-9bf5-f37db0fed422/" .In the token, the issuer is identified by an iss claim, like "iss":"https://sts.windows.net/cbb1a5ac-f33b-45fa-9bf5-f37db0fed422/". Ebben a példában a jogcím értékének alapszintű címe, https://sts.windows.net amely a kiállítóként azonosítja Azure Active Directory, míg a relatív cím szegmens, a cbb1a5ac-f33b-45fa-9bf5-f37db0fed422, annak a Azure Active Directory bérlőnek az egyedi azonosítója, amelyhez a tokent kiállították.In this example, the base address of the claim value, https://sts.windows.net, identifies Azure Active Directory as the issuer, while the relative address segment, cbb1a5ac-f33b-45fa-9bf5-f37db0fed422, is a unique identifier of the Azure Active Directory tenant for which the token was issued.

A jogkivonat célközönsége lesz az alkalmazás sablon-azonosítója a katalógusban, és az egyetlen bérlőben regisztrált összes alkalmazás ugyanazt a iss jogcímet fogadhatja a scim-kérelmekkel.The audience for the token will be the application template ID for the application in the gallery, each of the applications registered in a single tenant may receive the same iss claim with SCIM requests. Az összes egyéni alkalmazáshoz tartozó 8adf8e6e-67b2-4cf2-a259-e3dc5476c621-azonosító.The application template ID for all custom apps is 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Az Azure AD-létesítési szolgáltatás által generált jogkivonat csak tesztelésre használható.The token generated by the Azure AD provisioning service should only be used for testing. Éles környezetben nem használható.It should not be used in production environments.

A mintakód a kérelmeket a Microsoft. AspNetCore. Authentication. JwtBearer csomag használatával hitelesíti.In the sample code, requests are authenticated using the Microsoft.AspNetCore.Authentication.JwtBearer package. A következő kód azt kényszeríti, hogy a szolgáltatás bármelyik végpontjának küldött kérések hitelesítése egy adott bérlő Azure Active Directory által kiállított tulajdonosi jogkivonatának használatával történik:The following code enforces that requests to any of the service’s endpoints are authenticated using the bearer token issued by Azure Active Directory for a specified tenant:

        public void ConfigureServices(IServiceCollection services)
        {
            if (_env.IsDevelopment())
            {
                ...
            }
            else
            {
                services.AddAuthentication(options =>
                {
                    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
                })
                    .AddJwtBearer(options =>
                    {
                        options.Authority = " https://sts.windows.net/cbb1a5ac-f33b-45fa-9bf5-f37db0fed422/";
                        options.Audience = "8adf8e6e-67b2-4cf2-a259-e3dc5476c621";
                        ...
                    });
            }
            ...
        }

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

Tulajdonosi jogkivonatra is szükség van a megadott Poster-tesztek használatához, és helyi hibakeresést végezni a localhost használatával.A bearer token is also required to use of the provided postman tests and perform local debugging using localhost. A mintakód ASP.NET Core környezetekkel módosítja a hitelesítési beállításokat a fejlesztési fázisban, és engedélyezi a saját aláírású jogkivonat használatát.The sample code uses ASP.NET Core environments to change the authentication options during development stage and enable the use a self-signed token.

ASP.NET Core több környezetéről a következő hivatkozás használható: több környezet használata a ASP.net CoreFor more information on multiple environments in ASP.NET Core use the following link: Use multiple environments in ASP.NET Core

A következő kód azt kényszeríti, hogy a szolgáltatás bármelyik végpontján érkező kérések hitelesítése egy egyéni kulccsal aláírt tulajdonosi jogkivonat használatával történik:The following code enforces that requests to any of the service’s endpoints are authenticated using a bearer token signed with a custom key:

        public void ConfigureServices(IServiceCollection services)
        {
            if (_env.IsDevelopment())
            {
                services.AddAuthentication(options =>
                {
                    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                    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"))
                            };
                    });
            }
        ...

Küldjön egy GET kérelmet a jogkivonat-vezérlőnek, hogy érvényes tulajdonosi jogkivonatot kapjon, a GenerateJSONWebToken metódus feladata a fejlesztéshez konfigurált paramétereknek megfelelő jogkivonat létrehozása:Send a GET request to the Token controller to get a valid bearer token, the method GenerateJSONWebToken is responsible to create a token matching the parameters configured for development:

        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;
        }

A felhasználók kiépítésének és megszüntetésének kezelési felépítéseHandling provisioning and deprovisioning of users

*1. példa. A szolgáltatás lekérdezése a megfelelő felhasználóhoz*Example 1. Query the service for a matching user

Azure Active Directory lekérdezi a szolgáltatást az externalId Azure ad-beli felhasználó mailNickname attribútumának megfelelő attribútumérték értékkel rendelkező felhasználó számára.Azure Active Directory queries the service for a user with an externalId attribute value matching the mailNickname attribute value of a user in Azure AD. A lekérdezés Hypertext Transfer Protocol (HTTP) kérelemként van kifejezve, mint például az a példa, amelyben a jyoung egy, a Azure Active Directory felhasználójának egy mailNickname-mintája.The query is expressed as a Hypertext Transfer Protocol (HTTP) request such as this example, wherein jyoung is a sample of a mailNickname of a user in Azure Active Directory.

Megjegyzés

Ez csak példa.This is an example only. Nem minden felhasználó rendelkezik mailNickname attribútummal, és a felhasználó értéke nem lehet egyedi a címtárban.Not all users will have a mailNickname attribute, and the value a user has may not be unique in the directory. Emellett a megfeleltetéshez használt attribútum (amely ebben az esetben a externalId ) az Azure ad attribútum-hozzárendelésekbenkonfigurálható.Also, the attribute used for matching (which in this case is externalId) is configurable in the Azure AD attribute mappings.

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

A mintakód a kérést a szolgáltatás szolgáltatójának QueryAsync metódusára hívja le.In the sample code the request is translated into a call to the QueryAsync method of the service’s provider. Itt látható a metódus aláírása:Here is the signature of that method:

 // 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);

A mintául szolgáló lekérdezésben az attribútumhoz megadott értékkel rendelkező felhasználó számára a externalId QueryAsync metódusnak átadott argumentumok értékei a következők:In the sample query, for a user with a given value for the externalId attribute, values of the arguments passed to the QueryAsync method are:

paraméterek. AlternateFilters. Count: 1_ parameters.AlternateFilters.Count: 1

  • paraméterek. AlternateFilters. ElementAt (0). AttributePath: "externalId"parameters.AlternateFilters.ElementAt(0).AttributePath: "externalId"
  • paraméterek. AlternateFilters. ElementAt (0). ÖsszehasonlítóOperátor: ÖsszehasonlítóOperátor. Equalsparameters.AlternateFilters.ElementAt(0).ComparisonOperator: ComparisonOperator.Equals
  • paraméterek. AlternateFilter. ElementAt (0). ComparisonValue: "jyoung"parameters.AlternateFilter.ElementAt(0).ComparisonValue: "jyoung"

*2. példa. Felhasználó kiépítése*Example 2. Provision a user

Ha egy olyan felhasználó számára, aki egy olyan attribútum értékkel rendelkezik externalId , amely megfelel a felhasználó mailNickname attribútumának, nem ad vissza felhasználót, Azure Active Directory kéri, hogy a szolgáltatás olyan felhasználót helyezzen üzembe, amely megfelel a Azure Active Directory.If the response to a query to the web service for a user with an externalId attribute value that matches the mailNickname attribute value of a user doesn't return any users, then Azure Active Directory requests that the service provision a user corresponding to the one in Azure Active Directory. Íme egy példa erre a kérelemre:Here is an example of such a request:

 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",
   "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}

A mintakód a kérést a szolgáltatás szolgáltatójának CreateAsync metódusára hívja le.In the sample code the request is translated into a call to the CreateAsync method of the service’s provider. Itt látható a metódus aláírása:Here is the signature of that method:

 // 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);

A felhasználó kiépítésére vonatkozó kérelemben az erőforrás argumentum értéke a Microsoft. SCIM. Core2EnterpriseUser osztály egy példánya, amely a Microsoft. SCIM. schemas könyvtárban van definiálva.In a request to provision a user, the value of the resource argument is an instance of the Microsoft.SCIM.Core2EnterpriseUser class, defined in the Microsoft.SCIM.Schemas library. Ha a felhasználó kiépítésére vonatkozó kérelem sikeres, akkor a metódus megvalósításának várhatóan a Microsoft. SCIM. Core2EnterpriseUser osztály egy példányát kell visszaadnia, az azonosító tulajdonság értéke pedig az újonnan kiosztott felhasználó egyedi azonosítójára van beállítva.If the request to provision the user succeeds, then the implementation of the method is expected to return an instance of the Microsoft.SCIM.Core2EnterpriseUser class, with the value of the Identifier property set to the unique identifier of the newly provisioned user.

3. példa. Felhasználó aktuális állapotának lekérdezéseExample 3. Query the current state of a user

Egy olyan felhasználó frissítéséhez, amely egy SCIM által ellátott identitás-tárolóban létezik, Azure Active Directory folytatja, ha a felhasználó aktuális állapotát kéri a szolgáltatástól a következő kéréssel:To update a user known to exist in an identity store fronted by an SCIM, Azure Active Directory proceeds by requesting the current state of that user from the service with a request such as:

 GET ~/scim/Users/54D382A4-2050-4C03-94D1-E769F1D15682 HTTP/1.1
 Authorization: Bearer ...

A mintakód a kérést a szolgáltatás szolgáltatójának RetrieveAsync metódusára hívja le.In the sample code the request is translated into a call to the RetrieveAsync method of the service’s provider. Itt látható a metódus aláírása:Here is the signature of that method:

 // 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);

A felhasználó aktuális állapotának lekérésére irányuló kérelem példájában a paraméterek argumentum értékeként megadott objektum tulajdonságainak értékei a következők:In the example of a request to retrieve the current state of a user, the values of the properties of the object provided as the value of the parameters argument are as follows:

_ Azonosító: "54D382A4-2050-4C03-94D1-E769F1D15682"_ Identifier: "54D382A4-2050-4C03-94D1-E769F1D15682"

  • SchemaIdentifier: "urn: IETF: paraméterek: scim: sémák: bővítmény: Enterprise: 2.0: user"SchemaIdentifier: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"

*4. példa. A frissítendő Reference attribútum értékének lekérdezése*Example 4. Query the value of a reference attribute to be updated

Ha frissíteni kell egy hivatkozási attribútumot, akkor Azure Active Directory lekérdezi a szolgáltatást annak meghatározására, hogy a szolgáltatás által elindított, az identitás-tárolóban lévő Reference attribútum aktuális értéke már megegyezik-e az adott attribútum értékével Azure Active Directoryban.If a reference attribute is to be updated, then Azure Active Directory queries the service to determine whether the current value of the reference attribute in the identity store fronted by the service already matches the value of that attribute in Azure Active Directory. A felhasználók számára az egyetlen olyan attribútum, amelynek az aktuális értéke a felettes attribútum, így a jelenlegi érték lekérdezhető.For users, the only attribute of which the current value is queried in this way is the manager attribute. Íme egy példa arra a kérelemre, amely meghatározza, hogy egy felhasználói objektum Manager-attribútuma jelenleg egy bizonyos értékkel rendelkezik-e: a mintakód a kérést a szolgáltatás szolgáltatójának QueryAsync metódusára hívja le.Here is an example of a request to determine whether the manager attribute of a user object currently has a certain value: In the sample code the request is translated into a call to the QueryAsync method of the service’s provider. A paraméterek argumentum értékeként megadott objektum tulajdonságainak értéke a következő:The value of the properties of the object provided as the value of the parameters argument are as follows:

paraméterek. AlternateFilters. Count: 2_ parameters.AlternateFilters.Count: 2

  • paraméterek. AlternateFilters. ElementAt (x). AttributePath: "azonosító"parameters.AlternateFilters.ElementAt(x).AttributePath: "ID"
  • paraméterek. AlternateFilters. ElementAt (x). ÖsszehasonlítóOperátor: ÖsszehasonlítóOperátor. Equalsparameters.AlternateFilters.ElementAt(x).ComparisonOperator: ComparisonOperator.Equals
  • paraméterek. AlternateFilter. ElementAt (x). ComparisonValue: "54D382A4-2050-4C03-94D1-E769F1D15682"parameters.AlternateFilter.ElementAt(x).ComparisonValue: "54D382A4-2050-4C03-94D1-E769F1D15682"
  • paraméterek. AlternateFilters. ElementAt (y). AttributePath: "Manager"parameters.AlternateFilters.ElementAt(y).AttributePath: "manager"
  • paraméterek. AlternateFilters. ElementAt (y). ÖsszehasonlítóOperátor: ÖsszehasonlítóOperátor. Equalsparameters.AlternateFilters.ElementAt(y).ComparisonOperator: ComparisonOperator.Equals
  • paraméterek. AlternateFilter. ElementAt (y). ComparisonValue: "2819c223-7f76-453a-919d-413861904646"parameters.AlternateFilter.ElementAt(y).ComparisonValue: "2819c223-7f76-453a-919d-413861904646"
  • paraméterek. RequestedAttributePaths. ElementAt (0): "azonosító"parameters.RequestedAttributePaths.ElementAt(0): "ID"
  • paraméterek. SchemaIdentifier: "urn: IETF: paraméterek: scim: sémák: bővítmény: Enterprise: 2.0: user"parameters.SchemaIdentifier: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"

Itt az x index értéke 0 is lehet, az y index értéke pedig 1, vagy az x értéke 1, az y értéke pedig 0, a Filter lekérdezési paraméter kifejezésének sorrendjétől függően.Here, the value of the index x can be 0 and the value of the index y can be 1, or the value of x can be 1 and the value of y can be 0, depending on the order of the expressions of the filter query parameter.

*5. példa. Kérelem az Azure AD-ről egy SCIM-szolgáltatásra egy felhasználó frissítéséhez*Example 5. Request from Azure AD to an SCIM service to update a user_

Íme egy példa arra, hogy Azure Active Directory egy SCIM szolgáltatásra irányuló kérést egy felhasználó frissítéséhez:Here is an example of a request from Azure Active Directory to an SCIM service to update a user:

  PATCH ~/scim/Users/54D382A4-2050-4C03-94D1-E769F1D15682 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/2819c223-7f76-453a-919d-413861904646",
              "value":"2819c223-7f76-453a-919d-413861904646"}]}]}

A mintakód a kérést a szolgáltatás szolgáltatójának UpdateAsync metódusára hívja le.In the sample code the request is translated into a call to the UpdateAsync method of the service’s provider. Itt látható a metódus aláírása:Here is the signature of that method:

 // 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);

A felhasználó frissítésére irányuló kérelem példájában a patch argumentum értékeként megadott objektum a következő tulajdonságértékeket tartalmazhatja:In the example of a request to update a user, the object provided as the value of the patch argument has these property values:

_ ResourceIdentifier. azonosító: "54D382A4-2050-4C03-94D1-E769F1D15682"_ ResourceIdentifier.Identifier: "54D382A4-2050-4C03-94D1-E769F1D15682"

  • ResourceIdentifier. SchemaIdentifier: "urn: IETF: params: scim: sémák: bővítmény: Enterprise: 2.0: user"ResourceIdentifier.SchemaIdentifier: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
  • (PatchRequest as PatchRequest2). Műveletek. darabszám: 1(PatchRequest as PatchRequest2).Operations.Count: 1
  • (PatchRequest as PatchRequest2). Operations. ElementAt (0). OperationName: OperationName. Add(PatchRequest as PatchRequest2).Operations.ElementAt(0).OperationName: OperationName.Add
  • (PatchRequest as PatchRequest2). Operations. ElementAt (0). Path. AttributePath: "Manager"(PatchRequest as PatchRequest2).Operations.ElementAt(0).Path.AttributePath: "manager"
  • (PatchRequest as PatchRequest2). Operations. ElementAt (0). Érték. darabszám: 1(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.Count: 1
  • (PatchRequest as PatchRequest2). Operations. ElementAt (0). Value. ElementAt (0). Hivatkozás: http://.../scim/Users/2819c223-7f76-453a-919d-413861904646(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.ElementAt(0).Reference: http://.../scim/Users/2819c223-7f76-453a-919d-413861904646
  • (PatchRequest as PatchRequest2). Operations. ElementAt (0). Value. ElementAt (0). Érték: 2819c223-7f76-453a-919d-413861904646(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.ElementAt(0).Value: 2819c223-7f76-453a-919d-413861904646

*6. példa. Felhasználó kiépítése*Example 6. Deprovision a user

Az Azure AD egy olyan kérelmet küld, amely egy SCIM-szolgáltatás által elküldött identitás-tárolóból kiépíti a felhasználót, például a következőt:To deprovision a user from an identity store fronted by an SCIM service, Azure AD sends a request such as:

  DELETE ~/scim/Users/54D382A4-2050-4C03-94D1-E769F1D15682 HTTP/1.1
  Authorization: Bearer ...

A mintakód a kérést a szolgáltatás szolgáltatójának DeleteAsync metódusára hívja le.In the sample code the request is translated into a call to the DeleteAsync method of the service’s provider. Itt látható a metódus aláírása:Here is the signature of that method:

 // 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);

A resourceIdentifier argumentum értékeként megadott objektum a következő tulajdonság értékeit írja be a felhasználó megszüntetésére irányuló kérelem példájában:The object provided as the value of the resourceIdentifier argument has these property values in the example of a request to deprovision a user:

_ ResourceIdentifier. azonosító: "54D382A4-2050-4C03-94D1-E769F1D15682"_ ResourceIdentifier.Identifier: "54D382A4-2050-4C03-94D1-E769F1D15682"

  • ResourceIdentifier. SchemaIdentifier: "urn: IETF: params: scim: sémák: bővítmény: Enterprise: 2.0: user"ResourceIdentifier.SchemaIdentifier: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"

4. lépés: a SCIM-végpont integrálása az Azure AD SCIM-ügyféllelStep 4: Integrate your SCIM endpoint with the Azure AD SCIM client

Az Azure AD beállítható úgy, hogy automatikusan kiépítse a hozzárendelt felhasználókat és csoportokat olyan alkalmazásokhoz, amelyek a SCIM 2,0 protokollegy adott profilját implementálják.Azure AD can be configured to automatically provision assigned users and groups to applications that implement a specific profile of the SCIM 2.0 protocol. A profil sajátosságait a 2. lépés: az Azure ad scim implementációjának ismertetése című témakörismerteti.The specifics of the profile are documented in Step 2: Understand the Azure AD SCIM implementation.

Forduljon az alkalmazás-szolgáltatóhoz, vagy az alkalmazás szolgáltatójának dokumentációjában, hogy kompatibilisek legyenek ezekkel a követelményekkel.Check with your application provider, or your application provider's documentation for statements of compatibility with these requirements.

Fontos

Az Azure AD SCIM implementációja az Azure AD-beli felhasználói kiépítési szolgáltatásra épül, amelynek célja, hogy folyamatosan szinkronizálja a felhasználókat az Azure AD és a célalkalmazás között, és a szabványos műveletek nagyon specifikus készletét implementálja.The Azure AD SCIM implementation is built on top of the Azure AD user provisioning service, which is designed to constantly keep users in sync between Azure AD and the target application, and implements a very specific set of standard operations. Fontos megérteni ezeket a viselkedéseket az Azure AD SCIM-ügyfél működésének megismerése érdekében.It's important to understand these behaviors to understand the behavior of the Azure AD SCIM client. További információ: a kiépítés működésének kezdeti és növekményes szakasza.For more information, see the section Provisioning cycles: Initial and incremental in How provisioning works.

Első lépésekGetting started

Az ebben a cikkben ismertetett SCIM-profilt támogató alkalmazások az Azure AD Application Gallery "nem katalógus alkalmazás" funkciójával csatlakozhatnak Azure Active Directoryhoz.Applications that support the SCIM profile described in this article can be connected to Azure Active Directory using the "non-gallery application" feature in the Azure AD application gallery. A csatlakozást követően az Azure AD 40 percenként futtat szinkronizálási folyamatot, ahol lekérdezi az alkalmazás SCIM-végpontját a hozzárendelt felhasználókhoz és csoportokhoz, és a hozzárendelés részletei szerint létrehozza vagy módosítja azokat.Once connected, Azure AD runs a synchronization process every 40 minutes where it queries the application's SCIM endpoint for assigned users and groups, and creates or modifies them according to the assignment details.

SCIM támogató alkalmazás csatlakoztatása:To connect an application that supports SCIM:

  1. Jelentkezzen be a Azure Active Directory portálra.Sign in to the Azure Active Directory portal. Vegye figyelembe, hogy a fejlesztői programra való feliratkozással a P2-licenccel rendelkező Azure Active Directory ingyenes próbaverzióját érheti elNote that you can get access a free trial for Azure Active Directory with P2 licenses by signing up for the developer program

  2. Válassza a vállalati alkalmazások lehetőséget a bal oldali ablaktáblán.Select Enterprise applications from the left pane. Megjelenik az összes konfigurált alkalmazás listája, beleértve a gyűjteményből hozzáadott alkalmazásokat is.A list of all configured apps is shown, including apps that were added from the gallery.

  3. Válassza az + új alkalmazás > minden > nemkatalógusbeli alkalmazás lehetőséget.Select + New application > All > Non-gallery application.

  4. Adja meg az alkalmazás nevét, majd kattintson a Hozzáadás elemre az alkalmazás-objektum létrehozásához.Enter a name for your application, and select Add to create an app object. A rendszer hozzáadja az új alkalmazást a vállalati alkalmazások listájához, és megnyílik az alkalmazás-felügyeleti képernyőjén.The new app is added to the list of enterprise applications and opens to its app management screen.

    Képernyőfelvétel az Azure AD Application galleryrőlScreenshot shows the Azure AD application gallery
    Azure AD-alkalmazás katalógusaAzure AD application gallery

  5. Az App Management képernyőn válassza a kiépítés lehetőséget a bal oldali panelen.In the app management screen, select Provisioning in the left panel.

  6. A létesítési mód menüben válassza az automatikuslehetőséget.In the Provisioning Mode menu, select Automatic.

    Példa: az alkalmazás kiépítési lapja a Azure PortalExample: An app's Provisioning page in the Azure portal
    A kiépítés konfigurálása a Azure PortalbanConfiguring provisioning in the Azure portal

  7. A bérlői URL-cím mezőben adja meg az alkalmazás scim-végpontjának URL-címét.In the Tenant URL field, enter the URL of the application's SCIM endpoint. Például: https://api.contoso.com/scim/Example: https://api.contoso.com/scim/

  8. Ha az SCIM-végpont OAuth-tulajdonosi jogkivonatot igényel az Azure AD-től eltérő kibocsátótól, akkor másolja a szükséges OAuth-tulajdonosi tokent a nem kötelező titkos jogkivonat mezőbe.If the SCIM endpoint requires an OAuth bearer token from an issuer other than Azure AD, then copy the required OAuth bearer token into the optional Secret Token field. Ha ez a mező üresen marad, az Azure AD az Azure AD-ből kiállított OAuth-tulajdonosi jogkivonatot tartalmaz minden kéréssel.If this field is left blank, Azure AD includes an OAuth bearer token issued from Azure AD with each request. Az Azure AD-t identitás-szolgáltatóként használó alkalmazások ellenőrizhetik ezt az Azure AD-kiállított jogkivonatot.Apps that use Azure AD as an identity provider can validate this Azure AD-issued token.

    Megjegyzés

    Ez *nem ajánlott üresen hagyni ezt a mezőt, és az Azure ad által generált tokenre támaszkodhat.It's *not_ recommended to leave this field blank and rely on a token generated by Azure AD. Ez a lehetőség elsősorban tesztelési célokra használható.This option is primarily available for testing purposes.

  9. Válassza a _test kapcsolatlehetőséget, hogy Azure Active Directory próbáljon csatlakozni az scim-végponthoz.Select _Test Connection* to have Azure Active Directory attempt to connect to the SCIM endpoint. Ha a kísérlet sikertelen, a rendszer hibaüzenetet jelenít meg.If the attempt fails, error information is displayed.

    Megjegyzés

    A SCIM a nem létező felhasználóhoz tartozó végpontot kérdezi le, véletlenszerű GUID azonosítóval, amely az Azure ad-konfigurációban kiválasztott egyező tulajdonság.Test Connection queries the SCIM endpoint for a user that doesn't exist, using a random GUID as the matching property selected in the Azure AD configuration. A várt helyes válasz a HTTP 200 OK, amely üres SCIM ListResponse-üzenettel rendelkezik.The expected correct response is HTTP 200 OK with an empty SCIM ListResponse message.

  10. Ha az alkalmazáshoz való kapcsolódási kísérlet sikeres, kattintson a Save (Mentés ) gombra a rendszergazdai hitelesítő adatok mentéséhez.If the attempts to connect to the application succeed, then select Save to save the admin credentials.

  11. A leképezések szakaszban két választható attribútum-hozzárendelésközül választhat: egyet a felhasználói objektumokhoz és egyet a csoport objektumaihoz.In the Mappings section, there are two selectable sets of attribute mappings: one for user objects and one for group objects. Jelölje ki mindegyiket, hogy áttekintse a Azure Active Directoryról az alkalmazásba szinkronizált attribútumokat.Select each one to review the attributes that are synchronized from Azure Active Directory to your app. Az egyeztetési tulajdonságokként kiválasztott attribútumok az alkalmazás felhasználóinak és csoportjainak a frissítési műveletekhez való megfeleltetésére szolgálnak.The attributes selected as Matching properties are used to match the users and groups in your app for update operations. A módosítások elvégzéséhez válassza a Mentés lehetőséget.Select Save to commit any changes.

    Megjegyzés

    A csoportok leképezésének letiltásával letilthatja a csoport objektumainak szinkronizálását.You can optionally disable syncing of group objects by disabling the "groups" mapping.

  12. A Beállításokterületen a hatókör mező határozza meg, hogy mely felhasználók és csoportok legyenek szinkronizálva.Under Settings, the Scope field defines which users and groups are synchronized. Jelölje be a csak a hozzárendelt felhasználók és csoportok szinkronizálása (javasolt) lehetőséget, hogy csak a felhasználók és csoportok lapon hozzárendelt felhasználókat és csoportokat szinkronizálja.Select Sync only assigned users and groups (recommended) to only sync users and groups assigned in the Users and groups tab.

  13. A konfiguráció befejezése után állítsa be a kiépítési állapotot akövetkezőre:.Once your configuration is complete, set the Provisioning Status to On.

  14. Válassza a Mentés lehetőséget az Azure ad-kiépítési szolgáltatás elindításához.Select Save to start the Azure AD provisioning service.

  15. Ha csak a hozzárendelt felhasználókat és csoportokat szinkronizálja (ajánlott), akkor ügyeljen arra, hogy a felhasználók és csoportok lapot jelölje ki, és rendelje hozzá a szinkronizálni kívánt felhasználókat vagy csoportokat.If syncing only assigned users and groups (recommended), be sure to select the Users and groups tab and assign the users or groups you want to sync.

A kezdeti ciklus elindítása után a bal oldali panelen kiválaszthatja a kiépítési naplókat a folyamat figyeléséhez, amely megjeleníti az alkalmazáson belüli kiépítési szolgáltatás által végrehajtott összes műveletet.Once the initial cycle has started, you can select Provisioning logs in the left panel to monitor progress, which shows all actions done by the provisioning service on your app. Az Azure AD-kiépítési naplók beolvasásával kapcsolatos további információkért lásd: jelentéskészítés az automatikus felhasználói fiókok üzembehelyezéséhez.For more information on how to read the Azure AD provisioning logs, see Reporting on automatic user account provisioning.

Megjegyzés

A kezdeti ciklus hosszabb időt vesz igénybe, mint a későbbi szinkronizálások, ami körülbelül 40 percenként történik, amíg a szolgáltatás fut.The initial cycle takes longer to perform than later syncs, which occur approximately every 40 minutes as long as the service is running.

Ha egynél több bérlő által használt alkalmazást készít, azt az Azure AD Application Galleryben teheti elérhetővé.If you're building an application that will be used by more than one tenant, you can make it available in the Azure AD application gallery. Ez megkönnyíti a szervezetek számára az alkalmazás felderítését és a kiépítés konfigurálását.This will make it easy for organizations to discover the application and configure provisioning. Az alkalmazás közzététele az Azure AD-katalógusban és a mások számára elérhető kiépítés egyszerűvé tétele.Publishing your app in the Azure AD gallery and making provisioning available to others is easy. Tekintse meg a lépéseket itt.Check out the steps here. A Microsoft együttműködik Önnel, hogy integrálja az alkalmazást a katalógusba, tesztelje a végpontot, és bocsásson ki a használati dokumentációt az ügyfelek számára.Microsoft will work with you to integrate your application into our gallery, test your endpoint, and release onboarding documentation for customers to use.

Kövesse az alábbi feladatlistát, és győződjön meg arról, hogy az alkalmazás készen áll, és az ügyfelek zökkenőmentes üzembe helyezési tapasztalattal rendelkeznek.Follow the checklist below to ensure that your application is onboarded quicky and customers have a smooth deployment experience. A katalógusba való bevezetéskor a rendszer összegyűjti az adatokat.The information will be gathered from you when onboarding to the gallery.

  • SCIM 2,0 felhasználói és csoportos végpont támogatása (csak egy szükséges, de mindkettő ajánlott)Support a SCIM 2.0 user and group endpoint (Only one is required but both are recommended)
  • A bérlők által másodpercenként legalább 25 kérelem támogatása, hogy a felhasználók és csoportok kiosztása és megszüntetése késedelem nélkül történjen (kötelező)Support at least 25 requests per second per tenant to ensure that users and groups are provisioned and deprovisioned without delay (Required)
  • Mérnöki és támogatási kapcsolattartók létrehozása útmutató az ügyfeleknek a katalógus bevezetéséhez (kötelező)Establish engineering and support contacts to guide customers post gallery onboarding (Required)
  • 3 nem lejáró teszt hitelesítő adatai az alkalmazáshoz (kötelező)3 Non-expiring test credentials for your application (Required)
  • Támogassa a OAuth engedélyezési kód támogatását vagy az alább leírtak szerint a hosszú élettartamú tokent (kötelező)Support the OAuth authorization code grant or a long lived token as described below (Required)
  • Hozzon létre egy mérnöki és támogatási pontot az ügyfelek támogatásához a katalógus bevezetése után (kötelező)Establish an engineering and support point of contact to support customers post gallery onboarding (Required)
  • Több csoporttagság frissítésének támogatása egyetlen JAVÍTÁSsal (ajánlott)Support updating multiple group memberships with a single PATCH (Recommended)
  • A SCIM-végpont nyilvánosan történő dokumentálása (ajánlott)Document your SCIM endpoint publicly (Recommended)
  • Támogatási séma felderítése (ajánlott)Support schema discovery (Recommended)

A SCIM spec nem határoz meg SCIM-specifikus sémát a hitelesítéshez és az engedélyezéshez.The SCIM spec does not define a SCIM-specific scheme for authentication and authorization. A meglévő iparági szabványok használatára támaszkodik.It relies on the use of existing industry standards. Az Azure AD-kiépítési ügyfél két engedélyezési módszert támogat a katalógusban lévő alkalmazásokhoz.The Azure AD provisioning client supports two authorization methods for applications in the gallery.

Engedélyezési módszerAuthorization method ElőnyökPros HátrányokCons TámogatásSupport
Felhasználónév és jelszó (az Azure AD nem javasolja vagy támogatja)Username and password (not recommended or supported by Azure AD) Könnyen megvalósíthatóEasy to implement Nem biztonságos – a PA $ $Word nem számítInsecure - Your Pa$$word doesn't matter A Gallery-alkalmazások eseti alapon támogatottak.Supported on a case-by-case basis for gallery apps. Nem Gallery-alkalmazások esetében nem támogatott.Not supported for non-gallery apps.
Hosszú élettartamú tulajdonosi jogkivonatLong-lived bearer token A hosszú élettartamú tokenek nem igénylik a felhasználó jelenlétét.Long-lived tokens do not require a user to be present. A rendszergazdák egyszerűen használhatók a kiépítés beállításakor.They are easy for admins to use when setting up provisioning. A hosszú élettartamú tokenek nehezen oszthatók meg rendszergazdaként anélkül, hogy nem biztonságos módszereket, például e-maileket kellene használnia.Long-lived tokens can be hard to share with an admin without using insecure methods such as email. A katalógus és a nem Gallery-alkalmazások esetében támogatott.Supported for gallery and non-gallery apps.
OAuth engedélyezési kód engedélyezéseOAuth authorization code grant A hozzáférési tokenek sokkal rövidebbek, mint a jelszavak, és olyan automatikus frissítési mechanizmussal rendelkeznek, amelyet a hosszú élettartamú tulajdonosi jogkivonatok nem rendelkeznek.Access tokens are much shorter-lived than passwords, and have an automated refresh mechanism that long-lived bearer tokens do not have. Egy valós felhasználónak jelen kell lennie a kezdeti engedélyezés során, és hozzá kell adnia egy szintű elszámoltathatóságot.A real user must be present during initial authorization, adding a level of accountability. A felhasználónak jelen kell lennie.Requires a user to be present. Ha a felhasználó elhagyja a szervezetet, a jogkivonat érvénytelen, és az engedélyezést újra el kell végezni.If the user leaves the organization, the token is invalid and authorization will need to be completed again. A Gallery-alkalmazások esetében támogatott, de nem Gallery-alkalmazások.Supported for gallery apps, but not non-gallery apps. A felhasználói felületen azonban egy hozzáférési tokent is megadhat titkos jogkivonatként rövid távú tesztelési célokra.However, you can provide an access token in the UI as the secret token for short term testing purposes. A OAuth-kód támogatásának támogatása a nem katalógusban a várakozó fájlok esetében.Support for OAuth code grant on non-gallery is in our backlog.
OAuth-ügyfél hitelesítő adatainak megadásaOAuth client credentials grant A hozzáférési tokenek sokkal rövidebbek, mint a jelszavak, és olyan automatikus frissítési mechanizmussal rendelkeznek, amelyet a hosszú élettartamú tulajdonosi jogkivonatok nem rendelkeznek.Access tokens are much shorter-lived than passwords, and have an automated refresh mechanism that long-lived bearer tokens do not have. Az engedélyezési kód és az ügyfél hitelesítő adatai is azonos típusú hozzáférési tokent hoznak létre, így a módszerek közötti váltás az API-ra is átlátható.Both the authorization code grant and the client credentials grant create the same type of access token, so moving between these methods is transparent to the API. A kiépítés teljesen automatizált lehet, és az új tokenek felhasználói beavatkozás nélkül is csendesen kérhetők.Provisioning can be completely automated, and new tokens can be silently requested without user interaction. Katalógus-és nem katalógus-alkalmazások esetén nem támogatott.Not supported for gallery and non-gallery apps. A támogatás a várakozó fájlok között található.Support is in our backlog.

Megjegyzés

Nem ajánlott üresen hagyni a jogkivonat mezőt az Azure AD kiépítési konfiguráció egyéni alkalmazás felhasználói felületén.It's not recommended to leave the token field blank in the Azure AD provisioning configuration custom app UI. A generált jogkivonat elsődlegesen tesztelési célokra használható.The token generated is primarily available for testing purposes.

OAuth engedélyezési kód engedélyezése: A kiépítési szolgáltatás támogatja az engedélyezési kód engedélyezését.OAuth authorization code grant flow: The provisioning service supports the authorization code grant. Miután elküldte az alkalmazást a katalógusban való közzétételre vonatkozó kérelmét, a csapat együttműködik Önnel a következő információk összegyűjtéséhez:After submitting your request for publishing your app in the gallery, our team will work with you to collect the following information:

  • Engedélyezési URL-cím: az ügyfél URL-címe, amely a felhasználói ügynök átirányításával szerzi be az erőforrás-tulajdonostól az engedélyt.Authorization URL: A URL by the client to obtain authorization from the resource owner via user-agent redirection. A rendszer átirányítja a felhasználót erre az URL-címre, hogy engedélyezze a hozzáférést.The user is redirected to this URL to authorize access. Vegye figyelembe, hogy ez az URL-cím jelenleg nem konfigurálható bérlőn.Note that this URL is currently not configurable per tenant.
  • Jogkivonat-Exchange URL-cím: az ügyfél URL-címe, amely egy hozzáférési jogkivonat engedélyezési engedélyének kiváltására használható, jellemzően az ügyfél-hitelesítéssel.Token exchange URL: A URL by the client to exchange an authorization grant for an access token, typically with client authentication. Vegye figyelembe, hogy ez az URL-cím jelenleg nem konfigurálható bérlőn.Note that this URL is currently not configurable per tenant.
  • Ügyfél-azonosító: az engedélyezési kiszolgáló kiállítja a regisztrált ügyfelet az ügyfél-azonosítóval, amely egy egyedi karakterlánc, amely az ügyfél által megadott regisztrációs adatokat jelképezi.Client ID: The authorization server issues the registered client a client identifier, which is a unique string representing the registration information provided by the client. Az ügyfél-azonosító nem titok; az erőforrás tulajdonosának van kitéve, és nem használható egyedül az ügyfél-hitelesítéshez.The client identifier is not a secret; it is exposed to the resource owner and must not be used alone for client authentication.
  • Ügyfél titka: az ügyfél titkos kulcsa az engedélyezési kiszolgáló által generált titok.Client secret: The client secret is a secret generated by the authorization server. Egyedi értéknek kell lennie, amely csak az engedélyezési kiszolgáló számára ismert.It should be a unique value known only to the authorization server.

Vegye figyelembe, hogy az OAuth v1 nem támogatott az ügyfél titkos kulcsa miatt.Note that OAuth v1 is not supported due to exposure of the client secret. A OAuth v2 támogatott.OAuth v2 is supported.

Ajánlott eljárások (javasolt, de nem kötelező):Best practices (recommended but not required):

  • Több átirányítási URL-cím támogatása.Support multiple redirect URLs. A rendszergazdák a "portal.azure.com" és a "aad.portal.azure.com" típusból is konfigurálhatják az üzembe helyezést.Administrators can configure provisioning from both "portal.azure.com" and "aad.portal.azure.com". Több átirányítási URL-cím támogatása biztosítja, hogy a felhasználók bármelyik portálról engedélyezzék a hozzáférést.Supporting multiple redirect URLs will ensure that users can authorize access from either portal.
  • Több titkot is támogat, hogy az állásidő nélkül zökkenőmentes legyen a titkos kulcs megújítása.Support multiple secrets to ensure smooth secret renewal, without downtime.

A OAuth-kód engedélyezési folyamatának lépései:Steps in the OAuth code grant flow:

  1. A felhasználó bejelentkezik a Azure Portal > vállalati alkalmazások > válassza az alkalmazás > kiépítés > kattintson az engedélyezés elemre.User signs into the Azure portal > Enterprise applications > Select application > Provisioning > click authorize.
  2. Azure Portal átirányítja a felhasználót az engedélyezési URL-címre (bejelentkezési oldal a harmadik féltől származó alkalmazáshoz).Azure portal redirects user to the Authorization URL (sign in page for the third party app).
  3. A rendszergazda hitelesítő adatokat biztosít a harmadik féltől származó alkalmazás számára.Admin provides credentials to the third party application.
  4. A harmadik féltől származó alkalmazás visszairányítja a felhasználót a Azure Portalre, és megadja a kódotThird party app redirects user back to Azure portal and provides the grant code
  5. Az Azure AD-kiépítési szolgáltatások meghívja a jogkivonat URL-címét, és megadja a kód megadását.Azure AD provisioning services calls the token URL and provides the grant code. A harmadik féltől származó alkalmazás a hozzáférési jogkivonattal, a frissítési jogkivonattal és a lejárati dátummal válaszol.The third party application responds with the access token, refresh token, and expiry date
  6. A kiépítési ciklus megkezdésekor a szolgáltatás ellenőrzi, hogy az aktuális hozzáférési jogkivonat érvényes-e, és szükség esetén egy új jogkivonatra cseréli-e.When the provisioning cycle begins, the service checks if the current access token is valid and exchanges it for a new token if needed. A hozzáférési jogkivonatot az alkalmazásra vonatkozó minden kérelemben meg kell adni, és a kérelem érvényessége minden kérelem előtt be van jelölve.The access token is provided in each request made to the app and the validity of the request is checked before each request.

Megjegyzés

Habár jelenleg nem lehet beállítani a OAuth a katalóguson kívüli alkalmazásban, manuálisan is létrehozhat egy hozzáférési jogkivonatot az engedélyezési kiszolgálóról, és beírhatja azt a nem katalógus alkalmazás titkos token mezőjébe.While it is not possible to setup OAuth on the non-gallery application today, you can manually generate an access token from your authorization server and input that in the secret token field of the non-gallery application. Ez lehetővé teszi a SCIM-kiszolgáló és az Azure AD SCIM-ügyfél kompatibilitásának ellenőrzését az alkalmazás-katalógusba való beléptetés előtt, amely támogatja a OAuth-kód engedélyezését.This allows you to verify compatibility of your SCIM server with the Azure AD SCIM client before onboarding to the app gallery, which does support the OAuth code grant.

Hosszú élettartamú OAuth tulajdonosi jogkivonatok: Ha az alkalmazás nem támogatja a OAuth-engedélyezési kód engedélyezésének folyamatát, hosszú élettartamú OAuth tulajdonosi jogkivonatot is létrehozhat, mint amennyit a rendszergazda a kiépítési integráció beállításához használhat.Long-lived OAuth bearer tokens: If your application does not support the OAuth authorization code grant flow, you can also generate a long lived OAuth bearer token than that an administrator can use to setup the provisioning integration. A tokennek véglegesnek kell lennie, különben a kiépítési feladatot a jogkivonat lejárta után karanténba helyezi a rendszer.The token should be perpetual, or else the provisioning job will be quarantined when the token expires. Ennek a tokennek a méretnél kisebbnek kell lennie a 1KB.This token must be below 1KB in size.

További hitelesítési és engedélyezési módszerek esetén tudassa velünk a UserVoice.For additional authentication and authorization methods, let us know on UserVoice.

Ha segítségre van szüksége a közös integrációval kapcsolatos ismeretek és igények kielégítéséhez, javasoljuk, hogy frissítse a meglévő dokumentációját, és bővítse az integrációt a marketing-csatornákon.To help drive awareness and demand of our joint integration, we recommend you update your existing documentation and amplify the integration in your marketing channels. Az alábbi ellenőrzőlista-tevékenységeket ajánljuk az indítás támogatásához.The below is a set of checklist activities we recommend you complete to support the launch

  • Értékesítési és ügyféltámogatási készültség.Sales and customer support readiness. Gondoskodjon arról, hogy az értékesítési és támogatási csapatok tisztában legyenek, és beszéljenek az integrációs képességekről.Ensure your sales and support teams are aware and can speak to the integration capabilities. Küldje el az értékesítési és támogatási csapatát, és adja meg a gyakori kérdéseket, és foglalja bele az értékesítési anyagokba való integrációt.Brief your sales and support team, provide them with FAQs and include the integration into your sales materials.
  • Blogbejegyzés és/vagy sajtóközlemény.Blog post and/or press release. Készítsen egy blogbejegyzést, vagy nyomja meg a kiadást, amely leírja a közös integrációt, az előnyöket és az első lépéseket.Craft a blog post or press release that describes the joint integration, the benefits and how to get started. Példa: inprivata és Azure Active Directory Press sajtóközleményExample: Imprivata and Azure Active Directory Press Release
  • Közösségi média.Social media. A közösségi média, például a Twitter, a Facebook vagy a LinkedIn segítségével népszerűsítheti ügyfelei integrációját.Leverage your social media like Twitter, Facebook or LinkedIn to promote the integration to your customers. Ügyeljen arra, hogy @AzureAD a közzététel után is meg lehessen adni a bejegyzést.Be sure to include @AzureAD so we can retweet your post. Példa: inprivata Twitter postExample: Imprivata Twitter Post
  • Marketing webhely.Marketing website. Hozza létre vagy frissítse a marketing-oldalakat (például integrációs oldal, partner oldal, díjszabási oldal stb.), hogy tartalmazza a közös integráció rendelkezésre állását.Create or update your marketing pages (e.g. integration page, partner page, pricing page, etc.) to include the availability of the joint integration. Példa: Pingboard Integration Page, Smartsheet Integration Page, Monday.com díjszabása oldalExample: Pingboard integration Page, Smartsheet integration page, Monday.com pricing page
  • Technikai dokumentáció.Technical documentation. Hozzon létre egy Help Center-cikket vagy technikai dokumentációt arról, hogy az ügyfelek hogyan kezdhetik meg az első lépéseket.Create a help center article or technical documentation on how customers can get started. Példa: megbízottat + Microsoft Azure Active Directory Integration.Example: Envoy + Microsoft Azure Active Directory integration.
  • Ügyfél-kommunikáció.Customer communication. Az ügyfél-kommunikáció (havi hírlevél, e-mail-kampányok, termék-kibocsátási megjegyzések) révén riasztást készíthet az ügyfelektől az új integrációról.Alert customers of the new integration through your customer communication (monthly newsletters, email campaigns, product release notes).