ProHoster > Blog > Administración > Experiencia no uso da tecnoloxía Rutoken para rexistrar e autorizar usuarios no sistema (parte 3)
Experiencia no uso da tecnoloxía Rutoken para rexistrar e autorizar usuarios no sistema (parte 3)
Bo día!
Na parte anterior Creamos con éxito o noso propio centro de certificación. Como pode ser útil para os nosos propósitos?
Usando unha autoridade de certificación local, podemos emitir certificados e tamén verificar sinaturas nestes certificados.
Ao emitir un certificado a un usuario, a autoridade de certificación utiliza unha solicitude de certificado especial Pkcs#10, que ten o formato de ficheiro ".csr". Esta solicitude contén unha secuencia codificada que a autoridade de certificación sabe analizar correctamente. A solicitude contén tanto a clave pública do usuario como os datos para crear un certificado (unha matriz asociativa con datos sobre o usuario).
Veremos como recibir unha solicitude de certificado no seguinte artigo, e neste artigo quero dar os principais comandos da autoridade de certificación que nos axudarán a completar a nosa tarefa no backend.
Entón, primeiro temos que crear un certificado. Para iso usamos o comando:
openssl ca -batch -in user.csr -out user.crt
ca é o comando openSSL que se relaciona coa autoridade de certificación,
-batch: cancela as solicitudes de confirmación ao xerar un certificado.
user.csr — solicitude para crear un certificado (ficheiro en formato .csr).
user.crt - certificado (resultado do comando).
Para que este comando funcione, a autoridade de certificación debe estar configurada exactamente como se describe na parte anterior do artigo. En caso contrario, terá que especificar adicionalmente a localización do certificado raíz da autoridade de certificación.
cms é un comando openSSL que se usa para asinar, verificar, cifrar datos e outras operacións criptográficas mediante openSSL.
-verify - neste caso, verificamos o certificado.
authenticate.cms - un ficheiro que contén datos asinados co certificado emitido polo comando anterior.
-inform PEM - Utilízase o formato PEM.
-CAfile /Users/……/demoCA/ca.crt - camiño ao certificado raíz. (sen isto o comando non funcionou para min, aínda que os camiños a ca.crt estaban escritos no ficheiro openssl.cfg)
-out data.file — Envio os datos descifrados ao ficheiro data.file.
O algoritmo para usar unha autoridade de certificación no lado do backend é o seguinte:
Rexistro de usuario:
Recibimos unha solicitude para crear un certificado e gardalo no ficheiro user.csr.
Gardamos o primeiro comando deste artigo nun ficheiro coa extensión .bat ou .cmd. Executamos este ficheiro desde o código, xa que previamente gardamos a solicitude para crear un certificado no ficheiro user.csr. Recibimos un ficheiro co certificado user.crt.
Lemos o ficheiro user.crt e enviámosllo ao cliente.
Autorización de usuario:
Recibimos datos asinados do cliente e gardámolos no ficheiro authenticate.cms.
Garda o segundo comando deste artigo nun ficheiro coa extensión .bat ou .cmd. Executamos este ficheiro desde o código, tendo gardado previamente os datos asinados do servidor en authenticate.cms. Recibimos un ficheiro con datos descifrados data.file.
Lemos data.file e comprobamos a validez destes datos. Descríbese o que se debe comprobar exactamente no primeiro artigo. Se os datos son válidos, a autorización do usuario considérase exitosa.
Para implementar estes algoritmos, pode usar calquera linguaxe de programación que se utilice para escribir o backend.
No seguinte artigo veremos como traballar co complemento Retoken.