Inicio de sesión único

SSO

El inicio de sesión único (SSO) es un método de autenticación que permite a los usuarios autenticarse de forma segura con múltiples aplicaciones y sitios web utilizando solo un conjunto de credenciales.

¿Cómo funciona?

Tienes a tus usuarios crear sus SSIDs, así como tokens de identidad a partir de esos SSIDs. Para iniciar sesión en tu servicio, solo necesitarán ingresar los IDs de los tokens de identidad.

En segundo plano, verificas que los tokens de identidad (que son NFTs) realmente pertenezcan a los usuarios y, si es así, obtienes el SSID del token de identidad.

Para obtener un SSID a partir de un token de identidad, tendrías que consultar la función de metadatos del contrato SSI al que le pasas el ID del token de identidad

// Código de ejemplo
ISSI(ssiContract).metadata(identity_token_id)

Esto devolverá un objeto de metadatos con el siguiente formato

struct SSIData {
    uint senderProfileId;
    uint receiverProfileId;
    uint auditorProfileId;
    uint deadline;
    string question;
    string answer;
    ProofType proofType;
}

Para obtener el SSID real, obtendrás la variable de respuesta después de verificar que la pregunta realmente sea SSID

// Código completo
function getSSID(uint _identity_token_id) external returns(string memory) {
    SSIData memory data = ISSI(ssiContract).metadata(identity_token_id)
    require(keccak256(abi.encodePacked(data.question)) == keccak256(abi.encodePacked("ssid")))
    return data.answer
}

Usarías los datos SSID de tus usuarios recopilados de sus tokens de identidad como sus identificadores y los iniciarías sesión después de realizar esa rápida verificación.

Last updated