A computer-implemented method for blockchain-based cross-entity authentication, comprising: obtaining (1710, 1627), by a service-side system from a first entity, an authentication request for authenticating a user, wherein the authentication request comprises a decentralized identifier, DID, of the user; determining, by the service-side system, whether the first entity is permitted to access authentication information of the user endorsed by a second entity to authenticate the user; in response to determining that the first entity is permitted to access the authentication information of the user endorsed by the second entity, generating (1720, 1629), by the service-side system, a blockchain transaction for obtaining an authentication result of the user by the second entity, wherein the authentication result is associated with the DID; transmitting (1730, 1629), by the service-side system, the blockchain transaction to a blockchain node for adding to a blockchain; obtaining, by the service-side system from the blockchain, the blockchain transaction for obtaining the authentication result of the user; obtaining, by the service-side system, an authentication result associated with the DID in response to the obtained blockchain transaction; generating, by the service-side system, a different blockchain transaction comprising the authentication result; transmitting, by the service-side system, the different blockchain transaction to a blockchain node for adding to the blockchain; obtaining, by the service-side system, the different blockchain transaction from the blockchain, the different blockchain transaction comprising the authentication result of the user by the second entity, wherein the authentication result indicates that the authentication succeeded or failed; and transmitting, by the service-side system, the authentication result to the first entity for granting or denying the user access to the first entity. obtaining (1710, 1627), by a service-side system from a first entity, an authentication request for authenticating a user, wherein the authentication request comprises a decentralized identifier, DID, of the user; determining, by the service-side system, whether the first entity is permitted to access authentication information of the user endorsed by a second entity to authenticate the user; in response to determining that the first entity is permitted to access the authentication information of the user endorsed by the second entity, generating (1720, 1629), by the service-side system, a blockchain transaction for obtaining an authentication result of the user by the second entity, wherein the authentication result is associated with the DID; transmitting (1730, 1629), by the service-side system, the blockchain transaction to a blockchain node for adding to a blockchain; obtaining, by the service-side system from the blockchain, the blockchain transaction for obtaining the authentication result of the user; obtaining, by the service-side system, an authentication result associated with the DID in response to the obtained blockchain transaction; generating, by the service-side system, a different blockchain transaction comprising the authentication result; transmitting, by the service-side system, the different blockchain transaction to a blockchain node for adding to the blockchain; obtaining, by the service-side system, the different blockchain transaction from the blockchain, the different blockchain transaction comprising the authentication result of the user by the second entity, wherein the authentication result indicates that the authentication succeeded or failed; and transmitting, by the service-side system, the authentication result to the first entity for granting or denying the user access to the first entity.