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.
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.
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.
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.
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.
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.
[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.
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:
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).
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ó
tag
kiépítésének engedélyezéséhez.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 | |
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 emails phoneNumbers . 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 id username externalId alapértelmezés szerint az és a lekérdezi, a csoportokat pedig a lekérdezi a displayName rendszer. |
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éveListResponse
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 PATCH
op
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ékeketop
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:
- A lekérdezési/szűrési kérésre adott válasznak mindig egynek
ListResponse
kell lennie. - Microsoft Azure AD csak a következő operátorokat használja:
eq
,and
- Az erőforrások lekérdezhető attribútumát egyező attribútumként kell beállítani az alkalmazáshoz a Azure Portal, lásd: Felhasználókiépítési attribútumleképezések testreszabása.
/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.
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ó:
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ó létrehozása (kérelemre / adott válasz)
- Felhasználó lekérése (kérelemre / adott válasz)
- Felhasználó lekérése lekérdezés alapján (kérelemválasz / )
- Felhasználó lekérése lekérdezés alapján – Nulla eredmény (kérelemre / adott válasz)
- Felhasználó frissítése [Többértékű tulajdonságok] (Kérelemválasz / )
- Felhasználó frissítése [Egyértékű tulajdonságok] (Kérés / válasza)
- Felhasználó letiltása (kérésre / adott válasz)
- Felhasználó törlése (kérelemre / adott válasz)
- Csoport létrehozása (kérésválasz / )
- Csoport lekérése (kérésre / adott válasz)
- Csoport lekérése displayName (kérelemválasz / ) alapján
- [Nem tag attribútumok] nevű csoport frissítése (kérelemre / adott válasz)
- Csoport frissítése [Tagok hozzáadása] (kérelemre / adott válasz)
- Csoport frissítése [Tagok eltávolítása] (kérelemre / adott válasz)
- Csoport törlése (kérelemre / adott válasz)
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.
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ékhttps://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 externalId
esetben ) 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:
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á)
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.
Válassza az + Új alkalmazás>+ Saját alkalmazás létrehozása lehetőséget.
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ó:
Az alkalmazásfelügyeleti képernyőn válassza a kiépítés lehetőséget a bal oldali panelen.
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:
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/
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.
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.
Ha az alkalmazáshoz való csatlakozás sikeres, válassza a Mentés lehetőséget a rendszergazdai hitelesítő adatok mentéséhez.
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.
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.
A konfiguráció befejezése után állítsa a Kiépítés állapota beállítást Be értékre.
Válassza a Mentés lehetőséget a Azure AD kiépítési szolgáltatás elindításához.
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.
Az alkalmazás közzététele az Azure AD alkalmazáskatalógusban
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.
Katalógus előkészítési ellenőrzőlistája
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 összekötők kiépítésének engedélyezése az alkalmazáskatalógusban
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
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.
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).
Rendszergazda hitelesítő adatokat biztosít a harmadik féltől származó alkalmazásnak.
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
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
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.
Katalógus piacra lépési indítási ellenőrzőlista
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
SCIM-mintavégpont fejlesztéseA felhasználók átadásának és megszüntetésének automatizálása SaaS-alkalmazásokbanAttribútumleképezések testreszabása felhasználókiépítéshezKifejezések írása attribútumleképezésekhezHatókörszűrők a felhasználók átadásáhozFiókkiépítési értesítésekAz SaaS-alkalmazások integrálásával kapcsolatos oktatóanyagok listája