0

Ich möchte ein Zugriffstoken ohne Benutzerinteraktion abrufen, um REST-API-Aufrufe für Azure-Dienste (Compute, Network usw.) zu automatisieren. In the documentation sind mehrere Authentifizierungsszenarien aufgelistet. Der, der am besten zu meinem Anwendungsfall passt, ist "Daemon oder Server Application to Web API".Wie authentifizieren Sie sich bei Azure Active Directory ohne Benutzerinteraktion?

Ich folgte der instructions, um ein Zugriffs-Token anzufordern: zuerst habe ich eine App in meinem Azure Active Directory registriert. Dann habe ich einen Schlüssel (client_secret-Parameter) erstellt, der der Anwendungs-ID (client_id-Parameter) zugeordnet ist. Ich habe auch die App ID URI (Ressourcenparameter) erhalten. Ich habe alle diese Parameter verwendet, um eine POST-Anforderung an den/token-Endpunkt meines Azure AD zu erstellen. Allerdings bekomme ich folgende Fehlermeldung:

{ 
    "code":"InvalidAuthenticationTokenAudience", 
    "message":"The access token has been obtained from wrong audience or resource 'https://solutionsmosaixsoft.onmicrosoft.com/<APP_ID_URI>'. It should exactly match (including forward slash) with one of the allowed audiences 'https://management.core.windows.net/','https://management.azure.com/'." 
} 

Was mache ich falsch? Setzen ich den Ressourcenparameter auf den falschen Wert?

Antwort

0

Der Ressourcenparameter teilt Ihrer Anwendung mit, wo Token abgerufen werden soll (Kennung der Ressource, für die das Zugriffstoken angefordert wird). Wenn Sie ein Token zum Aufrufen der Azure Service Management-API abrufen möchten, können Sie die Ressource als https://management.core.windows.net/ festlegen.

Edit:

Wenn die APIs, die Sie anrufen möchten, sind Microsoft-APIs zur Verfügung gestellt, die Ressource bekannt ist, zum Beispiel:

Wenn Sie die API-Anwendungen aufrufen möchten, die Ihre c In diesem Fall können Sie entweder die Client-ID oder den App-ID-URI der Ressourcen-WebAPI verwenden (Sie finden sie auf der Registerkarte "Konfigurieren" der Azure AD-Anwendung im Azure-Verwaltungsportal).

könnten Sie verweisen Link unten für Codebeispiele:

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-code-samples

+0

Auf [dieser Seite] (https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-service-to-service # request-ein-access-token) lautet der resources-Parameter: 'Geben Sie den App-ID-URI des empfangenden Web-Service ein. Klicken Sie auf Active Directory, klicken Sie auf das Verzeichnis, klicken Sie auf die Anwendung, und klicken Sie dann auf Konfigurieren. Ist diese Information falsch, um den App ID URI in dem Azure Management Portal zu finden? –

+0

@GlebBillig, Ich habe Antwort bearbeitet, um Ihre Frage zu erklären, überprüfen Sie das bitte. –

0

Sie benötigen einen POST-Request an den Token-Endpunkt zu machen.

Der Ressourcenparameter muss der Ressourcen-URI für die API sein, auf die Sie zugreifen möchten, nicht für Ihre.

  • Azure AD Graph API: https://graph.windows.net/
  • Microsoft Graph API: https://graph.microsoft.com/
Verwandte Themen