2014-09-04 13 views
6

Ich muss einen eigenen OAUTH-Provider erstellen, um Anwendungsanforderungen von Drittanbietern zu validieren, ich möchte nicht Google, Twitter, LinkedIn, Microsoft-Anbieter verwenden. Ich muss meinen eigenen Provider erstellen, um die Anfrage zu authentifizieren und ein Zugangstoken an den Client zurückzugeben. Aber alle Hilfe im Internet ist mit externen Anbietern (Google, LinkedIn, Twitter, Facebook ..) verbunden. Kann mir jemand helfen, meinen eigenen angepassten Provider zu erstellen?OAuth benutzerdefinierter Anbieter C#

+0

Ich recherchierte das eine Weile zurück, und es stellte sich heraus, eine schlechte Idee zu sein, weil es endlose Sicherheitsbedenken geben muss, und endlose Updates, die den Hackern voraus sind. Am Ende entschieden sich die meisten Leute für den kostenlosen ThinkTecture-Server. Die Jungs dahinter sind ernsthafte Führer in der Technologie. http://www.thinktecture.com/identityAndAccessControl – EvilDr

+0

Haben Sie die Spezifikation für [OAuth 1] (http://tools.ietf.org/html/rfc5849) oder [OAuth 2] (http: //tools.ietf .org/html/rfc6749)? –

+0

Ich muss OAUTH 2.0 verwenden, entsprechend der Anforderung meines Kunden, um dasselbe zu erreichen. – daisy

Antwort

6

Wie Roland sagte, wenn Sie durch die Spezifikation kommen, ist es ziemlich geradlinig.

Auf einem hohen Niveau ist, was Sie AuthCode Zuschuss Muster unterstützen müssen tun:

Unter der Annahme: Ihre Anwendung besitzen die Benutzer.

  • Geben Sie clientid/secrets für jede der Anwendungen von Drittanbietern aus.
  • auf Ihrem Server erstellen Endpunkte für
    • Token

    Wenn der Client trifft das Autorisieren Endpunkt wie unter

genehmigen:

/authorize?response_type=code&client_id=<clientID>&state=xyz&redirect_uri=http://thirdparty.com

  • Redi Richten Sie den Client auf eine Anmeldeseite um.
  • Überprüfen Sie den vom Benutzer angegebenen Benutzernamen/Passwort.
  • Wenn erfolgreich, rufen Sie die Umleitungs-URI des Drittanbieterclients mit authCode auf.
  • Wenn Fehler, rufen Sie die 3rd Party Clients Umleitung URI mit Fehler (vorveröffentlicht).

Beispiel Rückruf hier https://thirdparty.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz

Client wird dann mit Berechtigungscode mit so etwas wie unten auf dem/Token URI aufrufen:

/token?grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=http://thirdparty.com 

ein Token erzeugen, speichern sie gegen die clientID, Benutzer-ID und antworten Sie mit dem Token zurück. So etwas wie unten

{ 
    "access_token":"2YotnFZFEjr1zCsicMWpAA", 
    "token_type":"example", 
    "expires_in":3600, 
    "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", 
    "example_parameter":"example_value" 
} 

Wenn die dritte Partei Zugriff auf Ihre Dienste/Ressourcen, um die Token gegen den Kunden zu validieren und Benutzer-ID und die Erteilung oder den Zugriff verweigern.

Dies ist zu beginnen, aber es kann viel mehr Anpassung, die Sie mit Scope und anderen OAuth2-Mustern tun können.

Verwandte Themen