Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Egy pillantással
Cél: CRUD API szimulálása Entra-hitelesítéssel
Idő: 20 perc
Beépülő modulok:CrudApiPlugin
Előfeltételek:Fejlesztői proxy beállítása
Alkalmazások létrehozásakor gyakran használ háttér API-kat. Előfordulhat, hogy ezek az API-k még nem érhetők el, vagy más csapatok frissítik őket, hogy megfeleljenek a legújabb követelményeknek. A várakozás elkerülése érdekében általában egy szimulált API-t hoz létre, amely visszaadja a szükséges adatokat. Bár ez a megközelítés feloldja a letiltást, időt kell szánnia egy OLYAN API létrehozására, amelyet végül lecserél a valódira. Még bonyolultabb lesz, ha az API-t a Microsoft Entra használatával kell biztonságossá tenni. A felesleges idő elkerülése érdekében a Dev Proxy használatával szimulálhatja a CRUD API-t, és felgyorsíthatja a fejlesztést.
CrudApiPluginA crud (létrehozás, olvasás, frissítés, törlés) API-t szimulálhatja egy memóriabeli adattárral. Egy egyszerű konfigurációs fájl használatával meghatározhatja, hogy a modell API mely URL-címeket támogatja, és milyen adatokat ad vissza. A beépülő modul emellett támogatja a CORS-t az ügyféloldali alkalmazások tartományközi használatához. A beépülő modul támogatja a Microsoft Entra-hitelesítést is, így biztonságossá teheti a makett API-t a Microsoft Entra használatával, és ugyanazt a hitelesítési folyamatot implementálhatja az alkalmazáshoz, mint az éles környezetben.
Forgatókönyv
Például olyan alkalmazást készít, amely lehetővé teszi a felhasználók számára az ügyfelek kezelését. Az adatok lekéréséhez meg kell hívnia a /customers háttér API végpontját. Az API-t a Microsoft Entra védi. Annak érdekében, hogy a háttérrendszer csapata ne várjon a munkájuk befejezésére, úgy dönt, hogy a Dev Proxy használatával szimulálja az API-t, és visszaadja a szükséges adatokat.
Mielőtt elkezdené
Először hozzon létre egy szimulált CRUD API-t ügyféladatokkal. Az API működésének megerősítése után biztonságossá teheti azt a Microsoft Entra használatával.
1. példa: A Microsoft Entra által védett CRUD API szimulálása egyetlen hatókör használatával
Az első példában a teljes API-t egyetlen hatókörrel védi. Függetlenül attól, hogy a felhasználóknak információt kell kérniük az ügyfelekről, vagy frissíteniük kell őket, ugyanazt az engedélyt kell használniuk.
A customers-api.json fájlban adjon hozzá információt az Entráról.
Fájl:customers-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/crudapiplugin.apifile.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"auth": "entra",
"entraAuthConfig": {
"audience": "https://api.contoso.com",
"issuer": "https://login.microsoftonline.com/contoso.com",
"scopes": ["api://contoso.com/user_impersonation"]
},
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
}
]
}
A auth tulajdonság entra értékre állításával meghatározza, hogy az API-t a Microsoft Entra védi. A tulajdonságban entraAuthConfig adja meg a konfiguráció részleteit. A audience tulajdonság az API célközönségét, a issuer tulajdonság a jogkivonatok kiállítóját, a scopes tulajdonság pedig az API eléréséhez szükséges hatóköröket határozza meg. Mivel az API-fájl gyökérszintjén van definiálva scopes , minden műveletnek ugyanazt a hatókört kell megadnia.
Ha token nélkül próbálja meghívni az API-t a megadott közönséggel, kiállítóval és jogosultságokkal, a válasz 401 Unauthorized jelenik meg.
Feljegyzés
Ebben a szakaszban a Dev Proxy nem érvényesíti a tokent. Csak azt ellenőrzi, hogy a jogkivonat jelen van-e, és rendelkezik-e a szükséges célközönséggel, kiállítóval és hatókörökkel. Ez kényelmes a korai fejlesztés során, ha még nem rendelkezik valódi Microsoft Entra-alkalmazásregisztrációval, és nem tud valódi jogkivonatot beszerezni.
2. példa: A Microsoft Entra által biztosított CRUD API szimulálása különböző hatókörök használatával különböző műveletekhez
A különböző API-műveletek sok esetben eltérő engedélyeket igényelnek. Az ügyfelek adatainak lekéréséhez például más engedélyre lehet szükség, mint a frissítésükre. Ebben a példában különböző API-műveleteket biztosít különböző hatókörökkel.
Frissítse a fájlt az customers-api.json alábbiak szerint:
Fájl:customers-api.json (műveletszintű hatókörökkel)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/crudapiplugin.apifile.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"auth": "entra",
"entraAuthConfig": {
"audience": "https://api.contoso.com",
"issuer": "https://login.microsoftonline.com/contoso.com"
},
"actions": [
{
"action": "getAll",
"auth": "entra",
"entraAuthConfig": {
"scopes": ["api://contoso.com/customer.read"]
}
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]",
"auth": "entra",
"entraAuthConfig": {
"scopes": ["api://contoso.com/customer.read"]
}
},
{
"action": "create",
"auth": "entra",
"entraAuthConfig": {
"scopes": ["api://contoso.com/customer.write"]
}
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]",
"auth": "entra",
"entraAuthConfig": {
"scopes": ["api://contoso.com/customer.write"]
}
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]",
"auth": "entra",
"entraAuthConfig": {
"scopes": ["api://contoso.com/customer.write"]
}
}
]
}
Ezúttal nem adja meg a scopes jelölőt az API-fájl gyökérszintjén. Ehelyett minden művelethez meg kell adnia őket. Így különböző műveleteket biztosíthat különböző hatókörökkel. Az ügyfelek adatainak lekéréséhez például a api://contoso.com/customer.read hatókör szükséges, míg az ügyfelek frissítéséhez a api://contoso.com/customer.write hatókör.
Tokenek érvényesítése
A Dev Proxy lehetővé teszi, hogy szimuláljon egy, a Microsoft Entra által védett CRUD API-t, és ellenőrizze, hogy érvényes jogkivonatot használ-e. A jogkivonat érvényesítése akkor kényelmes, ha alkalmazásregisztrációval rendelkezik a Microsoft Entra-ban, de a csapat még mindig építi az API-t. Lehetővé teszi az alkalmazás pontosabb tesztelését.
Ha azt szeretné, hogy a Dev Proxy érvényesítse a hozzáférési jogkivonatot, a tulajdonsághoz entraAuthConfig adja hozzá a validateSigningKey tulajdonságot, és állítsa a következőre true:
Fájl:customers-api.json (jogkivonat-ellenőrzéssel)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/crudapiplugin.apifile.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"auth": "entra",
"entraAuthConfig": {
"audience": "https://api.contoso.com",
"issuer": "https://login.microsoftonline.com/contoso.com",
"scopes": ["api://contoso.com/user_impersonation"],
"validateSigningKey": true
},
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
}
]
}
Ha saját készítésű tokennel próbálja hívni az API-t, 401 Unauthorized választ kap. A Dev Proxy csak a Microsoft Entra által kiadott érvényes jogkivonattal rendelkező kéréseket engedélyezi.
Következő lépés
További információ a CrudApiPluginról.
Példák
Lásd még a kapcsolódó Dev Proxy-mintákat: