Oktatóanyag: SCIM-végpont kiépítésének fejlesztése és megtervezése az Azure Active Directoryban

Alkalmazásfejlesztőként a System for Cross-Domain Identity Management (SCIM) felhasználókezelési API-val engedélyezheti a felhasználók és csoportok automatikus kiépítését az alkalmazás és az Azure Active Directory (Azure AD) között. Ez a cikk bemutatja, hogyan hozhat létre SCIM-végpontot, és hogyan integrálható a Azure AD kiépítési szolgáltatással. Az SCIM-specifikáció egy általános felhasználói sémát biztosít a kiépítéshez. Ha olyan összevonási szabványokat használ, mint az SAML vagy az OpenID Connect, az SCIM egy végpontok közötti, szabványokon alapuló megoldást biztosít a rendszergazdáknak a hozzáférés-kezeléshez.

Üzembe helyezés Azure AD-ről alkalmazásra SCIM használatával

Az SCIM 2.0 két végpont szabványosított definíciója: egy /Users végpont és egy /Groups végpont. Általános REST API-végpontokat használ objektumok létrehozásához, frissítéséhez és törléséhez. Az SCIM egy előre definiált sémából áll olyan általános attribútumokhoz, mint a csoportnév, a felhasználónév, az utónév, a vezetéknév és az e-mail.

Az SCIM 2.0 REST API-t kínáló alkalmazások csökkenthetik vagy kiküszöbölhetik a saját fejlesztésű felhasználókezelési API-k használatának fájdalmát. A megfelelő SCIM-ügyfél például tudja, hogyan hozhat létre egy JSON-objektum HTTP POST-bejegyzést a /Users végpontra egy új felhasználói bejegyzés létrehozásához. Ahelyett, hogy ugyanahhoz az alapművelethez kissé eltérő API-ra van szüksége, az SCIM szabványnak megfelelő alkalmazások azonnal kihasználhatják a meglévő ügyfelek, eszközök és kódok előnyeit.

Az SCIM 2.0-ban (RFC 7642, 7643, 7644) definiált standard felhasználói objektumséma és rest API-k lehetővé teszik, hogy az identitásszolgáltatók és az alkalmazások könnyebben integrálhatók legyenek egymással. Az SCIM-végpontot készítő alkalmazásfejlesztők bármilyen SCIM-kompatibilis ügyféllel integrálhatók egyéni munka nélkül.

Az alkalmazások üzembe helyezésének automatizálásához létre kell hoznia és integrálnia kell egy SCIM-végpontot, amely a Azure AD Kiépítési szolgáltatás által érhető el. Az alábbi lépésekkel megkezdheti a felhasználók és csoportok üzembe helyezését az alkalmazásban.

  1. A felhasználói és csoportséma megtervezése – Azonosítsa az alkalmazás objektumait és attribútumait annak meghatározásához, hogyan képezhetők le a Azure AD SCIM-implementáció által támogatott felhasználó- és csoportsémára.

  2. Az SCIM Azure AD implementálásának ismertetése – Ismerje meg, hogyan valósítja meg a Azure AD kiépítési szolgáltatást az SCIM protokollkérelem-kezelés és -válaszok modellezéséhez.

  3. SCIM-végpont létrehozása – A végpontnak SCIM 2.0-kompatibilisnek kell lennie a Azure AD kiépítési szolgáltatással való integrációhoz. Lehetőségként használja Microsoft Common Language Infrastructure (CLI) kódtárakat és kódmintákat a végpont létrehozásához. Ezek a minták csak referencia- és tesztelési célokra szolgálnak; javasoljuk, hogy ne használja őket függőségként az éles alkalmazásban.

  4. Integrálja az SCIM-végpontot a Azure AD Kiépítési szolgáltatással. Ha a szervezet külső alkalmazással implementálja az SCIM 2.0 olyan profilját, amelyet Azure AD támogat, gyorsan automatizálhatja a felhasználók és csoportok kiépítését és megszüntetését is.

  5. [Nem kötelező] Az alkalmazás közzététele a Azure AD alkalmazáskatalógusban – Az ügyfelek könnyen felfedezhetik az alkalmazást, és egyszerűen konfigurálhatják a kiépítést.

Diagram, amely az SCIM-végpontok Azure AD való integrálásához szükséges lépéseket mutatja be.

A felhasználói és csoportséma megtervezése

Minden alkalmazáshoz különböző attribútumok szükségesek a felhasználó vagy csoport létrehozásához. Indítsa el az integrációt az alkalmazáshoz szükséges objektumok (felhasználók, csoportok) és attribútumok (név, vezető, beosztás stb.) azonosításával.

Az SCIM szabvány egy sémát határoz meg a felhasználók és csoportok kezeléséhez.

Az alapvető felhasználói séma csak három attribútumot igényel (az összes többi attribútum nem kötelező):

  • id, szolgáltató által definiált azonosító
  • userName, a felhasználó egyedi azonosítója (általában a Azure AD felhasználónévre van leképezve)
  • meta, a szolgáltató által fenntartott írásvédett metaadatok

Az alapvető felhasználói séma mellett az SCIM szabvány egy vállalati felhasználói bővítményt is definiál, amely modellel bővíti a felhasználói sémát az alkalmazás igényeinek megfelelően.

Ha például az alkalmazáshoz a felhasználó e-mail-címe és a felhasználó felettese is szükséges, az alapvető sémával gyűjtse össze a felhasználó e-mail-címét és a vállalati felhasználói sémát a felhasználó felettese gyűjtéséhez.

A séma megtervezéséhez kövesse az alábbi lépéseket:

  1. Sorolja fel az alkalmazás által igényelt attribútumokat, majd kategorizálja a hitelesítéshez szükséges attribútumokat (például loginName és e-mail). Attribútumokra van szükség a felhasználói életciklus (például állapot / aktív) kezeléséhez, valamint az alkalmazás működéséhez szükséges összes egyéb attribútumhoz (például vezető, címke).

  2. Ellenőrizze, hogy az attribútumok már definiálva vannak-e az alapvető felhasználói sémában vagy a vállalati felhasználói sémában. Ha nem, meg kell adnia egy bővítményt a felhasználói sémához, amely lefedi a hiányzó attribútumokat. Az alábbi példában talál egy bővítményt a felhasználó számára a felhasználó tagkiépítésének engedélyezéséhez.

  3. Az SCIM-attribútumok leképezése a Azure AD felhasználói attribútumaihoz. Ha az SCIM-végpontban definiált attribútumok egyike nem rendelkezik egyértelmű megfelelővel a Azure AD felhasználói sémán, akkor a bérlő rendszergazdájának útmutatást kell adnia a séma kiterjesztéséhez, vagy használjon bővítményattribútumot az alábbi módon a tags tulajdonsághoz.

Az alábbi táblázat felsorol egy példát a szükséges attribútumokra:

Kötelező alkalmazásattribútum Leképezett SCIM-attribútum Megfeleltetett Azure AD attribútum
loginName userName (Felhasználónév) userPrincipalName
firstName name.givenName givenName
lastName name.familyName Vezetéknév
workMail email[type eq "work"].value Mail
manager manager manager
címke urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User:tag extensionAttribute1
status active isSoftDeleted (a felhasználó által nem tárolt számított érték)

Az alábbi JSON hasznos adat egy SCIM-sémát mutat be:

{
     "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
      "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
      "urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User"],
     "userName":"bjensen@testuser.com",
     "id": "48af03ac28ad4fb88478",
     "externalId":"bjensen",
     "name":{
       "familyName":"Jensen",
       "givenName":"Barbara"
     },
     "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
     "Manager": "123456"
   },
     "urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User": {
     "tag": "701984",
   },
   "meta": {
     "resourceType": "User",
     "created": "2010-01-23T04:56:22Z",
     "lastModified": "2011-05-13T04:42:34Z",
     "version": "W\/\"3694e05e9dff591\"",
     "location":
 "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646"
   }
}   

Megjegyzés

Az alkalmazáshoz szükséges attribútumokon kívül a JSON-reprezentáció a szükséges id, externalIdés meta attribútumokat is tartalmazza.

Segít kategorizálni /User/Group a Azure AD alapértelmezett felhasználói attribútumait az SCIM RFC-hez, és leképezni az attribútumokat a Azure AD és az SCIM-végpont között.

Az alábbi táblázat a felhasználói attribútumok példáját sorolja fel:

Azure AD-felhasználó urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
IsSoftDeleted active
Részleg urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department
displayName displayName
employeeId urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber
Facsimile-TelephoneNumber phoneNumbers[type eq "fax"].value
givenName name.givenName
jobTitle cím
Levelezés emails[type eq "work"].value
mailNickname externalId
manager urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager
mobil phoneNumbers[type eq "mobile"].value
postalCode addresses[type eq "work"].postalCode
proxy-címek email[type eq "other"]. Érték
physical-Delivery-OfficeName addresses[type eq "other"]. Formázott
streetAddress addresses[type eq "work"].streetAddress
surname name.familyName
telefonszám phoneNumbers[type eq "work"].value
user-PrincipalName userName (Felhasználónév)

Az alábbi táblázat egy példát sorol fel a csoportattribútumokra:

Azure AD csoport urn:ietf:params:scim:schemas:core:2.0:Group
displayName displayName
tagok tagok
objectId externalId

Megjegyzés

Nem szükséges mind a felhasználókat, mind a csoportokat támogatnia, vagy az itt látható összes attribútumot, ez csak egy hivatkozás arra vonatkozóan, hogy a Azure AD attribútumai gyakran hogyan vannak leképezve az SCIM protokoll tulajdonságaira.

Az SCIM RFC több végpontot is definiál. Kezdje a /User végponttal, majd bontsa ki onnan. Az alábbi táblázat néhány SCIM-végpontot sorol fel:

Végpont Leírás
/Felhasználó CRUD-műveleteket hajthat végre egy felhasználói objektumon.
/Csoport CRUD-műveleteket hajthat végre egy csoportobjektumon.
/Sémák Az egyes ügyfelek és szolgáltatók által támogatott attribútumok halmaza eltérő lehet. Az egyik szolgáltató tartalmazhat , name, titleés , míg egy másik szolgáltató a name, title, és emailsphoneNumbers. A sémavégpont lehetővé teszi a támogatott attribútumok felderítését.
/Tömeges A tömeges műveletek lehetővé teszik a műveletek egyetlen műveletben történő nagy mennyiségű erőforrás-objektumon történő végrehajtását (például egy nagy csoport tagságának frissítését).
/ServiceProviderConfig Részletesen ismerteti az SCIM szabvány által támogatott funkciókat, például a támogatott erőforrásokat és a hitelesítési módszert.
/ResourceTypes Az egyes erőforrások metaadatait adja meg.

Megjegyzés

A végponttal támogathatja az /Schemas egyéni attribútumokat, vagy ha a séma gyakran változik, mivel lehetővé teszi, hogy az ügyfél automatikusan lekérje a legfrissebb sémát. Használja a /Bulk végpontot a csoportok támogatásához.

A AZURE AD SCIM implementációjának ismertetése

Az SCIM 2.0 felhasználókezelési API támogatásához ez a szakasz ismerteti a Azure AD Kiépítési szolgáltatás implementálását, és bemutatja, hogyan modellezheti az SCIM protokollkérelem-kezelést és -válaszokat.

Fontos

A Azure AD SCIM implementáció viselkedése legutóbb 2018. december 18-án frissült. A változásról további információt a Azure AD User Provisioning szolgáltatás SCIM 2.0 protokollmegfelelőségének scim 2.0-s verziójában talál.

Az SCIM 2.0 protokoll specifikációjában az alkalmazásnak támogatnia kell az alábbi követelményeket:

Követelmény Referenciajegyzetek (SCIM protokoll)
Felhasználók létrehozása, és igény szerint csoportok is 3.3. szakasz
Felhasználók vagy csoportok módosítása PATCH-kérésekkel 3.5.2. A támogatás biztosítja, hogy a csoportok és a felhasználók teljesíthető módon legyenek kiépítve.
Egy korábban létrehozott felhasználó vagy csoport ismert erőforrásának lekérése 3.4.1. szakasz
Felhasználók vagy csoportok lekérdezése 3.4.2. A felhasználókat idusernameexternalIdalapértelmezés szerint az és a lekérdezi, a csoportokat pedig a lekérdezi a displayNamerendszer.
A filter excludedAttributes=members a csoporterőforrás lekérdezésekor 3.4.2.2. szakasz
Felhasználók listázásának és lapszámozásának támogatása 3.4.2.4.
Felhasználó helyreállítható active=false törlése és a felhasználó visszaállítása active=true A felhasználói objektumot egy kérésben kell visszaadni, függetlenül attól, hogy a felhasználó aktív-e. A felhasználót csak akkor kell visszaadni, ha az alkalmazásból keményen törlődik.
A /Schemas végpont támogatása 7. szakasz A sémafelderítési végpont további attribútumok felderítésére szolgál.
Fogadjon el egyetlen tulajdonosi jogkivonatot az alkalmazáshoz Azure AD hitelesítéséhez és engedélyezéséhez.

Az SCIM-végpontok implementálásakor használja az általános irányelveket a Azure AD való kompatibilitás biztosításához:

Általános:

  • id az összes erőforrás kötelező tulajdonsága. Minden erőforrást visszaküldött válasznak biztosítania kell, hogy minden erőforrás rendelkezik ezzel a tulajdonsággal, kivéve ListResponse a nulla elemet.
  • Az elküldött értékeket ugyanolyan formátumban kell tárolni, mint az elküldött értékeket. Az érvénytelen értékeket leíró, végrehajtható hibaüzenettel kell elutasítani. Az adatok átalakítása nem történhet meg a Azure AD által küldött és az SCIM-alkalmazásban tárolt adatok között. (például. A 55555555555 ként küldött telefonszámot nem szabad +5 (555) 555-5555 formátumban menteni/visszaadni)
  • Nem szükséges a teljes erőforrást belefoglalni a PATCH-válaszba .
  • Nincs szükség kis- és nagybetűkre érzékeny egyezésre az SCIM szerkezeti elemein, különösen a PATCHop műveleti értékeken a 3.5.2 szakaszban meghatározottak szerint. Azure AD a Hozzáadás, Csere és Eltávolítás értékeket op adja ki.
  • Microsoft Azure AD kérést küld egy véletlenszerű felhasználó és csoport lekérésére, hogy a végpont és a hitelesítő adatok érvényesek legyenek. Ez a Azure Portalkapcsolattesztelési folyamatának részeként is elvégezhető.
  • Támogatja a HTTPS-t az SCIM-végponton.
  • Az egyéni összetett és többértékű attribútumok támogatottak, de Azure AD ezekben az esetekben nem rendelkezik sok összetett adatstruktúrával az adatok lekéréséhez. Az egyszerű párosított név-érték típusú összetett attribútumok egyszerűen leképezhetők, de az adatok három vagy több alattribútummal rendelkező összetett attribútumokra való áramlása jelenleg nem támogatott.
  • A többértékű összetett attribútumok "type" subattribute értékeinek egyedinek kell lenniük. Nem lehet például két különböző e-mail-cím a "work" altípussal.
  • Az összes válasz fejlécének tartalomtípusúnak kell lennie: application/scim+json

Erőforrások lekérése:

/Felhasználók:

  • A jogosultságok attribútum nem támogatott.
  • A felhasználó egyediségének tekintett attribútumoknak használhatónak kell lenniük egy szűrt lekérdezés részeként. (ha például a felhasználó egyediségét a userName és az e-mailek[type eq "work" ] esetében is kiértékeli a rendszer, a get to /Users szűrőnek engedélyeznie kell a userName eq "user@contoso.com" és az e-mailek[type eq "work"].value eq "user@contoso.com" lekérdezéseket.

/Csoportok:

  • A csoportok nem kötelezőek, de csak akkor támogatottak, ha az SCIM implementációja támogatja a PATCH-kéréseket.
  • A csoportoknak egyedinek kell lenniük a "displayName" értéken, hogy megegyezhessenek Azure AD és az SCIM-alkalmazással. Az egyediség nem az SCIM protokoll követelménye, hanem az SCIM-végpont és a Azure AD integrálásának követelménye.

/Schemas (Sémafelderítés):

  • Mintakérés/válasz
  • A sémafelderítés jelenleg nem támogatott az egyéni, nem katalógusbeli SCIM-alkalmazásokban, de bizonyos katalógusbeli alkalmazásokban használják. A továbbiakban a sémafelderítés lesz az egyetlen módszer, amellyel további attribútumokat adhat hozzá egy meglévő katalógus SCIM-alkalmazás sémához.
  • Ha nincs érték, ne küldjön null értékeket.
  • A tulajdonságértékeket kisbetűsre kell írni (például readWrite).
  • Listaválaszt kell visszaadnia.
  • A /schemas kérést a Azure AD Kiépítési szolgáltatás fogja intézni minden alkalommal, amikor valaki menti a kiépítési konfigurációt a Azure Portal, vagy amikor egy felhasználó a Azure Portal szerkesztési kiépítési lapjára kerül. A felderített egyéb attribútumok a célattribútumok listájában található attribútumleképezésekben jelennek meg az ügyfelek számára. A sémafelderítés csak további célattribútumok hozzáadásához vezet. Ez nem eredményezi az attribútumok eltávolítását.

Felhasználók átadása és megszüntetése

Az alábbi ábra azokat az üzeneteket mutatja be, amelyeket Azure AD küldenek egy SCIM-végpontnak egy felhasználó életciklusának kezeléséhez az alkalmazás identitástárolójában.

A felhasználó megszüntetési sorozatát bemutató ábra.

Csoportkiépítés és megszüntetés

A csoportkiépítés és a megszüntetés nem kötelező. Ha implementálva és engedélyezve van, az alábbi ábra azokat az üzeneteket mutatja be, amelyeket Azure AD küldenek egy SCIM-végpontnak az alkalmazás identitástárolójában lévő csoportok életciklusának kezeléséhez. Ezek az üzenetek kétféleképpen különböznek a felhasználókról szóló üzenetektől:

  • A csoportok lekérésére irányuló kérések megadják, hogy a tagok attribútumot ki kell zárni a kérésre adott válaszként megadott erőforrásokból.
  • A referenciaattribútum egy bizonyos értékének meghatározására irányuló kérések a tagok attribútummal kapcsolatos kérések.

Az alábbi ábrán a csoportbontási sorozat látható:

A csoportbontási sorozatot bemutató ábra.

SCIM-protokollkérelmek és -válaszok

Ez a cikk az Azure Active Directory (Azure AD) kiépítési szolgáltatása által kibocsátott SCIM-kérelmekre és a várt válaszokra mutat példát. A legjobb eredmény érdekében kódolhatja az alkalmazást, hogy ilyen formátumban kezelje ezeket a kéréseket, és a várt válaszokat adja ki.

Fontos

Annak megismeréséhez, hogy a Azure AD felhasználókiépítési szolgáltatás hogyan és mikor bocsátja ki az alább leírt műveleteket, tekintse meg a Kiépítési ciklusok: Kezdeti és növekményesszakaszt a Kiépítés működése című témakörben.

Felhasználói műveletek

Csoportműveletek

Sémafelderítés

Felhasználói műveletek

  • A felhasználókat lekérdezheti vagy emails[type eq "work"] attribútumok alapjánuserName.

Felhasználó létrehozása

Kérés

POST /Users

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User",
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
    "externalId": "0a21f0f2-8d2a-4f8e-bf98-7363c4aed4ef",
    "userName": "Test_User_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ás

HTTP/1.1 201 Létrehozva

{
    "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ása

Kérés

GET /Users/5d48a0a8e9f04aa38008

Válasz (a felhasználó megtalálható)

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "5d48a0a8e9f04aa38008",
    "externalId": "58342554-38d6-4ec8-948c-50044d0a33fd",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "userName": "Test_User_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és

GET /Users/5171a35d82074e068ce2

Válasz (a felhasználó nem található. A részlet nem kötelező, csak állapot.)
{
    "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án

Kérés

GET /Users?filter=userName eq "Test_User_dfeef4c5-5681-4387-b016-bdf221e82081"

Reagálás

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 1,
    "Resources": [{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
        "id": "2441309d85324e7793ae",
        "externalId": "7fce0092-d52e-4f76-b727-3955bd72c939",
        "meta": {
            "resourceType": "User",
            "created": "2018-03-27T19:59:26.000Z",
            "lastModified": "2018-03-27T19:59:26.000Z"
            
        },
        "userName": "Test_User_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és alapján – Nulla eredmény

Kérés

GET /Users?filter=userName eq "nem létező felhasználó"

Reagálás

HTTP/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öbbértékű tulajdonságok]

Kérés

PATCH /Users/6764549bef60420686bc HTTP/1.1

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

HTTP/1.1 200 OK

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "6764549bef60420686bc",
    "externalId": "6c75de36-30fa-4d2d-a196-6bdcdb6b6539",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "userName": "Test_User_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]

Kérés

PATCH /Users/5171a35d82074e068ce2 HTTP/1.1

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

HTTP/1.1 200 OK

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

Felhasználó letiltása

Kérés

PATCH /Users/5171a35d82074e068ce2 HTTP/1.1

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

Kérés

DELETE /Users/5171a35d82074e068ce2 HTTP/1.1

Reagálás

HTTP/1.1 204 Nincs tartalom

Csoportműveletek

  • A csoportokat mindig üres taglistával kell létrehozni.
  • A csoportok lekérdezhetők az displayName attribútummal.
  • A csoport PATCH-kérésének frissítése http 204 No Content értéket eredményez a válaszban. Nem tanácsos egy olyan törzset visszaadni, amely tartalmazza az összes tag listáját.
  • Nem szükséges támogatni a csoport összes tagjának visszaküldését.

Csoport létrehozása

Kérés

POST /Groups HTTP/1.1

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

HTTP/1.1 201 Létrehozva

{
    "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ása

Kérés

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

Reagálás

HTTP/1.1 200 OK

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

Csoportosítás lekérése displayName szerint

Kérés

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

Reagálás

HTTP/1.1 200 OK

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

Csoport frissítése [Nem tag attribútumok]

Kérés

PATCH /Groups/fa2ce26709934589afc5 HTTP/1.1

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

HTTP/1.1 204 Nincs tartalom

Csoport frissítése [Tagok hozzáadása]

Kérés

PATCH /Groups/a99962b9f99d4c4fac67 HTTP/1.1

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

HTTP/1.1 204 Nincs tartalom

Csoport frissítése [Tagok eltávolítása]

Kérés

PATCH /Groups/a99962b9f99d4c4fac67 HTTP/1.1

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

HTTP/1.1 204 Nincs tartalom

Csoport törlése

Kérés

DELETE /Groups/cdb1ce18f65944079d37 HTTP/1.1

Reagálás

HTTP/1.1 204 Nincs tartalom

Sémafelderítés

Séma felderítése

Kérés

GET /Schemas

Reagálás

HTTP/1.1 200 OK

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

Biztonsági követelmények

TLS-protokollverziók

Az egyetlen elfogadható TLS-protokollverzió a TLS 1.2 és a TLS 1.3. A TLS más verziói nem engedélyezettek. Az SSL egyik verziója sem engedélyezett.

  • Az RSA-kulcsoknak legalább 2048 bitnek kell lenniük.
  • Az ECC-kulcsoknak legalább 256 bitnek kell lenniük, jóváhagyott háromliptikus görbe használatával generálva

Kulcshosszok

Minden szolgáltatásnak megfelelő hosszúságú titkosítási kulcsokkal létrehozott X.509-tanúsítványokat kell használnia, ami a következőket jelenti:

Titkosítócsomagok

Minden szolgáltatást úgy kell konfigurálni, hogy az alábbi titkosítási csomagokat használja az alább megadott pontos sorrendben. Ha csak RSA-tanúsítvánnyal rendelkezik, az ECDSA titkosítási csomagok telepítése nem jár semmilyen hatással.

TLS 1.2 Titkosítási csomagok minimális sávja:

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

IP-tartományok

A Azure AD kiépítési szolgáltatás jelenleg az AzureActiveDirectory IP-címtartományai alatt működik az itt felsoroltak szerint. Az AzureActiveDirectory címke alatt felsorolt IP-címtartományokat hozzáadhatja a Azure AD kiépítési szolgáltatásból az alkalmazásba irányuló forgalom engedélyezéséhez. Alaposan át kell tekintenie az IP-címtartományok listáját a számított címek esetében. Az IP-címtartományok listájában a "40.126.0.0/18" cím szerepelhet, például a "40.126.0.0/18". Az IP-címtartományok listáját programozott módon is lekérheti az alábbi API-val.

Azure AD egy ügynökalapú megoldást is támogat, amely privát hálózatokon (helyszíni, Azure-ban üzemeltetett, AWS-ben üzemeltetett stb.) alkalmazásokhoz biztosít kapcsolatot. Az ügyfelek üzembe helyezhetnek egy egyszerűsített ügynököt, amely a privát hálózatuk egyik kiszolgálóján biztosít kapcsolatot Azure AD bejövő portok megnyitása nélkül. További információkat itt talál.

SCIM-végpont létrehozása

Most, hogy megtervezte a sémát, és megértette a Azure AD SCIM-implementációt, megkezdheti az SCIM-végpont fejlesztését. Ahelyett, hogy az alapoktól kezdve teljesen önállóan építené fel a megvalósítást, számos nyílt forráskód SCIM-kódtárra támaszkodhat, amelyeket az SCIM-közösség közzétett.

Az SCIM-végpontok létrehozására vonatkozó útmutatásért, beleértve a példákat, olvassa el a Minta SCIM-végpont fejlesztése című témakört.

A Azure AD kiépítési csapat által közzétett nyílt forráskód .NET Core referenciakód-példa egy olyan erőforrás, amely elindíthatja a fejlesztést. Miután létrehozta az SCIM-végpontot, tesztelnie kell. Használhatja a referenciakód részeként megadott Postman-tesztek gyűjteményét, vagy futtathatja a fent megadott mintakéréseket/válaszokat.

Megjegyzés

A referenciakód segítséget nyújt az SCIM-végpont létrehozásának megkezdéséhez, és "AS IS" (AS IS) van megadva. A közösségtől érkező hozzájárulások segíthetnek a kód összeállításában és karbantartásában.

A megoldás két projektből áll, Microsoft. SCIM és Microsoft. SCIM. WebHostSample.

A Microsoft. Az SCIM-projekt a webszolgáltatás azon összetevőit definiáló kódtár, amely megfelel az SCIM-specifikációnak. Deklarálja a felületet Microsoft. SCIM. Az IProvider a kéréseket a szolgáltató metódusainak hívásaira fordítja le, amelyek egy identitástárolón való működésre lennének programozva.

Részletezés: A szolgáltató metódusainak hívásaira lefordított kérés

A Microsoft. SCIM. A WebHostSample projekt egy ASP.NET Core webalkalmazás, amely az Üres sablonon alapul. Lehetővé teszi a mintakód önálló, tárolókban vagy az Internet Information Servicesben történő üzembe helyezését. Emellett implementálja a Microsoft. SCIM. Az IProvider-felület az osztályokat mintaként tárolja a memóriában.

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ása

Az SCIM-végpontnak rendelkeznie kell egy HTTP-címmel és kiszolgálóhitelesítési tanúsítvánnyal, amelynek fő hitelesítésszolgáltatója az alábbi nevek egyike:

  • CNNIC
  • Comodo
  • CyberTrust
  • DigiCert
  • GeoTrust
  • Globalsign
  • Go Daddy
  • Verisign
  • WoSign
  • DST Root CA X3

A .NET Core SDK tartalmaz egy HTTPS-fejlesztési tanúsítványt, amely a fejlesztés során használható, és a tanúsítvány az első futtatás során települ. Attól függően, hogy hogyan futtatja a ASP.NET Core webalkalmazást, egy másik portot fog hallgatni:

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

További információ a HTTPS-ről a ASP.NET Core a következő hivatkozáson keresztül: HTTPS kényszerítése ASP.NET Core

Végponthitelesítés kezelése

A Azure AD Kiépítési szolgáltatástól érkező kérések közé tartozik egy OAuth 2.0 tulajdonosi jogkivonat. A tulajdonosi jogkivonat egy olyan biztonsági jogkivonat, amelyet egy engedélyezési kiszolgáló bocsát ki, például Azure AD, és amelyet az alkalmazás megbízhatónak talál. A Azure AD kikötési szolgáltatást az alábbi jogkivonatok egyikének használatára konfigurálhatja:

  • Egy hosszú élettartamú tulajdonosi jogkivonat. Ha az SCIM-végponthoz nem Azure AD kiállítótól származó OAuth-tulajdonosi jogkivonatra van szükség, másolja a szükséges OAuth-tulajdonosi jogkivonatot az opcionális Titkos jogkivonat mezőbe. Fejlesztési környezetben használhatja a végpont tesztelési jogkivonatát /scim/token . A tesztelési jogkivonatokat nem szabad éles környezetben használni.

  • Azure AD tulajdonosi jogkivonatot. Ha a Titkos jogkivonat mező üres, Azure AD tartalmaz egy OAuth-tulajdonosi jogkivonatot, amelyet az egyes kérések Azure AD bocsátanak ki. Az Azure AD identitásszolgáltatóként használó alkalmazások érvényesíthetik ezt a Azure AD kibocsátott jogkivonatot.

    • A kéréseket fogadó alkalmazásnak ellenőriznie kell, hogy a tokenkibocsátó Azure AD-e egy várt Azure AD bérlőhöz.
    • A jogkivonatban a kiállítót egy iss jogcím azonosítja. Például: "iss":"https://sts.windows.net/12345678-0000-0000-0000-000000000000/". Ebben a példában a jogcímérték https://sts.windows.net alapcíme kiállítóként azonosítja a Azure AD, míg a relatív címszegmens (12345678-0000-0000-0000-000000000000000) annak a Azure AD bérlőnek az egyedi azonosítója, amelyhez a jogkivonatot kiadták.
    • A token célközönsége az alkalmazás alkalmazásazonosítója a katalógusban. Az egyetlen bérlőben regisztrált alkalmazások ugyanazt iss a jogcímet kapják az SCIM-kérésekkel. Az összes egyéni alkalmazás alkalmazásazonosítója 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. A Azure AD kiépítési szolgáltatás által létrehozott jogkivonatot csak teszteléshez szabad használni. Éles környezetekben nem szabad használni.

A mintakódban a kérések hitelesítése a Microsoft használatával történik. AspNetCore.Authentication.JwtBearer csomag. A következő kód kikényszeríti, hogy a szolgáltatás bármely végpontjára irányuló kérések hitelesítése a Azure AD által adott bérlőhöz kiadott tulajdonosi jogkivonattal legyen hitelesítve:

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

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

Egy tulajdonosi jogkivonatra is szükség van a megadott Postman-tesztek használatához és a helyi hibakereséshez a localhost használatával. A mintakód ASP.NET Core környezetek használatával módosítja a hitelesítési beállításokat a fejlesztési fázisban, és engedélyezi az önaláírt token használatát.

További információ a ASP.NET Core több környezetéről: Több környezet használata ASP.NET Core.

A következő kód kikényszeríti, hogy a szolgáltatás bármely végpontjára irányuló kérések hitelesítése egyéni kulccsal aláírt tulajdonosi jogkivonattal történik:

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

Küldjön GET kérést a jogkivonat-vezérlőnek egy érvényes tulajdonosi jogkivonat lekéréséhez. A GenerateJSONWebToken metódus feladata létrehozni egy, a fejlesztéshez konfigurált paramétereknek megfelelő tokent:

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

Felhasználók kiépítésének és megszüntetésének kezelése

1. példa. A szolgáltatás lekérdezése egyező felhasználóhoz

Azure AD lekérdezi egy felhasználó szolgáltatását egy externalId olyan attribútumértékkel, amely megfelel egy felhasználó mailNickname attribútumértékének Azure AD. A lekérdezés hypertext transfer protocol (HTTP) kérésként van kifejezve, például ebben a példában a jyoung egy felhasználó mailNickname-jének mintája a Azure AD.

Megjegyzés

Ez csak egy példa. Nem minden felhasználó rendelkezik mailNickname attribútummal, és előfordulhat, hogy a felhasználó értéke nem egyedi a címtárban. Emellett az egyeztetéshez használt attribútum (amely ebben az externalIdesetben ) konfigurálható a Azure AD attribútumleképezésekben.

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

A mintakódban a kérés a szolgáltatás szolgáltatójának QueryAsync metódusának hívásává lesz lefordítva. A metódus aláírása a következő:

// 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 mintalekérdezésben az attribútumhoz megadott értékkel externalId rendelkező felhasználó esetében a QueryAsync metódusnak átadott argumentumok értékei a következők:

  • Paraméterek. AlternateFilters.Count: 1
  • Paraméterek. AlternateFilters.ElementAt(0). AttributePath: "externalId"
  • Paraméterek. AlternateFilters.ElementAt(0). ComparisonOperator: ComparisonOperator.Equals
  • Paraméterek. AlternateFilter.ElementAt(0). ComparisonValue: "jyoung"

2. példa. Felhasználó kiépítése

Ha a felhasználó mailNickname attribútumértékének megfelelő attribútumértékkel rendelkező externalId felhasználó SCIM-végpontjára irányuló lekérdezésre adott válasz nem ad vissza felhasználókat, akkor Azure AD kéri, hogy a szolgáltatás hozzon létre egy, a Azure AD-ben szereplő felhasználónak megfelelő felhasználót. Íme egy példa egy ilyen kérésre:

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

A mintakódban a kérés a szolgáltatás szolgáltatójának CreateAsync metódusának hívásává lesz lefordítva. A metódus aláírása a következő:

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

Egy felhasználó kiépítésére irányuló kérésben az erőforrás argumentum értéke a Microsoft egy példánya. SCIM. Core2EnterpriseUser osztály, a Microsoft definiálva. SCIM. Sématár. Ha a felhasználó kiépítésére irányuló kérés sikeres, akkor a metódus implementálása várhatóan a Microsoft egy példányát adja vissza. SCIM. Core2EnterpriseUser osztály, az Identifier tulajdonság értéke az újonnan kiépített felhasználó egyedi azonosítójára van állítva.

3. példa. Felhasználó aktuális állapotának lekérdezése

Ha egy SCIM által előtérbelt identitástárolóban ismert felhasználót szeretne frissíteni, Azure AD a következő kéréssel kérje le a felhasználó aktuális állapotát a szolgáltatásból:

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

A mintakódban a kérés a szolgáltatás szolgáltatójának RetrieveAsync metódusának hívásává lesz lefordítva. A metódus aláírása a következő:

// 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érés példájában a paraméterek argumentum értékeként megadott objektum tulajdonságainak értékei a következők:

  • Azonosító: "54D382A4-2050-4C03-94D1-E769F1D15682"
  • SchemaIdentifier: urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

4. példa. A frissíteni kívánt referenciaattribútum értékének lekérdezése

Ha egy referenciaattribútumot frissíteni szeretne, Azure AD lekérdezi a szolgáltatást annak megállapításához, hogy a szolgáltatás által előtérként használt identitástárolóban lévő referenciaattribútum aktuális értéke megegyezik-e a Azure AD attribútum értékével. A felhasználók esetében az egyetlen attribútum, amelynek aktuális értékét így kérdezi le a rendszer, a kezelő attribútum. Íme egy példa egy kérésre, amely meghatározza, hogy egy felhasználói objektum kezelő attribútuma jelenleg rendelkezik-e bizonyos értékkel: A mintakódban a kérés a szolgáltatás szolgáltatójának QueryAsync metódusára irányuló hívássá lesz lefordítva. A paraméterek argumentum értékeként megadott objektum tulajdonságainak értéke a következő:

  • Paraméterek. AlternateFilters.Count: 2
  • Paraméterek. AlternateFilters.ElementAt(x). AttributePath: "ID"
  • Paraméterek. AlternateFilters.ElementAt(x). ComparisonOperator: ComparisonOperator.Equals
  • Paraméterek. AlternateFilter.ElementAt(x). ComparisonValue: "54D382A4-2050-4C03-94D1-E769F1D15682"
  • Paraméterek. AlternateFilters.ElementAt(y). AttributePath: "manager"
  • Paraméterek. AlternateFilters.ElementAt(y). ComparisonOperator: ComparisonOperator.Equals
  • Paraméterek. AlternateFilter.ElementAt(y). ComparisonValue: "2819c223-7f76-453a-919d-413861904646"
  • Paraméterek. RequestedAttributePaths.ElementAt(0): "ID"
  • Paraméterek. SchemaIdentifier: urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

Az x index értéke lehet 0 , az index értéke pedig y lehet 1. Vagy az x értéke lehet 1 , az y értéke pedig lehet 0. Ez a szűrő lekérdezési paraméter kifejezéseinek sorrendjétől függ.

5. példa. Kérés Azure AD egy SCIM-végpontra a felhasználó frissítéséhez

Íme egy példa egy Azure AD egy SCIM-végpontra irányuló kérésre a felhasználó frissítéséhez:

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ódban a kérés a szolgáltatás szolgáltatójának UpdateAsync metódusának hívásává lesz lefordítva. A metódus aláírása a következő:

// 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érés példájában a javítás argumentum értékeként megadott objektum a következő tulajdonságértékekkel rendelkezik:

Argumentum Érték
ResourceIdentifier.Identifier "54D382A4-2050-4C03-94D1-E769F1D15682"
ResourceIdentifier.SchemaIdentifier urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
(PatchRequest as PatchRequest2).Operations.Count 1
(PatchRequest as PatchRequest2).Operations.ElementAt(0).OperationName OperationName.Add
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Path.AttributePath Manager
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.Count 1
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.ElementAt(0).Reference http://.../scim/Users/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ó megszüntetése

Ha egy felhasználót egy SCIM-végpont előtt lévő identitástárolóból szeretne megszüntetni, Azure AD küldjön egy kérést, például:

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

A mintakódban a rendszer a kérést a szolgáltatás szolgáltatójának DeleteAsync metódusára irányuló hívásra fordítja le. A metódus aláírása a következő:

// 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 az alábbi tulajdonságértékekkel rendelkezik a felhasználó megszüntetésére irányuló kérés példájában:

  • ResourceIdentifier.Identifier: "54D382A4-2050-4C03-94D1-E769F1D15682"
  • ResourceIdentifier.SchemaIdentifier: urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

SCIM-végpont integrálása a Azure AD Kiépítési szolgáltatással

Azure AD konfigurálható úgy, hogy automatikusan kiépítsen hozzárendelt felhasználókat és csoportokat az SCIM 2.0 protokoll egy adott profilját implementáló alkalmazásokhoz. A profil sajátosságait a Azure AD SCIM implementációjának ismertetése című témakörben dokumentáljuk.

Ellenőrizze az alkalmazásszolgáltatónál vagy az alkalmazásszolgáltató dokumentációjában, hogy a követelményekkel való kompatibilitásra vonatkozó állításokat talál-e.

Fontos

A Azure AD SCIM implementációja a Azure AD felhasználóátadási szolgáltatásra épül, amely úgy lett kialakítva, hogy folyamatosan szinkronban tartsa a felhasználókat a Azure AD és a célalkalmazás között, és nagyon speciális standard műveleteket implementál. Fontos megérteni ezeket a viselkedéseket, hogy megértsük a Azure AD Provisioning Service viselkedését. További információkért tekintse meg a Kiépítési ciklusok: Kezdeti és növekményesszakaszt a Kiépítés működése című témakörben.

Első lépések

Az ebben a cikkben ismertetett SCIM-profilt támogató alkalmazások az Azure AD alkalmazáskatalógus "nem katalógusbeli alkalmazás" funkciójával csatlakoztathatók Azure AD. A csatlakozás után Azure AD 40 percenként futtat egy szinkronizálási folyamatot, amelyben lekérdezi az alkalmazás SCIM-végpontját a hozzárendelt felhasználók és csoportok számára, majd létrehozza vagy módosítja őket a hozzárendelés részleteinek megfelelően.

ScIM-et támogató alkalmazás csatlakoztatása:

  1. Jelentkezzen be a Azure AD portálra. A P2 licenccel rendelkező Azure AD ingyenes próbaverziójához a fejlesztői programra való regisztrációval férhet hozzá)

  2. A bal oldali panelen válassza a Vállalati alkalmazások lehetőséget. Megjelenik az összes konfigurált alkalmazás listája, beleértve a katalógusból hozzáadott alkalmazásokat is.

  3. Válassza az + Új alkalmazás>+ Saját alkalmazás létrehozása lehetőséget.

  4. Adja meg az alkalmazás nevét, válassza az "integráljon minden olyan alkalmazást, amely nem található a katalógusban" lehetőséget, majd válassza a Hozzáadás lehetőséget egy alkalmazásobjektum létrehozásához. Az új alkalmazás megjelenik a vállalati alkalmazások listájában, és megnyílik az alkalmazásfelügyeleti képernyője.

    Az alábbi képernyőképen a Azure AD alkalmazáskatalógus látható:

    Képernyőkép a Azure AD alkalmazáskatalógusról.

  5. Az alkalmazásfelügyeleti képernyőn válassza a kiépítés lehetőséget a bal oldali panelen.

  6. A Kiépítési mód menüben válassza az Automatikus lehetőséget.

    Az alábbi képernyőképen a kiépítési beállítások konfigurálása látható a Azure Portal:

    Képernyőkép a Azure Portal alkalmazáskiépítési oldaláról.

  7. A Bérlő URL-címe mezőben adja meg az alkalmazás SCIM-végpontjának URL-címét. Például: https://api.contoso.com/scim/

  8. Ha az SCIM-végponthoz nem Azure AD kiállítótól származó OAuth-tulajdonosi jogkivonatra van szükség, másolja a szükséges OAuth tulajdonosi jogkivonatot a választható Titkos jogkivonat mezőbe. Ha ezt a mezőt üresen hagyja, Azure AD tartalmaz egy OAuth tulajdonosi jogkivonatot, amelyet Azure AD minden kéréshez kibocsát. Az Azure AD identitásszolgáltatóként használó alkalmazások érvényesíthetik ezt a Azure AD kibocsátott jogkivonatot.

    Megjegyzés

    Nem ajánlott ezt a mezőt üresen hagyni, és a Azure AD által létrehozott jogkivonatra támaszkodni. Ez a lehetőség elsősorban tesztelési célokra érhető el.

  9. Válassza a Kapcsolat tesztelése lehetőséget, hogy Azure AD megpróbáljon csatlakozni az SCIM-végponthoz. Ha a kísérlet sikertelen, hibaüzenet jelenik meg.

    Megjegyzés

    A Tesztkapcsolat lekérdezi egy nem létező felhasználó SCIM-végpontját, és véletlenszerű GUID azonosítót használ a Azure AD konfigurációban kiválasztott egyező tulajdonságként. A várt helyes válasz a HTTP 200 OK egy üres SCIM ListResponse üzenettel.

  10. Ha az alkalmazáshoz való csatlakozás sikeres, válassza a Mentés lehetőséget a rendszergazdai hitelesítő adatok mentéséhez.

  11. A Leképezések szakaszban két választható attribútumleképezés-készlet található: egy a felhasználói objektumokhoz és egy a csoportobjektumokhoz. Jelölje ki mindegyiket az Azure AD és az alkalmazás között szinkronizált attribútumok áttekintéséhez. Az egyező tulajdonságokként kiválasztott attribútumok a frissítési műveletekhez az alkalmazás felhasználóinak és csoportjainak egyeztetésére szolgálnak. A módosítások véglegesítéséhez válassza a Mentés lehetőséget.

    Megjegyzés

    Ha szeretné, letilthatja a csoportobjektumok szinkronizálását a "csoportok" leképezésének letiltásával.

  12. A Beállítások területen a Hatókör mező határozza meg, hogy mely felhasználók és csoportok legyenek szinkronizálva. Válassza a Csak a hozzárendelt felhasználók és csoportok szinkronizálása (ajánlott) lehetőséget, ha csak a Felhasználók és csoportok lapon hozzárendelt felhasználókat és csoportokat szeretné szinkronizálni.

  13. A konfiguráció befejezése után állítsa a Kiépítés állapota beállítást Be értékre.

  14. Válassza a Mentés lehetőséget a Azure AD kiépítési szolgáltatás elindításához.

  15. Ha csak a hozzárendelt felhasználókat és csoportokat szinkronizálja (ajánlott), válassza a Felhasználók és csoportok lapot. Ezután rendelje hozzá a szinkronizálni kívánt felhasználókat vagy csoportokat.

A kezdeti ciklus megkezdése után a bal oldali panelen a Kiépítési naplók lehetőséget választva monitorozhatja az előrehaladást, amely megjeleníti az alkalmazás kiépítési szolgáltatása által végrehajtott összes műveletet. A Azure AD kiépítési naplók olvasásával kapcsolatos további információkért lásd: Jelentéskészítés a felhasználói fiókok automatikus kiépítéséről.

Megjegyzés

A kezdeti ciklus végrehajtása hosszabb időt vesz igénybe, mint a későbbi szinkronizálások, amelyek körülbelül 40 percenként történnek, amíg a szolgáltatás fut.

Ha egynél több bérlő által használt alkalmazást készít, elérhetővé teheti azt a Azure AD alkalmazáskatalógusban. A szervezetek egyszerűen felfedezhetik az alkalmazást, és konfigurálhatja az üzembe helyezést. Az alkalmazás közzététele a Azure AD katalógusban és a kiépítés mások számára is könnyen elérhetővé tétele. Tekintse meg a lépéseket itt. Microsoft önnel együttműködve integrálhatja alkalmazását a katalógusunkba, tesztelheti a végpontot, és közzéteheti az előkészítési dokumentációt az ügyfelek számára.

Az ellenőrzőlista segítségével gyorsan előkészítheti az alkalmazást, és az ügyfelek zökkenőmentes üzembe helyezést tapasztalnak. A katalógusba való beléptetéskor a rendszer összegyűjti az információkat.

  • SCIM 2.0-s felhasználói és csoportvégpontok támogatása (csak egy szükséges, de mindkettő ajánlott)
  • Bérlőnként legalább 25 kérés támogatása annak érdekében, hogy a felhasználók és csoportok kiépítése és megszüntetése késedelem nélkül történjen (Kötelező)
  • Mérnöki és támogatási kapcsolattartók létrehozása az ügyfeleknek a katalógus előkészítését követően (kötelező)
  • 3 Az alkalmazás nem lejáró teszt hitelesítő adatai (kötelező)
  • Az OAuth engedélyezési kód megadásának vagy egy hosszú élettartamú jogkivonat támogatásának támogatása az alábbiak szerint (Kötelező)
  • Mérnöki és támogatási kapcsolattartó pont létrehozása a katalógus előkészítését követő ügyfelek támogatásához (kötelező)
  • Sémafelderítés támogatása (kötelező)
  • Több csoporttagság frissítésének támogatása egyetlen PATCH használatával
  • SCIM-végpont nyilvános dokumentálása

Az SCIM-specifikáció nem határoz meg SCIM-specifikus sémát a hitelesítéshez és engedélyezéshez, és a meglévő iparági szabványok használatára támaszkodik.

Engedélyezési módszer Előnyök Hátrányok Támogatás
Felhasználónév és jelszó (Azure AD nem ajánlott vagy támogatott) Könnyen implementálható Nem biztonságos – A Pa$$word nem számít Új katalógusbeli vagy nem katalógusbeli alkalmazások esetén nem támogatott.
Hosszú élettartamú tulajdonosi jogkivonat A hosszú élettartamú jogkivonatokhoz nincs szükség arra, hogy egy felhasználó jelen legyen. A rendszergazdák egyszerűen használhatják őket a kiépítés beállításakor. A hosszú élettartamú jogkivonatok nehezen oszthatók meg egy rendszergazdával anélkül, hogy nem biztonságos módszereket, például e-maileket használnak. Katalógusbeli és nem katalógusbeli alkalmazások esetében támogatott.
OAuth engedélyezési kód megadása A hozzáférési jogkivonatok sokkal rövidebb élettartamúak, mint a jelszavak, és olyan automatikus frissítési mechanizmusuk van, amellyel a hosszú élettartamú tulajdonosi jogkivonatok nem rendelkeznek. A valódi felhasználónak jelen kell lennie a kezdeti engedélyezés során, és hozzá kell adnia az elszámoltathatóság szintjét. Egy felhasználónak jelen kell lennie. Ha a felhasználó elhagyja a szervezetet, a jogkivonat érvénytelen, és az engedélyezést újra be kell fejezni. Katalógusbeli alkalmazások esetén támogatott, nem katalógusbeli alkalmazások esetén. Rövid távú tesztelési célokra azonban megadhat egy hozzáférési jogkivonatot a felhasználói felületen titkos jogkivonatként. A katalóguson kívüli OAuth-kód megadásának támogatása a katalóguson kívül a katalógusalkalmazás konfigurálható hitelesítési/token URL-címeinek támogatása is része.
OAuth-ügyfél hitelesítő adatainak megadása A hozzáférési jogkivonatok sokkal rövidebb élettartamúak, mint a jelszavak, és olyan automatikus frissítési mechanizmusuk van, amellyel a hosszú élettartamú tulajdonosi jogkivonatok nem rendelkeznek. Az engedélyezési kód megadása és az ügyfél hitelesítő adatai is ugyanazt a hozzáférési jogkivonatot hozzák létre, így a módszerek közötti váltás átlátható az API számára. A kiépítés automatizálható, és az új jogkivonatok felhasználói beavatkozás nélkül is kérhetők. Katalógusbeli alkalmazások esetén támogatott, nem katalógusbeli alkalmazások esetén. Rövid távú tesztelési célokra azonban megadhat egy hozzáférési jogkivonatot a felhasználói felületen titkos jogkivonatként. Az OAuth-ügyfél hitelesítő adatainak nem katalógusban való megadásának támogatása a teendőlistán szerepel.

Megjegyzés

Nem ajánlott üresen hagyni a jogkivonatmezőt a Azure AD üzembe helyezési konfigurációs egyéni alkalmazás felhasználói felületén. A létrehozott jogkivonat elsősorban tesztelési célokra érhető el.

OAuth-kód engedélyezési folyamata

A kiépítési szolgáltatás támogatja az engedélyezési kód megadását , és miután elküldte az alkalmazás katalógusban való közzétételére vonatkozó kérelmét, csapatunk együttműködik Önnel a következő információk gyűjtésében:

  • Engedélyezési URL-cím, egy URL-cím, amelyet az ügyfél kér az erőforrás tulajdonosától a felhasználói ügynök átirányításával. A rendszer átirányítja a felhasználót erre az URL-címre a hozzáférés engedélyezéséhez.

  • Jogkivonatcsere URL-címe, az ügyfél által a hozzáférési jogkivonat engedélyezési engedélyének cseréjére szolgáló URL-cím, általában ügyfél-hitelesítéssel.

  • Ügyfél-azonosító, az engedélyezési kiszolgáló egy ügyfélazonosítót ad ki a regisztrált ügyfélnek, amely egy egyedi sztring, amely az ügyfél által megadott regisztrációs adatokat jelöli. Az ügyfélazonosító nem titkos; az erőforrás tulajdonosa számára elérhető, és nem használható egyedül az ügyfél-hitelesítéshez.

  • Titkos ügyfélkód, az engedélyezési kiszolgáló által létrehozott titkos kód, amely csak az engedélyezési kiszolgáló számára ismert egyedi érték lehet.

Megjegyzés

Az engedélyezési URL-cím és a tokencsere URL-címe jelenleg nem konfigurálható bérlőnként.

Megjegyzés

Az OAuth v1 nem támogatott az ügyfél titkos kódjának felfedése miatt. Az OAuth v2 támogatott.

Ajánlott eljárások (ajánlott, de nem kötelező):

  • Több átirányítási URL-cím támogatása. A rendszergazdák a kiépítést "portal.azure.com" és "aad.portal.azure.com" is konfigurálhatják. A 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élyezhessék a hozzáférést.
  • Több titkos kód támogatása az egyszerű megújításhoz, állásidő nélkül.

OAuth-kódadási folyamat beállítása

  1. Jelentkezzen be a Azure Portal, lépjen a Vállalati alkalmazások>Alkalmazáskiépítés> területére, és válassza az Engedélyezés lehetőséget.

    1. Azure Portal átirányítja a felhasználót az engedélyezési URL-címre (a harmadik féltől származó alkalmazás bejelentkezési oldalára).

    2. Rendszergazda hitelesítő adatokat biztosít a harmadik féltől származó alkalmazásnak.

    3. A harmadik féltől származó alkalmazás visszairányítja a felhasználót a Azure Portal, és megadja a támogatási kódot

    4. Azure AD Provisioning Service meghívja a jogkivonat URL-címét, és megadja az engedélyezési kódot. A harmadik féltől származó alkalmazás válaszol a hozzáférési jogkivonattal, a frissítési jogkivonattal és a lejárati dátummal

  2. A kiépítési ciklus kezdetekor a szolgáltatás ellenőrzi, hogy az aktuális hozzáférési jogkivonat érvényes-e, és szükség esetén kicseréli azt egy új jogkivonatra. A hozzáférési jogkivonatot az alkalmazásnak küldött minden kérés tartalmazza, és a kérés érvényességét minden kérés előtt ellenőrzi a rendszer.

Megjegyzés

Bár nem lehet beállítani az OAuth-t a nem katalógusbeli alkalmazásokon, manuálisan létrehozhat egy hozzáférési jogkivonatot az engedélyezési kiszolgálóról, és titkos jogkivonatként beadhatja azt egy nem katalógusbeli alkalmazásba. Ez lehetővé teszi az SCIM-kiszolgáló és a Azure AD Provisioning Service kompatibilitásának ellenőrzését az alkalmazáskatalógusba való előkészítés előtt, amely támogatja az OAuth-kód megadását.

Hosszú élettartamú OAuth-tulajdonosi jogkivonatok: Ha az alkalmazás nem támogatja az OAuth engedélyezési kód engedélyezési folyamatát, hozzon létre egy hosszú élettartamú OAuth-tulajdonosi jogkivonatot, amellyel a rendszergazda beállíthatja a kiépítési integrációt. A jogkivonatnak állandónak kell lennie, különben a kiépítési feladat karanténba kerül, amikor a jogkivonat lejár.

További hitelesítési és engedélyezési módszerekért tudassa velünk a UserVoice-on.

A közös integráció ismertségének és igényének növelése érdekében javasoljuk, hogy frissítse a meglévő dokumentációt, és erősítse meg az integrációt a marketingcsatornákban. Javasoljuk, hogy töltse ki az alábbi ellenőrzőlistát az indítás támogatásához:

  • Győződjön meg arról, hogy az értékesítési és az ügyfélszolgálati csapatok tisztában vannak az integrációs képességekkel, készen állnak és tudnak beszélni. Tájékoztassa a csapatokat, adja meg nekik a gyakori kérdéseket, és foglalja bele az értékesítési anyagokba való integrációt.
  • Hozzon létre egy blogbejegyzést vagy sajtóközleményt, amely leírja a közös integrációt, az előnyöket és az első lépések módját. Példa: Imprivata és Azure AD Sajtóközlemény
  • Használja ki a közösségi médiát, például a Twittert, a Facebookot vagy a LinkedInt, hogy elősegítse az integrációt az ügyfelek számára. Ügyeljen arra, hogy belefoglaljuk @AzureAD , hogy újra le tudjuk-e foglalni a bejegyzést. Példa: Imprivata Twitter Post
  • Hozza létre vagy frissítse marketingoldalait/webhelyét (például integrációs oldal, partneroldal, díjszabási oldal stb.), hogy tartalmazza a közös integráció elérhetőségét. Példa: Pingboard integration Page, Smartsheet integration page, Monday.com pricing page
  • Hozzon létre egy súgóközpont-cikket vagy műszaki dokumentációt arról, hogy az ügyfelek hogyan kezdhetik meg az első lépéseket. Példa: Envoy + Microsoft Azure AD integráció.
  • Értesítse az ügyfeleket az új integrációról az ügyfél kommunikációja révén (havi hírlevelek, e-mail kampányok, termékkiadási megjegyzések).

Következő lépések