Problembehandlung bei HTTP 401-Fehlern bei der Verwendung von APIs

Zusammenfassung

In diesem Artikel wird erläutert, wie Sie HTTP 401-Fehler beheben, die bei der Verwendung von APIs in Azure API Management aufgetreten sind.

Dieser Artikel ist das dritte Szenario des Azure API Management Problembehandlungs-Reihenlabors. Stellen Sie sicher, dass Sie die Anweisungen zum Einrichten des Labs gemäß den Lab-Anweisungen der Reihe zur Problembehandlung für API Management befolgen.

Ursprüngliche Produktversion: API-Verwaltungsdienst
Ursprüngliche KB-Nummer: 4464930

Symptome

Die Echo-API führt zu verschiedenen Arten von HTTP 401 – Nicht autorisierte Fehler beim Ausführen von Vorgängen. Beim Erstellen von Ressourcen - und Abrufen von Ressourcenvorgängen wird diese Fehlermeldung angezeigt:

"statusCode": 401,
"message": "Zugriff verweigert aufgrund eines ungültigen Abonnementschlüssels. Stellen Sie sicher, dass Sie einen gültigen Schlüssel für ein aktives Abonnement bereitstellen."

Andere Vorgänge zeigen diese Fehlermeldung an:

"statusCode": 401,
"message": "Zugriff verweigert aufgrund fehlender Abonnementschlüssel. Stellen Sie sicher, dass Sie beim Senden von Anforderungen an eine API den Abonnementschlüssel einschließen."

Troubleshooting

Im API-Produktabonnementprozess erhalten Sie einen Abonnementschlüssel. Sie senden es als Teil des Anforderungsheaders, und es funktioniert für jede API in diesem Produkt. Der Ocp-Apim-Subscription-Key-Anforderungsheader ist für den Abonnementschlüssel des Produkts bestimmt, das dieser API zugeordnet ist. Der Schlüssel wird automatisch eingefügt.

Bei dem Fehler Zugriff aufgrund eines ungültigen Abonnementschlüssels verweigert. Stellen Sie sicher, dass Sie einen gültigen Schlüssel für ein aktives Abonnement angeben senden Sie beim Ausführen der Vorgänge Ressource erstellen und Ressource abrufen im Anforderungsheader den falschen Wert für Ocp-Apim-Subscription-Key.

Melden Sie sich beim API Management Developer-Portal an, und überprüfen Sie Ihren Abonnementschlüssel für ein bestimmtes Produkt, indem Sie nach der Anmeldung zur Profilseite wechseln, wie im folgenden Beispiel gezeigt:

Screenshot der Abonnementschlüssel für die jeweiligen Produkte.

Wählen Sie "Anzeigen" aus, um die Abonnementschlüssel für die jeweiligen Produkte anzuzeigen, die Sie abonniert haben.

Überprüfen Sie die Kopfzeilen, die Sie über die Registerkarte "Test " senden. Beachten Sie, dass der Wert des Ocp-Apim-Subscription-Key-Anforderungsheaders falsch ist.

Überprüfen Sie nun die Frontend Definition der Ressourcenvorgänge "Ressource erstellen " und "Ressourcen abrufen " auf der Registerkarte " Entwurf ". Beachten Sie, dass diese Vorgänge einen falschen hartcodierten Wert des Ocp-Apim-Subscription-Key-Anforderungsheaders aufweisen, der auf der Registerkarte " Header" hinzugefügt wurde.

Wenn Sie es entfernen, wird das Problem mit dem ungültigen Abonnementschlüssel behoben, aber nicht der Fehler des fehlenden Abonnementschlüssels.

Möglicherweise wird die folgende Fehlermeldung angezeigt:

HTTP/1.1 401 Nicht autorisiert

Inhaltslänge: 152
Inhaltstyp: application/json
Datum: So., 29. Juli 2018 14:29:50 GMT
Vary: Origin WWW-Authenticate: AzureApiManagementKey realm="https://pratyay.azure-api.net/echo",name="Ocp-Apim-Subscription-Key",type="header" {
"statusCode": 401,
"message": "Zugriff verweigert aufgrund fehlender Abonnementschlüssel. Stellen Sie sicher, dass Sie beim Senden von Anforderungen an eine API den Abonnementschlüssel einschließen."

Wechseln Sie zu den Echo-API-Einstellungen , und überprüfen Sie, ob sie einem der verfügbaren Produkte zugeordnet ist. Wenn dies nicht der Fall ist, müssen Sie diese API einem Produkt zuordnen, damit Sie einen Abonnementschlüssel erhalten.

Wenn Sie die API-Verwaltungsinstanz erstellt haben, sind Sie während des Abonnementprozesses standardmäßig ein Administrator. Dies bedeutet, dass Sie jedes Produkt abonniert haben.