2017-05-09 1 views
2

Ich folgte der in diesem question genannten akzeptierten Antwort, um OAuth2-Token zu generieren. Allerdings bekomme ich HTTP 401 Antwort. Als ich debuggte, sah ich, dass clientid und clientsecret nicht als Teil des Formulars in der HTTP-Anfrage übergeben werden. Ich sehe nur die unten aufgeführten Werte. Sollte ich etwas zusätzlich tun, um auch clientid und clientsecret zu passieren?ResourceOwnerPasswordResourceDetails - Übergabe von clientid und secret zum Generieren von oauth2 token

+1

@dur In Header siehe I [Authorization = [Basis Y3RwX2lkOmN0cF9zZWNyZXQ =]] –

+0

Wenn ich es mit Rest-Client ausführen, ich vorbei all diese als Teil des Formkörpers. –

+1

@dur Der Autorisierungsserver wird von einer Drittanbieter-App verwaltet, auf die ich keinen Zugriff habe. Die Client-ID und das Geheimnis sind identisch mit dem, was Sie erwähnt haben. Eine andere Sache, die ich vermute, ist Inhaltstyp. Beim Ausführen mit einem externen Restclient habe ich den Inhaltstyp "application/x-www-form-urlencoded" angegeben. Allerdings habe ich das nicht explizit im Programm festgelegt. Muss ich das tun? –

Antwort

2

Ihr Client verwendet standardmäßig das HTTP-Standardauthentifizierungsschema, aber Ihr Server erwartet ein Authentifizierungsschema "Formular".

Ihr Server ist nicht OAuth 2 kompatibel ist, siehe RFC 6749:

2.3.1. Client Passwort

Kunden im Besitz eines Client-Passwortes kann das HTTP Basic Authentifizierungsschema verwenden wie in [RFC2617] mit dem Autorisierungsserver zu authentifizieren. Die Client-ID wird unter Verwendung des Codierungsalgorithmus "application/x-www-form-urlencoded" gemäß Anhang B codiert, und der codierte Wert wird als Benutzername verwendet. Der Client Passwort wird mit dem gleichen Algorithmus codiert und als Passwort verwendet. Der Autorisierungsserver MUSS das HTTP-Basis-Authentifizierungsschema zur Authentifizierung von Clients unterstützen, denen ein Client-Kennwort ausgestellt wurde.

Aber man kann das Authentifizierungsschema Ihres Kunden zu „Form“ ändern, siehe OAuth 2 Developers Guide:

clientAuthenticationScheme: Das Schema von Ihrem Client verwendet, um den Zugriffstoken Endpunkt zu authentifizieren. Vorgeschlagene Werte: "http_basic" und "form". Standard: "http_basic". Siehe Abschnitt 2.1 der OAuth 2 Spezifikation.

Verwandte Themen