2012-01-24 16 views
6

Deseo implementar Single Sign-on en la aplicación de un cliente. El cliente ha alojado correos electrónicos a través de Google Apps. Como Google ofrece OpenID, esto podría ser relativamente fácil de implementar. Sin embargo, es posible que el usuario no haya iniciado sesión en la cuenta de Google correcta (o incluso en varias cuentas).¿Cómo se limita el inicio de sesión de Google Federated al dominio de aplicaciones específico?

Por lo tanto, cuando se utiliza el punto final de Google OpenID https://www.google.com/accounts/o8/id, el usuario puede elegir con qué cuenta de Google quiere iniciar sesión. Como la aplicación solo permitirá el inicio de sesión desde el dominio de Google Apps, este paso se puede omitir y debería ser para una mayor experiencia del usuario. Sin embargo, no pude encontrar formas de hacerlo. Hay this question en SO, pero los enlaces están todos muertos o se refieren a especificaciones obsoletas. Además, no pude encontrar una pista en las especificaciones Federated Login for Google Account Users.

Algunos lugares dicen que uno debe utilizar https://www.google.com/a/[domain]/o8/ud?be=o8, pero que no parecen funcionar (ya):

$ wget --header='Accept: application/xrds+xml' https://www.google.com/a/[domain]/o8/ud?be=o8 
2012-01-24 09:29:53 ERROR 400: Bad Request. 

Respuesta

6

Aunque no pude encontrar los registros oficiales, el punto final de un dominio de Google Apps específica es la siguiente :

https://google.com/accounts/o8/site-xrds?hd=<domain> 

al utilizar este enfoque, tenga en cuenta que que se ejecutará en una modificación específica de Google:

Google cambió el camino de IdP Discovery y el usuario XRDS verificó un poco para dar a los usuarios de Google Apps el formato Openid http://example.com/openid?id=108441225163454056756 sin pedirles a los usuarios que construyan sus propios servidores openid. Para las pequeñas empresas, las personas pueden obtener sus derechos bajo su dominio con tan solo un nombre de dominio si usan Google Apps. source

+0

Esto no funciona para mí usando Python bajo GAE y users.create_login_url() con la url anterior como el parámetro federated_identity. ¿Alguien más ha intentado eso? –

+0

Pregunta separada separada sobre esto [aquí] (http://stackoverflow.com/questions/14637137/how-to-restrict-openid-login-to-one-google-apps-domain-on-gae-again) –

Cuestiones relacionadas