Kontext:Azure-API-Management OAuth 2.0 Ressourcen Besitzer Passwort-Client-ID
Meine Software-Anwendung ist eine Multi-Tenant-Anwendung, die Kunden in anmelden können und ihre eigenen clientIds erzeugen mit einem Ressourceneigentümer Passwort Fluss verwenden OAuth-Anfrage
Unser OAuth 2.0-Autorisierungsserver ist in WebAPI integriert und erbt von der von Microsoft bereitgestellten Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerProvider-Klasse. Derzeit unterstützen wir nur eine Strömung (Ressourceneigentümer Kennwort) ein Token zu erhalten, die wie folgt aussieht:
POST /api/v1.0/token HTTP/1.1 Host: api.mysoftwareapp.com UserName={username}&Password={password}&grant_type=password&client_id={client_id}
Nachdem wir die Anmeldeinformationen & Client-ID bestätigen, senden wir ein Zugriffstoken von der Microsoft generiert zurück. Owin.Security.OAuth.OAuthAuthorizationServerProvider-Basisklasse. Um auf eine Ressource zuzugreifen, müsste ein Benutzer das access_token im Berechtigungsheader als Träger-Token bereitstellen. Die Client-ID muss nicht erneut eingegeben werden. Beispiel unten:
GET /api/v1.0/Partners HTTP/1.1 Host: api.mysoftwareapp.com Authorization: Bearer this_is_where_the_token_goes
Ich möchte das Entwicklerportal Funktion von Azure-API-Management implementieren und ermöglichen es für meine Kunden zur Eingabe der Lage sein, ihre eigenen Benutzernamen, ein Passwort und Client-ID beim Herstellen Testanrufe , so dass sie Daten im Kontext ihres Mandanten zurückbekommen (und schließlich - Ratenbegrenzung durch Client-ID aktivieren).
Im Verlag Portal unter Security-> OAuth 2.0, ich habe:
- geprüft Nur die Art Erteilung Ressourcen Eigentümer-Passwort.
- Angegeben meine Autorisierungsanforderungsmethode als POST.
- Meine Token-Endpunkt-URL hinzugefügt.
- grant_type/password als zusätzlicher body-Parameter hinzugefügt.
- Die Anmeldeinformationen des Ressourceneigentümers wurden leer gelassen.
Ich habe auch die folgenden getan, da sie erforderlich waren, aber ich glaube nicht aufgrund gilt nur Ressourceneigentümer Passwort-Unterstützung, und Umgang mit Client-Registrierungen durch meine eigene Anwendung:
- Hinzugefügt mein Autorisierungsendpunkt-URL
- Ausgewählt 'In the Body' als meine Client-Authentifizierungsmethode.
- Falsche Client-Anmeldeinformationen hinzugefügt.
- Eine falsche URL für die Clientregistrierungsseite hinzugefügt.
Hier ist ein Screenshot davon:
Als ich in das Entwickler-Portal navigieren und einen Endpunkt anzuzeigen, kann ich wählen ‚Ressource onwer Kennwort‘ unter meinem Auth-Server. Wenn ich dies jedoch auswähle, zeigt ein Popup, dass ich nur meinen Benutzernamen und mein Passwort eingeben darf, NICHT meine Client-ID.
Wie richte ich Azure API Management so ein, dass ein Benutzer auch die Client-ID angeben kann, die beim Einrichten der Autorisierung verwendet werden soll - oder müssten wir unsere API so ändern, dass die Client-ID bei bestimmten Aufrufen erforderlich ist Ressourcen statt beim Anfordern eines Token? Diese
ist, was ich brauchen würde:
Hey Kevin, danke für die Antwort. Ich habe das geändert, bekomme aber immer noch nicht, was ich brauche - ich brauche die Möglichkeit, dass ein Entwickler eine Client-ID eingeben kann, wenn er ein Token anfordert. Ich habe den ursprünglichen Post mit einem Screenshot aktualisiert, wonach ich suche. – tarun713