Pregunta

Google tiene un usuario muy agradable de usar inicio de sesión OpenID federada con el descubrimiento de punto final automagic:

Esto se implementa en Servlets Java, hay un equivalente PHP que puede ser utilizado en conjunción con php-openid?

El mecanismo de descubrimiento, XRDS, se cubre en el siguiente documento:

  • groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains

Al parecer, algo así como "XRDS: sencillas de diso" deberían funcionar, pero las pruebas básicas no proporciona resultados útiles.

  • code.google.com/p/diso /

Gracias,

¿Fue útil?

Solución

Ok he encontrado que es relativamente sencillo para modificar la aplicación XRDS: sencillas para apoyar mecanismo de descubrimiento-Host Meta de Google. La advertencia siendo este es un mecanismo de descubrimiento experimental El espacio de nombre de Google y debe cambiar en algún momento posterior a algo más adecuado para un sistema global independiente.

Parche para XRDS-simple:

Ejemplo de uso para encontrar el URL de identidad para alimentar con PHP-OpenID:

<?php

require_once 'XRDS.php';
require_once 'XRDS/Discovery.php';

$domain = 'google.com';

$disco = new XRDS_Discovery();
$disco->discovery_methods = array('XRDS_Discovery_Host_Meta');
$xrds = $disco->discover('https://www.google.com/accounts/o8/.well-known/host-meta?hd=' . $domain);

$xrd = $xrds->xrd[0];
$identityUri = $xrd->service[1]->uri[0]->uri;

if (0 == strcmp($xrd->canonicalId, $domain)) {
    echo "identity uri: $identityUri\n\n";
} else {
    echo "discovery failed.\n\n";
}

?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top