Wie kann ich vor, eine Autorisierung der client-app für meine user auf meiner oauth-Anbieter, die verwendet Türhüter?
Ich geschrieben habe, um einen oauth-Anbieter, soll die Arbeit mit einigen meiner Firma web-Applikationen. Ich bin mit dem Türhüter Juwel, das hat sich bislang bewährt.
Typische Verhalten ist für einen Benutzer zu gehen, um die client-Anwendung umgeleitet, um die provider anmelden, bestätigen Sie, dass die client-Anwendung zugreifen darf, dass die Informationen der Benutzer, und Holen Sie weitergeleitet, um die client-Anwendung. Allerdings würde ich gerne überspringen Sie den Schritt der Benutzer bestätigt die client-Anwendung. Ich möchte es für Sie tun, es gibt also keine Eingabeaufforderung.
Habe ich versucht zu imitieren, um code, den ich finden Sie hier mit so etwas wie:
Doorkeeper::Application.all.each do |application|
auth_params = {response_type: 'code', client_id: application.uid, redirect_uri: application.redirect_uri}
client = Doorkeeper::OAuth::Client.find(application.uid)
authorization = Doorkeeper::OAuth::AuthorizationRequest.new(client, user, auth_params)
authorization.authorize
end
aber das hat nicht funktioniert, es gibt noch die user die Genehmigen/Verweigern-Aufforderung für eine client-app. Vorschläge?
Ich Tue es in rails. Türhüter ist ein Juwel: github.com/applicake/doorkeeper. Ich habe gelesen das OAuth2-spec und ich will nicht, dass die client credentials grant Szenario. Ich habe einige Zeit damit verbracht Implementierung von OAuth mich. Dies ist jedoch nicht eine primäre Teil meiner Arbeit und ich würde lieber nicht haben, es zu schreiben, mich (und halten Sie), wenn ich kann etwas zwicken, wird beibehalten, um meine Bedürfnisse.
InformationsquelleAutor phaedryx | 2012-06-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
OAuth hat die Ressource Besitzer Anmeldeinformationen Gewähren flow, der Türhüter unterstützt. Im Grunde Sie bitten einen access-token, die mit die Anmeldeinformationen des Benutzers (Benutzername und Passwort). Auf diese Weise überspringen Sie die Benutzer-Bestätigung und Sie brauchen auch nicht eine callback-URL.
Konfigurieren Türhüter:
Beispiel token-Anforderung:
Wenn Ihr OAuth-client-Anwendungen werden Rails-Anwendungen, die Sie verwenden können, die oauth2 gem:
Siehe auch Torhüter wiki:
https://github.com/applicake/doorkeeper/wiki/Using-Resource-Owner-Password-Credentials-flow
InformationsquelleAutor smek
Türhüter 0.6.7 bietet die option konfigurieren, um dies zu tun.
Konfigurieren Türhüter:
InformationsquelleAutor Prasad Tirumareddi
Können Sie Ihre app preauthorize entweder alle client-apps durch das hinzufügen von
zur Türhüter-Initialisierung, oder auf einer pro-app Grundlage, indem ein boolescher
preauthorized
zu der Türhüteroauth_applications
Tabelle. Dann fügen Sie so etwas wie dieses, um die Initialisierung:InformationsquelleAutor Greg Olsen
Können Sie erwerben das token für Ihre Anwendung zu umgehen, dass Bestätigungsfenster ein post auf /oauth-token. Zwicken Sie nach Ihren wünschen.
In Ihrer client-Anwendung:
Nun können Sie verlangen, den Zugriff auf geschützte Ressourcen, die nicht erfordert eine Ressource Besitzer:
Quelle: https://github.com/applicake/doorkeeper/wiki/Client-Credentials-flow
InformationsquelleAutor Jeff
Ihre Frage, so scheint es, Ihr Unternehmen hat viele Anwendungen, und Sie möchten, verwenden Sie eine Authentifizierungs-Plattform für alle diese.
Nun, ich würde davon ausgehen, Sie würden wollen, um die login-Bildschirm an einer Stelle (vermutlich in der authenticator app). Wenn das der Fall ist, werden Sie NICHT in der Lage sein zu verwenden Ressource Besitzer Anmeldeinformationen Gewähren fließen.
Dem besten Weg wäre, eine Liste von vertrauenswürdigen Kunden und überspringen die Zulassung bedingt, wie folgt:
Wenn Sie wollen, um die Kunden haben Ihre eigenen login-Bildschirme, Besitzer der Ressource Anmeldeinformationen Gewähren fließen, würde ausreichen.
InformationsquelleAutor Sagar Ranglani