싱글 사인온(SSO)

SSO

단일 로그인(SSO)은 사용자가 하나의 자격 증명 세트를 사용하여 여러 애플리케이션 및 웹 사이트에 안전하게 인증할 수 있는 인증 방법입니다.

작동 방식은 무엇인가요?

사용자들이 자신의 SSID를 생성하고 그 SSID로부터 식별 토큰을 생성하도록 합니다. 귀하의 서비스에 로그인하려면, 그들은 단순히 식별 토큰의 ID를 입력하면 됩니다.

배경에서는, 식별 토큰(이는 NFTs입니다)이 실제로 사용자에게 속하는지 확인하고, 그렇다면, 식별 토큰에서 SSID를 가져옵니다.

식별 토큰에서 SSID를 가져오려면, 식별 토큰 ID를 전달하는 SSI 계약의 metadata 함수를 쿼리해야 합니다.

// 예시 코드
ISSI(ssiContract).metadata(identity_token_id)

이것은 다음 형식의 메타데이터 객체를 반환합니다.

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

실제 SSID를 얻으려면, 질문이 정말 SSID인지 확인한 후에 답변 변수를 가져옵니다.

// 완전한 코드
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
}

사용자들의 식별 토큰으로부터 수집된 SSID 데이터를 사용하여 그들의 식별자로 사용하고, 그 빠른 확인을 수행한 후에 그들을 로그인하게 됩니다.

Last updated