2 Stimmen

Asp.net Identität Google-Kontoidmigration von OpenID zu OAuth

Ich habe eine bestehende asp.net mvc5-Anwendung, die DotNetOpenAuth für die Google OpenId-Authentifizierung verwendet. Ich migriere zu Asp.Net Identity und verwende Google+ Auth mit OAuth2.0.

Aber ich habe gesehen, dass ich das bestehende OpenId-Konto nicht auf OAuth2.0-Id abbilden kann: - Alte ID ist: https://www.google.com/accounts/o8/id?id=blablabla - Neue ID ist: eine lange Zahl

Da ich die neue ID verwenden möchte, suche ich nach Hilfe bei der Migration von Identitäten. Ich habe bisher kein einfaches Beispiel gefunden, um dies zu erreichen.

Ich verwende eine neue asp.net mvc5-Anwendung (frisch erstellt), habe Microsoft Identity (mit benutzerdefinierter Implementierung für meine Daten) hinzugefügt und den GoogleOAuth2-Provider konfiguriert.

Wenn ich versuche mich anzumelden, Überraschung! :) Die Konto-ID hat sich geändert...

Ich habe einige Beiträge gelesen, die besagen, dass "openid.realm" zur Authentifizierungsanforderung hinzugefügt werden soll, aber wie kann ich die Authentifizierungsanforderungs-URL ändern und wie erfahre ich den Wert, den ich eingeben soll?

Danke.

2voto

brocknz Punkte 226

Um die Authentifizierungsanfrage zu ändern und den openid.realm-Parameter einzuschließen, können Sie den OnApplyRedirect-Delegierten verwenden, z.B.

app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
{
    ClientId = "",
    ClientSecret = "",
    Provider = new GoogleOAuth2AuthenticationProvider
    {
        OnApplyRedirect = context =>
        {
            Dictionary dictionary = new Dictionary()
            {
                { "openid.realm", "http://mywebsite.com/openid/realm" }
            };
            var redirectUri = WebUtilities.AddQueryString(context.RedirectUri, dictionary);
            context.Response.Redirect(redirectUri);
        },
    }
});

Der Wert von openid.realm muss das Realm sein, das Sie für OpenID 2.0 verwendet haben

Das Google-Migrationsdokument enthält Informationen dazu, wie Sie von der alten ID des Benutzers zur neuen ID übergehen können

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X