Delen via


Sleutelloze verificatie configureren met Microsoft Entra-id

Belangrijk

Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

Modellen die zijn geïmplementeerd in Azure AI-modeldeductie in Azure AI Services ondersteunen sleutelloze autorisatie met behulp van Microsoft Entra-id. Sleutelloze autorisatie verbetert de beveiliging, vereenvoudigt de gebruikerservaring, vermindert de operationele complexiteit en biedt robuuste nalevingsondersteuning voor moderne ontwikkeling. Het maakt het een sterke keuze voor organisaties die veilige en schaalbare oplossingen voor identiteitsbeheer gebruiken.

In dit artikel wordt uitgelegd hoe u Microsoft Entra-id configureert voor deductie in Azure AI-modeldeductie.

Inzicht in rollen in de context van resources in Azure

Microsoft Entra ID maakt gebruik van het idee van op rollen gebaseerd toegangsbeheer (RBAC) voor autorisatie. Rollen zijn centraal voor het beheren van de toegang tot uw cloudresources. Een rol is in wezen een verzameling machtigingen waarmee wordt gedefinieerd welke acties kunnen worden uitgevoerd op specifieke Azure-resources. Door rollen toe te wijzen aan gebruikers, groepen, service-principals of beheerde identiteiten( gezamenlijk bekend als beveiligingsprinciplen), beheert u de toegang binnen uw Azure-omgeving tot specifieke resources.

Wanneer u een rol toewijst, geeft u de beveiligingsprincipaal, de roldefinitie en het bereik op. Deze combinatie wordt een roltoewijzing genoemd. Azure AI-modeldeductie is een mogelijkheid van de Azure AI Services-resources en daarom hebben rollen die zijn toegewezen aan die specifieke resource de toegang tot deductie te beheren.

U identificeert twee verschillende typen toegang tot de resources:

  • Beheertoegang: de acties die zijn gerelateerd aan het beheer van de resource. Ze wijzigen meestal de status van de resource en de configuratie ervan. In Azure zijn deze bewerkingen besturingsvlakbewerkingen en kunnen ze worden uitgevoerd met behulp van Azure Portal, de Azure CLI of met infrastructuur als code. Voorbeelden hiervan zijn het maken van nieuwe modelimplementaties, het wijzigen van configuraties voor inhoudsfilters, het wijzigen van de versie van het aangeboden model of het wijzigen van de SKU van een implementatie.

  • Toegang tot ontwikkelaars: de acties die zijn gerelateerd aan het verbruik van de resources. Bijvoorbeeld door de API voor het voltooien van chats aan te roepen. De gebruiker kan de status van de resource en de configuratie ervan echter niet wijzigen.

In Azure worden beheerbewerkingen altijd uitgevoerd met behulp van Microsoft Entra-id. Met rollen zoals Cognitive Services-inzender kunt u deze bewerkingen uitvoeren. Aan de andere kant kunnen ontwikkelaarsbewerkingen worden uitgevoerd met behulp van toegangssleutels of/en Microsoft Entra-id. Met rollen zoals Cognitive Services-gebruiker kunt u deze bewerkingen uitvoeren.

Belangrijk

Als u beheerderstoegang tot een resource hebt, verleent dit niet per se ontwikkelaarstoegang. Expliciete toegang door rollen te verlenen is nog steeds vereist. Het is vergelijkbaar met de werking van databaseservers. Als u beheerderstoegang tot de databaseserver hebt, betekent dit niet dat u de gegevens in een database kunt lezen.

Volg deze stappen om de toegang van ontwikkelaars tot azure AI-modeldeductie te configureren in de Azure AI Services-resource.

Vereisten

U hebt het volgende nodig om dit artikel te voltooien:

  • Een Azure-abonnement. Als u GitHub-modellen gebruikt, kunt u uw ervaring upgraden en een Azure-abonnement maken in het proces. Lees Upgrade van GitHub-modellen naar Azure AI-modeldeductie als dit uw geval is.

  • Een Azure AI-servicesresource. Zie Een Azure AI Services-resource maken voor meer informatie.

  • Een account met Microsoft.Authorization/roleAssignments/write en Microsoft.Authorization/roleAssignments/delete machtigingen, zoals op rollen gebaseerd toegangsbeheer van de beheerder .

  • Als u een rol wilt toewijzen, moet u drie elementen opgeven:

    • Beveiligingsprincipaal: bijvoorbeeld uw gebruikersaccount.
    • Roldefinitie: de rol Cognitive Services-gebruiker .
    • Bereik: de Azure AI Services-resource.

Microsoft Entra-id configureren voor deductie

Volg deze stappen om Microsoft Entra-id te configureren voor deductie:

  1. Ga naar Azure Portal en zoek de Azure AI Services-resource die u gebruikt. Als u Azure AI Foundry gebruikt met projecten of hubs, kunt u ernaartoe navigeren door:

    1. Ga naar de Azure AI Foundry-portal.

    2. Selecteer Op de landingspagina open beheercentrum.

    3. Ga naar de sectie Verbonden resources en selecteer de verbinding met de Azure AI Services-resource die u wilt configureren. Als deze niet wordt weergegeven, selecteert u Alles weergeven om de volledige lijst weer te geven.

    4. Selecteer in de sectie Verbindingsgegevens onder Resource de naam van de Azure-resource. Er wordt een nieuwe pagina geopend.

    5. U bent nu in Azure Portal waar u alle aspecten van de resource zelf kunt beheren.

  2. Selecteer op de linkernavigatiebalk toegangsbeheer (IAM).

    Tip

    Gebruik de optie Mijn toegang weergeven om te controleren welke rollen al aan u zijn toegewezen.

  3. Selecteer Roltoewijzingen en selecteer vervolgens Roltoewijzing toevoegen>.

  4. Bij functierollen van de taak typt u Cognitive Services-gebruiker. De lijst met rollen wordt uitgefilterd.

  5. Selecteer de rol en selecteer Volgende.

  6. Selecteer bij Leden de gebruiker of groep waaraan u toegang wilt verlenen. We raden u aan waar mogelijk beveiligingsgroepen te gebruiken, omdat ze gemakkelijker te beheren en onderhouden zijn.

  7. Selecteer Volgende en voltooi de wizard.

  8. De geselecteerde gebruiker kan nu Microsoft Entra-id gebruiken voor deductie.

    Tip

    Houd er rekening mee dat het maximaal vijf minuten kan duren voordat Azure-roltoewijzingen zijn doorgegeven. Wanneer u met beveiligingsgroepen werkt, worden gebruikers onmiddellijk toegevoegd aan of verwijderd uit de beveiligingsgroep.

U ziet dat toegang op basis van sleutels nog steeds mogelijk is voor gebruikers die al sleutels voor hen beschikbaar hebben. Als u de sleutels wilt intrekken, selecteert u in De Azure-portal in het linkernavigatievenster resourcebeheersleutels>en -eindpunten>Opnieuw genereren sleutel1 en genereer sleutel2 opnieuw.

Microsoft Entra-id gebruiken in uw code

Nadat u De Microsoft Entra-id in uw resource hebt geconfigureerd, moet u uw code bijwerken om deze te gebruiken bij gebruik van het deductie-eindpunt. In het volgende voorbeeld ziet u hoe u een model voor het voltooien van chats gebruikt:

Installeer het pakket azure-ai-inference met behulp van uw pakketbeheer, zoals pip:

pip install azure-ai-inference>=1.0.0b5

Waarschuwing

Voor de Azure AI Services-resource is de versie azure-ai-inference>=1.0.0b5 voor Python vereist.

Vervolgens kunt u het pakket gebruiken om het model te gebruiken. In het volgende voorbeeld ziet u hoe u een client maakt om chatvoltooiingen te gebruiken met entra-id:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import DefaultAzureCredential

client = ChatCompletionsClient(
    endpoint="https://<resource>.services.ai.azure.com/models",
    credential=DefaultAzureCredential(),
    credential_scopes=["https://cognitiveservices.azure.com/.default"],
    model="mistral-large-2407",
)

Opties voor referenties bij het gebruik van Microsoft Entra-id

DefaultAzureCredential is een geordende volgorde van mechanismen voor verificatie bij Microsoft Entra-id. Elk verificatiemechanisme is een klasse die is afgeleid van de TokenCredential klasse en wordt een referentie genoemd. Tijdens runtime DefaultAzureCredential wordt geprobeerd om te verifiëren met behulp van de eerste referentie. Als deze referentie geen toegangstoken kan verkrijgen, wordt de volgende referentie in de reeks geprobeerd, enzovoort, totdat een toegangstoken is verkregen. Op deze manier kan uw app verschillende referenties in verschillende omgevingen gebruiken zonder omgevingsspecifieke code te schrijven.

Wanneer de voorgaande code wordt uitgevoerd op uw lokale ontwikkelwerkstation, wordt er gezocht in de omgevingsvariabelen voor een toepassingsservice-principal of in lokaal geïnstalleerde ontwikkelhulpprogramma's, zoals Visual Studio, voor een set ontwikkelaarsreferenties. Beide benaderingen kunnen worden gebruikt om de app te verifiëren bij Azure-resources tijdens lokale ontwikkeling.

Wanneer deze code wordt geïmplementeerd in Azure, kan dezelfde code uw app ook verifiëren bij andere Azure-resources. DefaultAzureCredential kan omgevingsinstellingen en beheerde identiteitsconfiguraties ophalen om automatisch te verifiëren bij andere services.

Aanbevolen procedures

  • Gebruik deterministische referenties in productieomgevingen: overweeg om over te stappen van DefaultAzureCredential een van de volgende deterministische oplossingen voor productieomgevingen:

    • Een specifieke TokenCredential implementatie, zoals ManagedIdentityCredential. Zie de afgeleide lijst voor opties.
    • Een geparseerde implementatie die is geoptimaliseerd voor de Azure-omgeving ChainedTokenCredential waarin uw app wordt uitgevoerd. ChainedTokenCredential maakt in wezen een specifieke acceptatielijst met acceptabele referentieopties, zoals ManagedIdentity voor productie en VisualStudioCredential voor ontwikkeling.
  • Configureer door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteiten aan de Azure-resources waar uw code wordt uitgevoerd, indien mogelijk. Configureer Microsoft Entra ID-toegang tot deze specifieke identiteiten.

Microsoft Entra-id gebruiken in uw project

Zelfs wanneer uw resource Microsoft Entra-id heeft geconfigureerd, gebruiken uw projecten mogelijk nog steeds sleutels om voorspellingen van de resource te gebruiken. Wanneer u de Azure AI Foundry-speeltuin gebruikt, worden de referenties gebruikt die zijn gekoppeld aan de verbinding die uw project heeft.

Als u dit gedrag wilt wijzigen, moet u de verbindingen van uw projecten bijwerken om Microsoft Entra-id te gebruiken. Volg vervolgens deze stappen:

  1. Ga naar de Azure AI Foundry-portal.

  2. Navigeer via een verbinding naar de projecten of hubs die gebruikmaken van de Azure AI Services-resource.

  3. Selecteer Beheercentrum.

  4. Ga naar de sectie Verbonden resources en selecteer de verbinding met de Azure AI Services-resource die u wilt configureren. Als deze niet wordt weergegeven, selecteert u Alles weergeven om de volledige lijst weer te geven.

  5. Selecteer in de sectie Verbindingsgegevens naast Access-details het bewerkingspictogram.

  6. Wijzig onder Verificatie de waarde in Microsoft Entra-id.

  7. Selecteer Bijwerken.

  8. Uw verbinding is nu geconfigureerd voor gebruik met Microsoft Entra-id.

Verificatie op basis van sleutels uitschakelen in de resource

Het uitschakelen van verificatie op basis van sleutels is raadzaam wanneer u Microsoft Entra-id hebt geïmplementeerd en compatibiliteits- of terugvalproblemen volledig hebt opgelost in alle toepassingen die de service gebruiken.

Belangrijk

Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

Modellen die zijn geïmplementeerd in Azure AI-modeldeductie in Azure AI Services ondersteunen sleutelloze autorisatie met behulp van Microsoft Entra-id. Sleutelloze autorisatie verbetert de beveiliging, vereenvoudigt de gebruikerservaring, vermindert de operationele complexiteit en biedt robuuste nalevingsondersteuning voor moderne ontwikkeling. Het maakt het een sterke keuze voor organisaties die veilige en schaalbare oplossingen voor identiteitsbeheer gebruiken.

In dit artikel wordt uitgelegd hoe u Microsoft Entra-id configureert voor deductie in Azure AI-modeldeductie.

Inzicht in rollen in de context van resources in Azure

Microsoft Entra ID maakt gebruik van het idee van op rollen gebaseerd toegangsbeheer (RBAC) voor autorisatie. Rollen zijn centraal voor het beheren van de toegang tot uw cloudresources. Een rol is in wezen een verzameling machtigingen waarmee wordt gedefinieerd welke acties kunnen worden uitgevoerd op specifieke Azure-resources. Door rollen toe te wijzen aan gebruikers, groepen, service-principals of beheerde identiteiten( gezamenlijk bekend als beveiligingsprinciplen), beheert u de toegang binnen uw Azure-omgeving tot specifieke resources.

Wanneer u een rol toewijst, geeft u de beveiligingsprincipaal, de roldefinitie en het bereik op. Deze combinatie wordt een roltoewijzing genoemd. Azure AI-modeldeductie is een mogelijkheid van de Azure AI Services-resources en daarom hebben rollen die zijn toegewezen aan die specifieke resource de toegang tot deductie te beheren.

U identificeert twee verschillende typen toegang tot de resources:

  • Beheertoegang: de acties die zijn gerelateerd aan het beheer van de resource. Ze wijzigen meestal de status van de resource en de configuratie ervan. In Azure zijn deze bewerkingen besturingsvlakbewerkingen en kunnen ze worden uitgevoerd met behulp van Azure Portal, de Azure CLI of met infrastructuur als code. Voorbeelden hiervan zijn het maken van nieuwe modelimplementaties, het wijzigen van configuraties voor inhoudsfilters, het wijzigen van de versie van het aangeboden model of het wijzigen van de SKU van een implementatie.

  • Toegang tot ontwikkelaars: de acties die zijn gerelateerd aan het verbruik van de resources. Bijvoorbeeld door de API voor het voltooien van chats aan te roepen. De gebruiker kan de status van de resource en de configuratie ervan echter niet wijzigen.

In Azure worden beheerbewerkingen altijd uitgevoerd met behulp van Microsoft Entra-id. Met rollen zoals Cognitive Services-inzender kunt u deze bewerkingen uitvoeren. Aan de andere kant kunnen ontwikkelaarsbewerkingen worden uitgevoerd met behulp van toegangssleutels of/en Microsoft Entra-id. Met rollen zoals Cognitive Services-gebruiker kunt u deze bewerkingen uitvoeren.

Belangrijk

Als u beheerderstoegang tot een resource hebt, verleent dit niet per se ontwikkelaarstoegang. Expliciete toegang door rollen te verlenen is nog steeds vereist. Het is vergelijkbaar met de werking van databaseservers. Als u beheerderstoegang tot de databaseserver hebt, betekent dit niet dat u de gegevens in een database kunt lezen.

Volg deze stappen om de toegang van ontwikkelaars tot azure AI-modeldeductie te configureren in de Azure AI Services-resource.

Vereisten

U hebt het volgende nodig om dit artikel te voltooien:

  • Een Azure-abonnement. Als u GitHub-modellen gebruikt, kunt u uw ervaring upgraden en een Azure-abonnement maken in het proces. Lees Upgrade van GitHub-modellen naar Azure AI-modeldeductie als dit uw geval is.

  • Een Azure AI-servicesresource. Zie Een Azure AI Services-resource maken voor meer informatie.

  • Een account met Microsoft.Authorization/roleAssignments/write en Microsoft.Authorization/roleAssignments/delete machtigingen, zoals op rollen gebaseerd toegangsbeheer van de beheerder .

  • Als u een rol wilt toewijzen, moet u drie elementen opgeven:

    • Beveiligingsprincipaal: bijvoorbeeld uw gebruikersaccount.
    • Roldefinitie: de rol Cognitive Services-gebruiker .
    • Bereik: de Azure AI Services-resource.
  • Installeer de Azure CLI.

  • Identificeer de volgende informatie:

    • Uw Azure-abonnements-id.

    • De resourcenaam van uw Azure AI Services.

    • De resourcegroep waarin de Azure AI Services-resource wordt geïmplementeerd.

Microsoft Entra-id configureren voor deductie

Volg deze stappen om De Microsoft Entra-id te configureren voor deductie in uw Azure AI Services-resource:

  1. Meld u aan bij uw Azure-abonnement:

    az login
    
  2. Als u meer dan één abonnement hebt, selecteert u het abonnement waarin uw resource zich bevindt:

    az account set --subscription "<subscription-id>"
    
  3. Stel de volgende omgevingsvariabelen in met de naam van de Azure AI Services-resource die u wilt gebruiken en resourcegroep.

    ACCOUNT_NAME="<ai-services-resource-name>"
    RESOURCE_GROUP="<resource-group>"
    
  4. Haal de volledige naam van uw resource op:

    RESOURCE_ID=$(az resource show -g $RESOURCE_GROUP -n $ACCOUNT_NAME --resource-type "Microsoft.CognitiveServices/accounts")
    
  5. Haal de object-id op van de beveiligingsprincipaal waaraan u machtigingen wilt toewijzen. In het volgende voorbeeld ziet u hoe u de object-id kunt ophalen die is gekoppeld aan:

    Uw eigen aangemelde account:

    OBJECT_ID=$(az ad signed-in-user show --query id --output tsv)
    

    Een beveiligingsgroep:

    OBJECT_ID=$(az ad group show --group "<group-name>" --query id --output tsv)
    

    Een service-principal:

    OBJECT_ID=$(az ad sp show --id "<service-principal-guid>" --query id --output tsv)
    
  6. Wijs de rol Cognitive Services-gebruiker toe aan de service-principal (gericht op de resource). Door een rol toe te wijzen, verleent u service-principal toegang tot deze resource.

    az role assignment create --assignee-object-id $OBJECT_ID --role "Cognitive Services User" --scope $RESOURCE_ID
    
  7. De geselecteerde gebruiker kan nu Microsoft Entra-id gebruiken voor deductie.

    Tip

    Houd er rekening mee dat het maximaal vijf minuten kan duren voordat Azure-roltoewijzingen zijn doorgegeven. Het toevoegen of verwijderen van gebruikers uit een beveiligingsgroep wordt onmiddellijk doorgegeven.

Microsoft Entra-id gebruiken in uw code

Zodra Microsoft Entra-id is geconfigureerd in uw resource, moet u uw code bijwerken om deze te gebruiken bij gebruik van het deductie-eindpunt. In het volgende voorbeeld ziet u hoe u een model voor het voltooien van chats gebruikt:

Installeer het pakket azure-ai-inference met behulp van uw pakketbeheer, zoals pip:

pip install azure-ai-inference>=1.0.0b5

Waarschuwing

Voor de Azure AI Services-resource is de versie azure-ai-inference>=1.0.0b5 voor Python vereist.

Vervolgens kunt u het pakket gebruiken om het model te gebruiken. In het volgende voorbeeld ziet u hoe u een client maakt om chatvoltooiingen te gebruiken met entra-id:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import DefaultAzureCredential

client = ChatCompletionsClient(
    endpoint="https://<resource>.services.ai.azure.com/models",
    credential=DefaultAzureCredential(),
    credential_scopes=["https://cognitiveservices.azure.com/.default"],
    model="mistral-large-2407",
)

Opties voor referenties bij het gebruik van Microsoft Entra-id

DefaultAzureCredential is een geordende volgorde van mechanismen voor verificatie bij Microsoft Entra-id. Elk verificatiemechanisme is een klasse die is afgeleid van de TokenCredential klasse en wordt een referentie genoemd. Tijdens runtime DefaultAzureCredential wordt geprobeerd om te verifiëren met behulp van de eerste referentie. Als deze referentie geen toegangstoken kan verkrijgen, wordt de volgende referentie in de reeks geprobeerd, enzovoort, totdat een toegangstoken is verkregen. Op deze manier kan uw app verschillende referenties in verschillende omgevingen gebruiken zonder omgevingsspecifieke code te schrijven.

Wanneer de voorgaande code wordt uitgevoerd op uw lokale ontwikkelwerkstation, wordt er gezocht in de omgevingsvariabelen voor een toepassingsservice-principal of in lokaal geïnstalleerde ontwikkelhulpprogramma's, zoals Visual Studio, voor een set ontwikkelaarsreferenties. Beide benaderingen kunnen worden gebruikt om de app te verifiëren bij Azure-resources tijdens lokale ontwikkeling.

Wanneer deze code wordt geïmplementeerd in Azure, kan dezelfde code uw app ook verifiëren bij andere Azure-resources. DefaultAzureCredential kan omgevingsinstellingen en beheerde identiteitsconfiguraties ophalen om automatisch te verifiëren bij andere services.

Aanbevolen procedures

  • Gebruik deterministische referenties in productieomgevingen: overweeg om over te stappen van DefaultAzureCredential een van de volgende deterministische oplossingen voor productieomgevingen:

    • Een specifieke TokenCredential implementatie, zoals ManagedIdentityCredential. Zie de afgeleide lijst voor opties.
    • Een geparseerde implementatie die is geoptimaliseerd voor de Azure-omgeving ChainedTokenCredential waarin uw app wordt uitgevoerd. ChainedTokenCredential maakt in wezen een specifieke acceptatielijst met acceptabele referentieopties, zoals ManagedIdentity voor productie en VisualStudioCredential voor ontwikkeling.
  • Configureer door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteiten aan de Azure-resources waar uw code wordt uitgevoerd, indien mogelijk. Configureer Microsoft Entra ID-toegang tot deze specifieke identiteiten.

Belangrijk

Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

Modellen die zijn geïmplementeerd in Azure AI-modeldeductie in Azure AI Services ondersteunen sleutelloze autorisatie met behulp van Microsoft Entra-id. Sleutelloze autorisatie verbetert de beveiliging, vereenvoudigt de gebruikerservaring, vermindert de operationele complexiteit en biedt robuuste nalevingsondersteuning voor moderne ontwikkeling. Het maakt het een sterke keuze voor organisaties die veilige en schaalbare oplossingen voor identiteitsbeheer gebruiken.

In dit artikel wordt uitgelegd hoe u Microsoft Entra-id configureert voor deductie in Azure AI-modeldeductie.

Inzicht in rollen in de context van resources in Azure

Microsoft Entra ID maakt gebruik van het idee van op rollen gebaseerd toegangsbeheer (RBAC) voor autorisatie. Rollen zijn centraal voor het beheren van de toegang tot uw cloudresources. Een rol is in wezen een verzameling machtigingen waarmee wordt gedefinieerd welke acties kunnen worden uitgevoerd op specifieke Azure-resources. Door rollen toe te wijzen aan gebruikers, groepen, service-principals of beheerde identiteiten( gezamenlijk bekend als beveiligingsprinciplen), beheert u de toegang binnen uw Azure-omgeving tot specifieke resources.

Wanneer u een rol toewijst, geeft u de beveiligingsprincipaal, de roldefinitie en het bereik op. Deze combinatie wordt een roltoewijzing genoemd. Azure AI-modeldeductie is een mogelijkheid van de Azure AI Services-resources en daarom hebben rollen die zijn toegewezen aan die specifieke resource de toegang tot deductie te beheren.

U identificeert twee verschillende typen toegang tot de resources:

  • Beheertoegang: de acties die zijn gerelateerd aan het beheer van de resource. Ze wijzigen meestal de status van de resource en de configuratie ervan. In Azure zijn deze bewerkingen besturingsvlakbewerkingen en kunnen ze worden uitgevoerd met behulp van Azure Portal, de Azure CLI of met infrastructuur als code. Voorbeelden hiervan zijn het maken van nieuwe modelimplementaties, het wijzigen van configuraties voor inhoudsfilters, het wijzigen van de versie van het aangeboden model of het wijzigen van de SKU van een implementatie.

  • Toegang tot ontwikkelaars: de acties die zijn gerelateerd aan het verbruik van de resources. Bijvoorbeeld door de API voor het voltooien van chats aan te roepen. De gebruiker kan de status van de resource en de configuratie ervan echter niet wijzigen.

In Azure worden beheerbewerkingen altijd uitgevoerd met behulp van Microsoft Entra-id. Met rollen zoals Cognitive Services-inzender kunt u deze bewerkingen uitvoeren. Aan de andere kant kunnen ontwikkelaarsbewerkingen worden uitgevoerd met behulp van toegangssleutels of/en Microsoft Entra-id. Met rollen zoals Cognitive Services-gebruiker kunt u deze bewerkingen uitvoeren.

Belangrijk

Als u beheerderstoegang tot een resource hebt, verleent dit niet per se ontwikkelaarstoegang. Expliciete toegang door rollen te verlenen is nog steeds vereist. Het is vergelijkbaar met de werking van databaseservers. Als u beheerderstoegang tot de databaseserver hebt, betekent dit niet dat u de gegevens in een database kunt lezen.

Volg deze stappen om de toegang van ontwikkelaars tot azure AI-modeldeductie te configureren in de Azure AI Services-resource.

Vereisten

U hebt het volgende nodig om dit artikel te voltooien:

  • Een Azure-abonnement. Als u GitHub-modellen gebruikt, kunt u uw ervaring upgraden en een Azure-abonnement maken in het proces. Lees Upgrade van GitHub-modellen naar Azure AI-modeldeductie als dit uw geval is.

  • Een Azure AI-servicesresource. Zie Een Azure AI Services-resource maken voor meer informatie.

  • Een account met Microsoft.Authorization/roleAssignments/write en Microsoft.Authorization/roleAssignments/delete machtigingen, zoals op rollen gebaseerd toegangsbeheer van de beheerder .

  • Als u een rol wilt toewijzen, moet u drie elementen opgeven:

    • Beveiligingsprincipaal: bijvoorbeeld uw gebruikersaccount.
    • Roldefinitie: de rol Cognitive Services-gebruiker .
    • Bereik: de Azure AI Services-resource.
  • Installeer de Azure CLI.

  • Identificeer de volgende informatie:

    • Uw Azure-abonnements-id.

Over deze zelfstudie

Het voorbeeld in dit artikel is gebaseerd op codevoorbeelden in de opslagplaats Azure-Samples/azureai-model-inference-bicep . Als u de opdrachten lokaal wilt uitvoeren zonder bestandsinhoud te hoeven kopiëren of plakken, gebruikt u de volgende opdrachten om de opslagplaats te klonen en naar de map voor uw programmeertaal te gaan:

git clone https://github.com/Azure-Samples/azureai-model-inference-bicep

De bestanden voor dit voorbeeld bevinden zich in:

cd azureai-model-inference-bicep/infra

Informatie over de resources

De zelfstudie helpt u bij het maken van:

  • Een Azure AI Services-resource waarvoor sleuteltoegang is uitgeschakeld. Ter vereenvoudiging worden met deze sjabloon geen modellen geïmplementeerd.
  • Een roltoewijzing voor een bepaalde beveiligingsprincipaal met de rol Cognitive Services-gebruiker.

U gebruikt de volgende assets om deze resources te maken:

  1. Gebruik de sjabloon modules/ai-services-template.bicep om uw Azure AI Services-resource te beschrijven:

    modules/ai-services-template.bicep

    @description('Location of the resource.')
    param location string = resourceGroup().location
    
    @description('Name of the Azure AI Services account.')
    param accountName string
    
    @description('The resource model definition representing SKU')
    param sku string = 'S0'
    
    @description('Whether or not to allow keys for this account.')
    param allowKeys bool = true
    
    @allowed([
      'Enabled'
      'Disabled'
    ])
    @description('Whether or not public endpoint access is allowed for this account.')
    param publicNetworkAccess string = 'Enabled'
    
    @allowed([
      'Allow'
      'Deny'
    ])
    @description('The default action for network ACLs.')
    param networkAclsDefaultAction string = 'Allow'
    
    resource account 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
      name: accountName
      location: location
      identity: {
        type: 'SystemAssigned'
      }
      sku: {
        name: sku
      }
      kind: 'AIServices'
      properties: {
        publicNetworkAccess: publicNetworkAccess
        networkAcls: {
          defaultAction: networkAclsDefaultAction
        }
        disableLocalAuth: allowKeys
      }
    }
    
    output endpointUri string = account.properties.endpoints['Azure AI Model Inference API']
    output id string = account.id
    

    Tip

    U ziet dat met deze sjabloon de parameter allowKeys kan worden gebruikt. Wanneer false wordt het gebruik van sleutels in de resource uitgeschakeld. Deze configuratie is optioneel.

  2. Gebruik de sjabloon modules/role-assignment-template.bicep om een roltoewijzing in Azure te beschrijven:

    modules/role-assignment-template.bicep

    @description('Specifies the role definition ID used in the role assignment.')
    param roleDefinitionID string
    
    @description('Specifies the principal ID assigned to the role.')
    param principalId string
    
    @description('Specifies the resource ID of the resource to assign the role to.')
    param scopeResourceId string = resourceGroup().id
    
    var roleAssignmentName= guid(principalId, roleDefinitionID, scopeResourceId)
    resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
      name: roleAssignmentName
      properties: {
        roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionID)
        principalId: principalId
      }
    }
    
    output name string = roleAssignment.name
    output resourceId string = roleAssignment.id
    

De resources maken

Voer in uw console de volgende stappen uit:

  1. Definieer de hoofdimplementatie:

    deploy-entra-id.bicep

    @description('Location to create the resources in')
    param location string = resourceGroup().location
    
    @description('Name of the resource group to create the resources in')
    param resourceGroupName string = resourceGroup().name
    
    @description('Name of the AI Services account to create')
    param accountName string = 'azurei-models-dev'
    
    @description('ID of the developers to assign the user role to')
    param securityPrincipalId string
    
    module aiServicesAccount 'modules/ai-services-template.bicep' = {
      name: 'aiServicesAccount'
      scope: resourceGroup(resourceGroupName)
      params: {
        accountName: accountName
        location: location
        allowKeys: false
      }
    }
    
    module roleAssignmentDeveloperAccount 'modules/role-assignment-template.bicep' = {
      name: 'roleAssignmentDeveloperAccount'
      scope: resourceGroup(resourceGroupName)
      params: {
        roleDefinitionID: 'a97b65f3-24c7-4388-baec-2e87135dc908' // Azure Cognitive Services User
        principalId: securityPrincipalId
      }
    }
    
    output endpoint string = aiServicesAccount.outputs.endpointUri
    
  2. Meld u aan bij Azure:

    az login
    
  3. Zorg ervoor dat u zich in het juiste abonnement bevindt:

    az account set --subscription "<subscription-id>"
    
  4. Voer de implementatie uit:

    RESOURCE_GROUP="<resource-group-name>"
    SECURITY_PRINCIPAL_ID="<your-security-principal-id>"
    
    az deployment group create \
      --resource-group $RESOURCE_GROUP \
      --securityPrincipalId $SECURITY_PRINCIPAL_ID
      --template-file deploy-entra-id.bicep
    
  5. Met de sjabloon wordt het eindpunt voor deductie van het Azure AI-model uitgevoerd dat u kunt gebruiken om alle modelimplementaties te gebruiken die u hebt gemaakt.

Microsoft Entra-id gebruiken in uw code

Nadat u De Microsoft Entra-id in uw resource hebt geconfigureerd, moet u uw code bijwerken om deze te gebruiken bij gebruik van het deductie-eindpunt. In het volgende voorbeeld ziet u hoe u een model voor het voltooien van chats gebruikt:

Installeer het pakket azure-ai-inference met behulp van uw pakketbeheer, zoals pip:

pip install azure-ai-inference>=1.0.0b5

Waarschuwing

Voor de Azure AI Services-resource is de versie azure-ai-inference>=1.0.0b5 voor Python vereist.

Vervolgens kunt u het pakket gebruiken om het model te gebruiken. In het volgende voorbeeld ziet u hoe u een client maakt om chatvoltooiingen te gebruiken met entra-id:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import DefaultAzureCredential

client = ChatCompletionsClient(
    endpoint="https://<resource>.services.ai.azure.com/models",
    credential=DefaultAzureCredential(),
    credential_scopes=["https://cognitiveservices.azure.com/.default"],
    model="mistral-large-2407",
)

Opties voor referenties bij het gebruik van Microsoft Entra-id

DefaultAzureCredential is een geordende volgorde van mechanismen voor verificatie bij Microsoft Entra-id. Elk verificatiemechanisme is een klasse die is afgeleid van de TokenCredential klasse en wordt een referentie genoemd. Tijdens runtime DefaultAzureCredential wordt geprobeerd om te verifiëren met behulp van de eerste referentie. Als deze referentie geen toegangstoken kan verkrijgen, wordt de volgende referentie in de reeks geprobeerd, enzovoort, totdat een toegangstoken is verkregen. Op deze manier kan uw app verschillende referenties in verschillende omgevingen gebruiken zonder omgevingsspecifieke code te schrijven.

Wanneer de voorgaande code wordt uitgevoerd op uw lokale ontwikkelwerkstation, wordt er gezocht in de omgevingsvariabelen voor een toepassingsservice-principal of in lokaal geïnstalleerde ontwikkelhulpprogramma's, zoals Visual Studio, voor een set ontwikkelaarsreferenties. Beide benaderingen kunnen worden gebruikt om de app te verifiëren bij Azure-resources tijdens lokale ontwikkeling.

Wanneer deze code wordt geïmplementeerd in Azure, kan dezelfde code uw app ook verifiëren bij andere Azure-resources. DefaultAzureCredential kan omgevingsinstellingen en beheerde identiteitsconfiguraties ophalen om automatisch te verifiëren bij andere services.

Aanbevolen procedures

  • Gebruik deterministische referenties in productieomgevingen: overweeg om over te stappen van DefaultAzureCredential een van de volgende deterministische oplossingen voor productieomgevingen:

    • Een specifieke TokenCredential implementatie, zoals ManagedIdentityCredential. Zie de afgeleide lijst voor opties.
    • Een geparseerde implementatie die is geoptimaliseerd voor de Azure-omgeving ChainedTokenCredential waarin uw app wordt uitgevoerd. ChainedTokenCredential maakt in wezen een specifieke acceptatielijst met acceptabele referentieopties, zoals ManagedIdentity voor productie en VisualStudioCredential voor ontwikkeling.
  • Configureer door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteiten aan de Azure-resources waar uw code wordt uitgevoerd, indien mogelijk. Configureer Microsoft Entra ID-toegang tot deze specifieke identiteiten.

Verificatie op basis van sleutels uitschakelen in de resource

Het uitschakelen van verificatie op basis van sleutels is raadzaam wanneer u Microsoft Entra-id hebt geïmplementeerd en compatibiliteits- of terugvalproblemen volledig hebt opgelost in alle toepassingen die de service gebruiken. U kunt dit bereiken door de eigenschap disableLocalAuthte wijzigen:

modules/ai-services-template.bicep

@description('Location of the resource.')
param location string = resourceGroup().location

@description('Name of the Azure AI Services account.')
param accountName string

@description('The resource model definition representing SKU')
param sku string = 'S0'

@description('Whether or not to allow keys for this account.')
param allowKeys bool = true

@allowed([
  'Enabled'
  'Disabled'
])
@description('Whether or not public endpoint access is allowed for this account.')
param publicNetworkAccess string = 'Enabled'

@allowed([
  'Allow'
  'Deny'
])
@description('The default action for network ACLs.')
param networkAclsDefaultAction string = 'Allow'

resource account 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
  name: accountName
  location: location
  identity: {
    type: 'SystemAssigned'
  }
  sku: {
    name: sku
  }
  kind: 'AIServices'
  properties: {
    publicNetworkAccess: publicNetworkAccess
    networkAcls: {
      defaultAction: networkAclsDefaultAction
    }
    disableLocalAuth: allowKeys
  }
}

output endpointUri string = account.properties.endpoints['Azure AI Model Inference API']
output id string = account.id

Volgende stappen