Zuerst skizziere ich mein Projekt:
Für mein Praktikum muss ich einem bestehenden System Funktionen hinzufügen. Ein Drittanbieter muss in der Lage sein, auf Daten von AX Webservices zuzugreifen, sobald er vom Benutzer über OAuth2 autorisiert wurde. Ich verstehe, dass ich einen 'Proxy-Webdienst' erstellen muss, über den der Client seine Anrufe tätigen kann, und der die AX-Dienste aufruft, bin mir jedoch hinsichtlich des OAuth2-Teils etwas unsicher. In den meisten Tutorials und Anleitungen geht es um die Verwendung von ASP.NETs Identity for Facebook oder Google-Logins. Ich brauche das nicht, ich muss vorhandene Anmeldeinformationen verwenden, damit ich meinen eigenen OAuth2-Dienst erstellen kann.
Es fällt mir schwer, Tutorials, Anleitungen oder Erklärungen dazu zu finden. Ich verstehe OAuth2 und was getan werden muss, aber ich habe so etwas noch nie zuvor getan und finde es schwierig, damit anzufangen. Das, was ich gefunden habe, ist dieser Github-Repo-Link am nächsten , aber die Lösung wird nicht erstellt.
Ich hatte vor, eine ASP.NET MVC-Website zu erstellen, auf der sich Kunden (Dritte) registrieren und ihre Kunden-IDs erwerben können. Mit der ASP.NET-API wollte ich die API erstellen, die die erforderlichen Token und Parameter verwendet, und dann auf die Dyn AX-Dienste zugreifen.
Ist das richtig oder bin ich völlig falsch? Jede Hilfe oder Links zum Aufbau eines eigenen oauth2-Servers / -Dienstes wäre nett.
Antworten:
Es gibt einen brillanten Blog-Beitrag von Taiseer Joudeh mit einer detaillierten schrittweisen Beschreibung.
quelle
Authentication
. Ich kann alles tun, was ich will, wie get / post / put / delete.Ich hatte auch Probleme, Artikel darüber zu finden, wie man nur den Token-Teil generiert. Ich habe nie einen gefunden und meinen eigenen geschrieben. Also wenn es hilft:
Die Dinge zu tun sind:
Microsoft.Owin
Microsoft.Owin.Host.SystemWeb
Microsoft.Owin.Security.OAuth
Microsoft.AspNet.Identity.Owin
startup
Klasse hinzuErstellen Sie dann eine HTML- und eine JavaScript (
index.js
) -Datei mit folgenden Inhalten:Die OWIN-
startup
Klasse sollte folgenden Inhalt haben:Führen Sie Ihr Projekt aus. Das Token sollte im Popup angezeigt werden.
quelle
Microsoft ASP.NET Identity Owin
das ins Spiel? Verwenden Sie ASP.NET Identity für Ihre Benutzerauthentifizierung? Wenn nicht, wird dieses NuGet-Paket noch benötigt?app.UseOAuthBearerTokens(OAuthOptions);
ohne nicht funktionierenMicrosoft ASP.NET Identity Owin
. Die Methode wird nicht erkanntUseOAuthBearerTokens
.Ich recherchiere das Gleiche und bin auf einen Identitätsserver gestoßen, der OAuth und OpenID auf ASP.NET implementiert. Es lässt sich in die ASP.NET-Identität und den Neustart der Mitgliedschaft mit Persistenzunterstützung für Entity Framework integrieren.
Um Ihre Frage zu beantworten, lesen Sie das ausführliche Dokument zum Einrichten eines OAuth- und OpenID-Servers .
quelle
Google Mail: OAuth
Client ID
undSecret ID
. Klicken Sie abschließend auf OK, um das Popup-Fenster mit den Anmeldeinformationen zu schließen.Google API
. Klicken Sie im linken Bereich auf Übersicht.Google API
Abschnitt unter Soziale APIs.Das ist alles aus dem Google-Teil.
Kehren Sie zu Ihrer Anwendung zurück, öffnen Sie
App_start/Startup.Auth.cs
das folgende Snippet und kommentieren Sie es ausAktualisieren Sie das
ClientId
undClientSecret
mit den Werten ausGoogle API
Anmeldeinformationen, die Sie bereits erstellt haben.Gmail
ID zu registrieren .Gmail
ID in Ihrer Anwendungsdatenbank zu registrieren .quelle
Why punish that effort?
Vielleicht braucht SO eine Möglichkeit, eine Antwort als falsch auf die Frage des OP ausgerichtet zu kennzeichnen. Oder um Benutzern zu ermöglichen, vorzuschlagen, dass sie zu einer angemesseneren Frage verschoben werden ... oder um aus der Antwort eine neue Frage zu erstellen.