Ich habe eine Back-End-API, die ich mithilfe der Azure-API-Verwaltung proxyieren möchte. Diese Backend-API erfordert, dass ich ein Bearer Oauth2-Token zur Verfügung stelle. Ich möchte Azure APIM verwenden, um die Oauth2-Flüsse für mich zu behandeln, und ich möchte eine sehr einfache API verfügbar machen, die von Client-Anwendungen verbraucht wird. Ich möchte vermeiden, dass meine Client-App Oauth2 verwendet. Wie kann ich mit APIM umgehen? Ich habe viele Beispiele gefunden, die demonstrieren, wie man eine Backend-API mit Oauth2 schützt, aber es ist nicht der Anwendungsfall, den ich implementieren möchte. Danke.Azure-API-Verwaltung: Oauth2 mit Back-End-API
1
A
Antwort
0
Was Sie tun müssen, ist eine Kopfzeile zu Anfrage hinzufügen - set-Header-Richtlinie verwenden, um Authorization-Header auf einen gewünschten Wert setzen. Das funktioniert gut, wenn Sie das Token in der Richtlinie fest codieren können.
Wenn Sie nicht können - das müssen Sie OAuth-Fluss innerhalb der Richtlinie mit Send-Anfrage organisieren. Kurz gesagt, senden Sie Ihre App-ID und Ihr Geheimnis an den OAuth-Endpunkt und analysieren ihre Antwort, um das Token zu erhalten und es an die Anfrage anzuhängen.
1
Hier ist eine Politik Schnipsel diese Arbeit zu machen:
<send-request ignore-error="true" timeout="20" response-variable-name="bearerToken" mode="new">
<set-url>{{authorizationServer}}</set-url>
<set-method>POST</set-method>
<set-header name="Content-Type" exists-action="override">
<value>application/x-www-form-urlencoded</value>
</set-header>
<set-body>
@{
return "client_id={{clientId}}&resource={{scope}}&client_secret={{clientSecret}}&grant_type=client_credentials";
}
</set-body>
</send-request>
<set-header name="Authorization" exists-action="override">
<value>
@("Bearer " + (String)((IResponse)context.Variables["bearerToken"]).Body.As<JObject>()["access_token"])
</value>
</set-header>
<!-- We do not want to expose our APIM subscription key to the backend API -->
<set-header exists-action="delete" name="Ocp-Apim-Subscription-Key"/>
Und bald auf dem APIM Politik Schnipsel Zweig vom APIM Team
Verwandte Themen
- 1. Authentifizieren mit oauth2 mit Paket "golang.org/x/oauth2"
- 2. Anmeldeanfragen mit python-oauth2
- 3. Bitbucket OAuth2 mit Node.js
- 4. Springboot mit Spring OAuth2
- 5. Laravel mit OAuth2 Ausgabe
- 6. Symfony Oauth2 mit Gard
- 7. eJabberd API mit OAuth2
- 8. Basecamp OAuth2 mit PHP
- 9. OAuth2 Anfrage mit React Native
- 10. Probleme mit Disqs OAuth2-Fluss
- 11. OAuth2-Server-Erstellung mit Nodejs
- 12. oAuth2 Access Token mit Userinfo
- 13. arbeite mit OAuth2 in appcelerator
- 14. Fusion privater Tisch mit OAuth2
- 15. Verwenden Sie OAuth2 mit Python
- 16. Frühling Stiefel OAuth2 mit slack
- 17. Spring Oauth2 mit ADFS-Autorisierungsanbieter
- 18. OAuth2 Autorisierung
- 19. Spring Oauth2 - Nachladen Principals
- 20. Spring Security OAuth2 InvalidGrantException
- 21. Zugriff auf Tenant-Informationen mit Spring OAuth2
- 22. Zwei-Faktor-Authentifizierung mit Feder-Sicherheit oauth2
- 23. golang Facebook Authentifizierung mit golang.org/x/oauth2
- 24. Einfache Cocoapods installieren Fehler mit OAuth2
- 25. Swashbuckle OAuth2-Autorisierung mit Clientanmeldeinformationen Fluss
- 26. Wie arbeite ich mit Oauth2 in Phalcon?
- 27. OAuth2 Password Grant Type mit Client_Id & Client_Secret
- 28. Verwenden eines einzelnen Kontos mit OAuth2
- 29. OAuth2 Passwort Zuschuss mit Knoten js
- 30. Wie Implizite Grant Go mit oauth2