Ich versuche, die Google Federated-Anmeldung mit einem führenden App-Konto zu integrieren, aber ich habe einige Probleme.Google Federated Login (OpenID + Oauth) für gehostete Anwendungen - Endpunkte ändern?
Wenn ich die Anfrage an: https://www.google.com/accounts/o8/ud
mit allen Parametern sende (siehe unten), bekomme ich sowohl eine request_token
und Liste der Attribute von gefragt. Dies ist perfekt, da wir die E-Mail über das Attribut exchange (AX) benötigen, um den Benutzer in unserer Anwendungsdatenbank zu speichern, und wir benötigen das Anforderungs-Token für zukünftige API requests to scopes
(dh Kalender, Kontakte usw.).
jedoch, dass URL (hier als endpoint
bezeichnet) nicht hält die signierten Benutzer in ihre gehosteten Anwendungen (gmail, Kalender, et al), was ein Problem ist.
Durch Ändern des Endpunkts auf https://www.google.com/a/thedomain.com/o8/ud?be=o8
wird alles geändert. Ich bin automatisch bei anderen Google Apps (Google Mail usw.) angemeldet. Unter Verwendung dieses Endpunkts erhalte ich jedoch nur die Anforderungstokens oder die Attribute über AX. Offensichtlich ist das nicht besonders Hybrid. Es ist sehr das eine oder das andere.
Beispiel Anforderung an den Endpunkt https://www.google.com/accounts/o8/ud
parameters = {
'openid.ns': 'http://specs.openid.net/auth/2.0',
'openid.claimed_id': 'http://specs.openid.net/auth/2.0/identifier_select',
'openid.identity': 'http://specs.openid.net/auth/2.0/identifier_select',
'openid.return_to':'http://our.domain.com/accounts/callback/',
'openid.realm': 'http://our.domain.com/',
'openid.assoc_handle': assoc_handle,
'openid.mode': 'checkid_setup',
'openid.ns.ext2': 'http://specs.openid.net/extensions/oauth/1.0',
'openid.ext2.consumer': 'our.domain.com',
'openid.ext2.scope': 'https://mail.google.com/mail/feed/atom',
'openid.ns.ax':'http://openid.net/srv/ax/1.0',
'openid.ax.mode':'fetch_request',
'openid.ax.required':'firstname,lastname,email',
'openid.ax.type.firstname':'http://axschema.org/namePerson/first',
'openid.ax.type.lastname':'http://axschema.org/namePerson/last',
'openid.ax.type.email':'http://axschema.org/contact/email',
}
return HttpResponseRedirect(end_point + '?' + urllib.urlencode(parameters))
(assoc_handle zuvor erfolgreich durch die openid ursprüngliche Anforderung eingestellt ist)
Ich habe seit Tagen zu kämpfen versuchen, diesen Hybird Ansatz zum Laufen zu bringen, die Bekämpfung des am meisten undurchsichtige Fehlermeldungen (This page is invalid
... danke Google) und Mangel an konsistenter Dokumentation. Ich habe jedes Code-Sample durchsucht, das ich kann, um zu diesem Punkt zu gelangen. Jede Hilfe wäre willkommen ...