gebeurtenis
Microsoft 365 Community Conference
6 mei, 14 - 9 mei, 00
Vaardigheid voor het tijdperk van AI op het ultieme Microsoft 365-evenement, 6-8 mei in Las Vegas.
Meer informatieDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
Bij het bouwen van apps werkt u vaak met back-end-API's. Soms zijn deze API's nog niet beschikbaar, of andere teams werken ze bij om te voldoen aan de nieuwste vereisten. Om te voorkomen dat u wacht, maakt u doorgaans een mock-API die de gegevens retourneert die u nodig hebt. Hoewel deze methode u deblokkert, moet u tijd besteden aan het bouwen van een API die u uiteindelijk vervangt door de echte. Het wordt nog ingewikkelder wanneer u uw API moet beveiligen met Microsoft Entra. Om te voorkomen dat u tijd verspilt, kunt u Dev Proxy gebruiken om een CRUD-API te simuleren en de ontwikkeling te versnellen.
Met behulp van de CrudApiPlugin
API kunt u een CRUD-API (Maken, Lezen, Bijwerken, Verwijderen) simuleren met een gegevensarchief in het geheugen. Met behulp van een eenvoudig configuratiebestand kunt u definiëren welke URL's uw mock-API ondersteunt en welke gegevens worden geretourneerd. De invoegtoepassing biedt ook ondersteuning voor CORS voor gebruik tussen domeinen vanuit toepassingen aan de clientzijde. De invoegtoepassing biedt ook ondersteuning voor Microsoft Entra-verificatie, zodat u uw mock-API kunt beveiligen met Microsoft Entra en dezelfde verificatiestroom voor uw app kunt implementeren als in uw productieomgeving.
Stel dat u een app bouwt waarmee gebruikers klanten kunnen beheren. Als u de gegevens wilt ophalen, moet u het /customers
eindpunt van de back-end-API aanroepen. De API is beveiligd met Microsoft Entra. Om te voorkomen dat het back-endteam wacht totdat het werk is voltooid, besluit u Dev Proxy te gebruiken om de API te simuleren en de benodigde gegevens te retourneren.
U begint met het maken van een gesimuleerde CRUD-API met klantgegevens. Nadat u hebt bevestigd dat de API werkt, kunt u deze beveiligen met Microsoft Entra.
In het eerste voorbeeld beveiligt u de hele API met één bereik. Ongeacht of gebruikers informatie over klanten moeten krijgen of ze moeten bijwerken, gebruiken ze dezelfde machtiging.
Voeg in het customers-api.json
bestand informatie over Entra toe.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/crudapiplugin.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})]"
}
]
}
Door de auth
eigenschap in te stellen die entra
u opgeeft, wordt de API beveiligd met Microsoft Entra. In de entraAuthConfig
eigenschap geeft u de configuratiegegevens op. De audience
eigenschap specificeert de doelgroep van de API, de issuer
eigenschap geeft de verlener van de tokens op en de scopes
eigenschap specificeert de bereiken die vereist zijn voor toegang tot de API. Omdat u definieert scopes
op het hoofdniveau van het API-bestand, hebben alle acties hetzelfde bereik nodig.
Als u de API probeert aan te roepen zonder een token met de opgegeven doelgroep, verlener en bereiken, krijgt u een 401 Unauthorized
antwoord.
Notitie
In deze fase valideert Dev Proxy het token niet. Er wordt alleen gecontroleerd of het token aanwezig is en de vereiste doelgroep, verlener en bereiken heeft. Dit is handig tijdens de vroege ontwikkeling, wanneer u nog geen echte Registratie van Microsoft Entra-apps hebt en geen echt token kunt krijgen.
In veel gevallen zijn voor verschillende API-bewerkingen verschillende machtigingen vereist. Voor het ophalen van informatie over klanten is bijvoorbeeld mogelijk een andere machtiging vereist dan het bijwerken ervan. In dit voorbeeld beveiligt u verschillende API-acties met verschillende bereiken.
Werk het customers-api.json
bestand als volgt bij:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/crudapiplugin.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"]
}
}
]
}
Deze keer geeft scopes
u het hoofdniveau van het API-bestand niet op. In plaats daarvan geeft u deze op voor elke actie. Op deze manier kunt u verschillende acties beveiligen met verschillende bereiken. Het ophalen van informatie over klanten vereist bijvoorbeeld het api://contoso.com/customer.read
bereik, terwijl het bijwerken van klanten het api://contoso.com/customer.write
bereik vereist.
Met dev Proxy kunt u een CRUD-API simuleren die is beveiligd met Microsoft Entra en controleren of u een geldig token gebruikt. Het valideren van het token is handig wanneer u een app-registratie in Microsoft Entra hebt, maar het team bouwt nog steeds de API. Hiermee kunt u uw app nauwkeuriger testen.
Als u wilt dat Dev Proxy het toegangstoken valideert, voegt u de eigenschap toe aan de entraAuthConfig
eigenschap en stelt u true
deze validateSigningKey
in op:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.24.0/crudapiplugin.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})]"
}
]
}
Als u de API probeert aan te roepen met een zelf ontworpen token, krijgt u een 401 Unauthorized
antwoord. Dev Proxy staat alleen aanvragen toe met een geldig token dat is uitgegeven door Microsoft Entra.
Meer informatie over de CrudApiPlugin.
Zie ook de gerelateerde Dev Proxy-voorbeelden:
Dev Proxy-feedback
Dev Proxy is een open source project. Selecteer een koppeling om feedback te geven:
gebeurtenis
Microsoft 365 Community Conference
6 mei, 14 - 9 mei, 00
Vaardigheid voor het tijdperk van AI op het ultieme Microsoft 365-evenement, 6-8 mei in Las Vegas.
Meer informatieTraining
Module
Authenticate your API plugin for declarative agents with secured APIs - Training
When building apps for work, you typically integrate with secured APIs. Learn about the two common ways of how APIs are secured – API key and OAuth2, and how to integrate with them when building an API plugin for declarative agents that run in Microsoft 365 Copilot.
Certificering
Microsoft Gecertificeerd: Identiteits- en Toegangsbeheerbeheerder Associate - Certifications
Demonstreer de functies van Microsoft Entra ID om identiteitsoplossingen te moderniseren, hybride oplossingen te implementeren en identiteitsbeheer te implementeren.