Está en la página 1de 11

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.

EspecificacinTcnicadel WebServicedeAutenticacin yAutorizacin

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0

ndicedecontenido
Introduccin.....................................................................................................................................3 Propsito.....................................................................................................................................3 DescripcinGeneraldelServicio...............................................................................................3 Referencias..................................................................................................................................4 InvocacindelWSAA.....................................................................................................................4 SincronizacindeClocks............................................................................................................4 WSDLdelWSAA.......................................................................................................................4 FlujoPrincipal.............................................................................................................................6 GeneracindeldocumentodelTRA(LoginTicketRequest.xml)...............................................6 GeneracindelTicketdeRequerimientodeAcceso(TRA)......................................................7 CodificacinenBase64elTRA..................................................................................................7 EnvidelTRAalWSAA............................................................................................................8 ExtraccinyvalidacindelTA................................................................................................10 RequerimientosdeloscertificadospertenecientesalosCOE.......................................................11

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0

Introduccin
Propsito
ElsiguientedocumentodescribelosaspectostcnicosdelserviciodeAutenticaciny AutorizacindeWebServices(WSAA)pertenecientealaAFIP.Dichoservicioesnecesarioparaque EntesExternosalaAFIP(EE)accedanalosWebServicesdeNegocio(WSN)ofrecidosporlaAFIP.

DescripcinGeneraldelServicio
ElWSdeAutenticacinyAutorizacinesunservicioB2B(BusinesstoBusiness)quepermite queloscomputadorespertenecientesalaAFIPyEntesExternosalaAFIPintercambieninformacin enformadirectasinintervencindeoperadores.Endichatareaintervienenlossiguientes componentes:

UnclientedeWSdesarrolladoporunEEsiguiendolasespecificacionesdeestedocumento. ElWSAA,WSpublicadoporlaAFIPqueimplementalaautenticacindeloscomputadoresdel EE(CEE)mediantecertificadosdigitalesX.509ylaautorizacindelmismocomoconsumidor deundeterminadoWebServicedeNegocio(WSN).

Alusarespecificacionesyprotocolosestndares(PKI,XML,CMS,WSDLySOAP)elcliente puedeserdesarrolladoconcualquierlenguajedeprogramacinmoderno. ParaqueunEnteExternoalaAFIP(EE)estautorizadoausarunWSNdeAFIP,deber realizaruntramiteadministrativoprevio,cuyadescripcinestafueradelalcancedeestedocumento. Unavezfinalizadoexitosamentedichotrmite,elqueincluyeelaltadelosCEE,elEEquedar registradoenelserviciodeautorizacindeAFIPcomoentidadautorizadaparausarelWSN. ParaqueunCEEpuedautilizarefectivamenteunWSN,debersolicitarunTicketdeAcceso (TA)pormediodelWSdeAutenticacinyAutorizacin(WSAA).Dichorequerimientoserealiza medianteelenvideun"TicketdeRequerimientodeAcceso"(TRA)delCEEalWSAA,mediante mensajeraSOAP. ElWSAArealizalaverificacindelTRAysielrequerimientoescorrecto,devuelveunmensaje quecontieneelTAquehabilitaalCEEautilizarelWSNsolicitado.ElTAdeberserutilizadoporel CEEparaaccederalWSN. Enlaactualidad,losWebServicesdelaAFIP,noestnincluidosenunUDDI(Universal DescriptionDiscoveryIntegration)deaccesoexterno,porlotantoparaaccederalosserviciosque ofrecelaAFIP,esnecesarioutilizarWSDL(WebServicesDefinitionLanguage)segnlaURLdefinida porAFIP.ApartirdelWSDLelEEpuedeconstruirunCliente,parapoderconsumirelWSN correspondiente.

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0

Entrminosgenerales,elpresentedocumentodetallalasoperacionesarealizarpara:

Generarun"TicketdeRequerimientodeAcceso"(TRA) Invocarel"WebServicedeAutenticacinyAutorizacin"(WSAA) InterpretarelmensajederespuestadelWSAAyobtenerel"TicketdeAcceso"(TA)

Referencias
Paramejorentendimientodelapresenteespecificacin,serecomiendaestarfamiliarizadocon lossiguientesestndares:

PKI,http://www.pki.org XML,http://www.w3.org/TR/XML/ SOAP,http://www.w3.org/TR/soap/ WSDL,http://www.w3.org/TR/wsdl/ CMS,http://www.ietf.org/rfc/rfc3852.txt NTP,http://www.ntp.org

InvocacindelWSAA
SincronizacindeClocks
LafechayhoradelcomputadorquegeneraelTRAyrecibeelTAdeberestarsincronizada. DichasincronizacinsepodrrealizaratravsdelprotocoloNTPconelservidortime.afip.gov.aru otroservidorqueprestedichoservicio.

WSDLdelWSAA
Acontinuacin,seexponeelWSDLpertenecientealWSAA.Elmismoestardisponibleenuna URLpertenecientealaAFIP.Elqueseexponeperteneceaunequipodehomologacin.

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0


<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="https://wsaa.afip.gov.ar/ws/services/LoginCms" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="https://wsaa.afip.gov.ar/ws/services/LoginCms" xmlns:intf="https://wsaa.afip.gov.ar/ws/services/LoginCms" xmlns:tns1="http://wsaa.view.sua.dvadac.desein.afip.gov" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)--> <wsdl:types> <schema elementFormDefault="qualified" targetNamespace="http://wsaa.view.sua.dvadac.desein.afip.gov" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="https://wsaa.afip.gov.ar/ws/services/LoginCms"/> <element name="loginCms"> <complexType> <sequence> <element name="in0" type="xsd:string"/> </sequence> </complexType> </element> <element name="loginCmsResponse"> <complexType> <sequence> <element name="loginCmsReturn" type="xsd:string"/> </sequence> </complexType> </element> </schema> <schema elementFormDefault="qualified" targetNamespace="https://wsaa.afip.gov.ar/ws/services/LoginCms" xmlns="http://www.w3.org/2001/XMLSchema"> <complexType name="LoginFault"> <sequence/> </complexType> <element name="fault" type="impl:LoginFault"/> </schema> </wsdl:types> <wsdl:message name="loginCmsResponse"> <wsdl:part element="tns1:loginCmsResponse" name="parameters"/> </wsdl:message> <wsdl:message name="loginCmsRequest"> <wsdl:part element="tns1:loginCms" name="parameters"/> </wsdl:message> <wsdl:message name="LoginFault"> <wsdl:part element="impl:fault" name="fault"/> </wsdl:message> <wsdl:portType name="LoginCMS"> <wsdl:operation name="loginCms"> <wsdl:input message="impl:loginCmsRequest" name="loginCmsRequest"/> <wsdl:output message="impl:loginCmsResponse" name="loginCmsResponse"/> <wsdl:fault message="impl:LoginFault" name="LoginFault"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="LoginCmsSoapBinding" type="impl:LoginCMS"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="loginCms"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="loginCmsRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="loginCmsResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> <wsdl:fault name="LoginFault"> <wsdlsoap:fault name="LoginFault" use="literal"/> </wsdl:fault> </wsdl:operation> </wsdl:binding> <wsdl:service name="LoginCMSService"> <wsdl:port binding="impl:LoginCmsSoapBinding" name="LoginCms"> <wsdlsoap:address location="https://wsaa.afip.gov.ar/ws/services/LoginCms"/> </wsdl:port> </wsdl:service> </wsdl:definitions>

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0

FlujoPrincipal
AcontinuacinsedescribenlospasosquesedebernseguirparasolicitarunTAalWSAA. Cadaunodelospuntosesexplicadodetalladamenteenlosapartadossiguientes.

1. GenerarelmensajedelTRA(LoginTicketRequest.xml) 2. GenerarunCMSquecontengaelTRA,sufirmaelectrnicayelcertificadoX.509 (LoginTicketRequest.xml.cms) 3. CodificarenBase64elCMS(LoginTicketRequest.xml.cms.bse64) 4. InvocarWSAAconelCMSyrecibirLoginTicketResponse.xml 5. Extraeryvalidarlainformacindeautorizacin(TA).

GeneracindeldocumentodelTRA(LoginTicketRequest.xml)
ElprimerpasoparasolicitarunTAespreparareldocumentodelTRA(denominado LoginTicketRequest.xml).SepuedeutilizarunaestructuraXMLyadefinidaquepuedeserobtenidade unarchivoexternoodeclaradacomoconstanteenelpropiocdigo.Elesquema(schema,XSD)que describedichoXMLeselsiguiente:
<?xmlversion="1.0"encoding="UTF8"?> <xsd:annotation> <xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:documentationxml:lang="es"> EsquemadeTicketdepedidodeaccesoaunWSN porpartedeunCEE. </xsd:documentation> </xsd:annotation> NrorevisionSVN:$Rev:1869$

<xsd:elementname="loginTicketRequest"type="loginTicketRequest"/> <xsd:complexTypename="loginTicketRequest"> <xsd:sequence> <xsd:elementname="header"type="headerType"minOccurs="1"maxOccurs="1"/> </xsd:sequence>

<xsd:elementname="service"type="serviceType"minOccurs="1"maxOccurs="1"/> <xsd:attributename="version"type="xsd:decimal"use="optional"default="1.0"/> </xsd:complexType> <xsd:sequence> <xsd:complexTypename="headerType"> <xsd:elementname="source"type="xsd:string"minOccurs="0"maxOccurs="1"/> <xsd:elementname="destination"type="xsd:string"minOccurs="0"maxOccurs="1"/> <xsd:elementname="uniqueId"type="xsd:unsignedInt"minOccurs="1"maxOccurs="1"/> <xsd:elementname="generationTime"type="xsd:dateTime"minOccurs="1"maxOccurs="1"/> </xsd:sequence> <xsd:elementname="expirationTime"type="xsd:dateTime"minOccurs="1"maxOccurs="1"/> </xsd:complexType> <xsd:simpleTypename="serviceType"> <xsd:restrictionbase="xsd:string"> <xsd:patternvalue="[az,AZ][az,AZ,\,_,09]*"/> <xsd:minLengthvalue='3'/> </xsd:restriction> </xsd:simpleType> </xsd:schema> <xsd:maxLengthvalue='32'/>

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0

Acontinuacinsedetallaladescripcindelosatributos.Losmismosdebenrespetarelformato definidoenelXSD:

source:Campoopcional.IndicaelDNdelcertificadoqueserutilizadoporWSAApara

verificarlafirmaelectrnicadelTRAgeneradoporelcomputador(CEE)querealizael requerimiento.Sinoseincluye,seutilizarelprimercertificadodefirmaincluidoenelCMS.Si seincluye,debercorresponderaunodeloscertificadosdefirmaincluidosenelCMS.

destination:Campoopcional.IndicaelDNdelWSAA,Encasodeutilizarse,deberser "cn=wsaahomo,o=afip,c=ar,serialNumber=CUIT33693450239"paraelambientede homologacin.

"cn=wsaa,o=afip,c=ar,serialNumber=CUIT33693450239"paraelambientedeproducciny

uniqueId:Enterode32bitssinsignoquejuntocongenerationTimeidentificael requerimiento. generationTime:Momentoenquefuegeneradoelrequerimiento.Latoleranciadeaceptacin serdehasta24horaspreviasalrequerimientodeacceso. expirationTime:Momentoenelqueexpiralasolicitud.Latoleranciadeaceptacinserde hasta24horasposterioresalrequerimientodeacceso. service:IdentificacindelWSNparaelcualsesolicitaelTA.

ElsiguienteesunejemplodeldocumentoLoginTicketRequest.xmlgeneradoporlaEE EmpresaSAcuyaCUITes30123456789yelDNdelCEEescn=srv1,ou=facturacion,o=empresa s.a.,c=ar,serialNumber=CUIT30123456789solicitandoaccesoalWSNwsfe:


<?xmlversion="1.0"encoding="UTF8"?> <loginTicketRequestversion="1.0"> <header> <source>cn=srv1,ou=facturacion,o=empresas.a.,c=ar,serialNumber=CUIT30123456789</source> <destination>cn=wsaa,o=afip,c=ar,serialNumber=CUIT33693450239</destination> <uniqueId>4325399</uniqueId> <generationTime>20011231T12:00:0003:00</generationTime> <expirationTime>20011231T12:10:0003:00</expirationTime> </header> <service>wsfe</service> </loginTicketRequest>

GeneracindelTicketdeRequerimientodeAcceso(TRA) SedebergenerarunmensajeCMSdeltipoSignedDataquecontengaelmensaje anteriormentegenerado(LoginTicketRequest.xml)ysufirmaelectrnicautilizandoSHA1+RSA.De estaforma,seobtieneelTRA(LoginTicketRequest.xml.cms).

CodificacinenBase64elTRA
ParapoderenviarelTRAalWSAA,elmismodebersercodificadoenBase64 (LoginTicketRequest.xml.cms.bse64)

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0

EnvidelTRAalWSAA
SedebeinvocarelmtodoLoginCMSdelWSAA.Elmismorecibecomoparmetrounacadena correspondientealacodificacinenBase64delTRA(LoginTicketRequest.xml.cms.base64)ydevuelve unacadenadenominadaLoginTicketResponse.xml.DeestaltimasedeberextraerelTicketde Acceso(TA).

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0

Encasodeencontrarsealgnerror,elmensajeSOAPdevolverunSoapFaultconteniendo cdigoydescripcindelerrorproducido.Ladescripcinpodrconteneradicionalmentedetallesmas especficosdelerror(ej:elXMLexpirhace10minutos).Lasiguientetablalistaloscdigosdeerrores ysucorrespondientedescripcin.EncasodequelaAFIPconsiderenecesario,nuevoscdigosde erroresysudescripcinsernagregados.

Cdigo coe.notAuthorized cms.bad cms.bad.base64 cms.cert.notFound cms.sign.invalid cms.cert.expired cms.cert.invalid cms.cert.untrusted xml.bad xml.source.invalid xml.destination.invalid xml.version.notSupported xml.generationTime.invalid xml.expirationTime.expired xml.expirationTime.invalid wsn.unavailable wsn.notFound wsaa.unavailable wsaa.internalError El CMS no es valido

Descripcin Computador no autorizado a acceder los servicio de AFIP No se puede decodificar el BASE64 No se ha encontrado certificado de firma en el CMS Firma invlida o algoritmo no soportado Certificado expirado Certificado con fecha de generacin posterior a la actual Certificado no emitido por AC de confianza No se ha podido interpretar el XML contra el SCHEMA El atributo 'source' no se corresponde con el DN del Certificad El atributo 'destination' no se corresponde con el DN del WSAA La versin del documento no es soportada El tiempo de generacin es posterior a la hora actual o posee ms de 24 horas de antigedad El tiempo de expiracin es inferior a la hora actual El tiempo de expiracin del documento es superior a 24 horas El servicio al que se desea acceder se encuentra momentneamente fuera de servicio Servicio informado inexistente El servicio de autenticacin/autorizacin se encuentra momentneamente fuera de servicio No se ha podido procesar el requerimiento

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0

ExtraccinyvalidacindelTA
LoginTicketResponse.xmlesdescriptoenelsiguienteesquema(schema,XSD):
<?xmlversion="1.0"encoding="UTF8"?> <xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentationxml:lang="es"> WSNporpartedeunCEE </xsd:documentation> </xsd:annotation> <xsd:elementname="loginTicketResponse"type="loginTicketResponse"/> <xsd:complexTypename="loginTicketResponse"> <xsd:sequence>

EsquemadeTicketderespuestaalpedidodeaccesoaun NrorevisionSVN:$Rev:695$

<xsd:elementname="header"type="headerType"minOccurs="1"maxOccurs="1"/> <xsd:elementname="credentials"type="credentialsType"minOccurs="1"maxOccurs="1"/> </xsd:sequence> </xsd:complexType> <xsd:sequence> <xsd:attributename="version"type="xsd:decimal"use="optional"default="1.0"/> <xsd:complexTypename="headerType"> <xsd:elementname="source"type="xsd:string"minOccurs="1"maxOccurs="1"/>

<xsd:elementname="destination"type="xsd:string"minOccurs="1"maxOccurs="1"/> <xsd:elementname="uniqueId"type="xsd:unsignedInt"minOccurs="1"maxOccurs="1"/> <xsd:elementname="generationTime"type="xsd:dateTime"minOccurs="1"maxOccurs="1"/> <xsd:elementname="expirationTime"type="xsd:dateTime"minOccurs="1"maxOccurs="1"/> </xsd:sequence> </xsd:complexType>

<xsd:complexTypename="credentialsType"> <xsd:sequence> <xsd:elementname="token"type="xsd:string"minOccurs="1"maxOccurs="1"/> <xsd:elementname="sign"type="xsd:string"minOccurs="1"maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:schema>

Losdatosincluidossonlossiguientes:

source:DNcorrespondientealWSAAquegenereldocumento(produccin/homologacin) destination:DNcorrespondientedelCEEautenticadoporelWSAA uniqueId:Enterode32bitssinsignoquejuntoagenerationTimeidentificaalrequerimiento. generationTime:MomentoenquefuegeneradoelTA. expirationTime:MomentoenelqueexpiraelTA. tokenysign:cadenasdecaracteresquedebenserinformadasalWSN(comovariables TOKENySIGN).LasmismascomponenelTA.Elformatointernodeestascadenaspuede diferirdeunservicioaotroysuinformacincontenidaesinterpretadaporelWSN.

Sedeberverificarqueelmensajederespuesta,queincluyealTA,noseencuentreexpirado mediantelavariableexpirationTimeysumomentodegeneracinseavlidomediantelavariable generationTime.

Departamento Seguridad Informtica - AFIP

Especificacin Tcnica del WebService de Autenticacin y Autorizacin Versin 1.2.0

Unejemploderespuestaalrequerimientoexpuestoanteriormenteeselsiguiente:

<?xmlversion="1.0"encoding="UTF8"?> <loginTicketResponseversion="1.0"> <header> <source>cn=wsaa,o=afip,c=ar,serialNumber=CUIT33693450239</source> <uniqueId>383953094</uniqueId>

<destination>cn=srv1,ou=facturacion,o=empresas.a.,c=ar,serialNumber=CUIT30123456789</destination> <generationTime>20011231T12:00:0203:00</generationTime> <expirationTime>20020101T00:00:0203:00</expirationTime> </header> <credentials>

<token>cES0SSuWIIPlfe5/dLtb0Qeg2jQuvYuuSEDOrz+w2EnAQiEeS86gzYf7ehiU3UaYit5FRb9z/3zq</token> <sign>a6QSSZBgLf0TTcktSNteeSg3qXsMVjo/F5py/Gtw7xucTrUWbsrVCdIoGE8Cm1bixpuVPlr58k6n</sign> </credentials> </loginTicketResponse>

NotarqueeltiempodevidadelTApresenteenesteejemploesde12horas.ElCEEpodrautilizar esteTAsinnecesidaddesolicitarotro,indistintamentedelacantidaddevecesqueconsumael servicioalcualsolicitoacceso.ParaelaccesoaunWSNparaelcualunCEEposeaunTAvalido,se recomiendautilizardichoTAynosolicitarunonuevo.

RequerimientosdeloscertificadospertenecientesalosCOE
LaautenticacindelosCEE,serealizaramediantecertificadosX.509v3.Losmismosdebern cumplirconlossiguientesrequerimientos:

1. SeremitidoporunaautoridadcertificantereconocidaporAFIP. 2. ElDNdeberenmarcarsedentrodelaRFC2253(http://www.ietf.org/rfc/rfc2253.txt) 3. ElcontenidodelDNsedebecumplirlossiguientesrequisitosestablecidosporlaOficina NacionaldeTecnologasdeInformacin(ONTI),disponibleen http://www.sgp.gov.ar/contenidos/onti/productos/docs/infraestructura/Anexo_III_Perfil_Minimo_ de_Certificados_y_CRLs_v1.pdf 4. Loscamposobligatoriossonlossiguientes:

Campo'commonName':DEBEcorresponderalnombredelserviciooaplicacin(ej.Sistemade Consulta)oalnombredelaunidadoperativaresponsabledelservicio(ej.Gerenciade Compras). Campo'serialNumber'(OID2.5.4.5:Nrodeserie):DEBEcontenerelnmerodeidentificacin delaPersonaJurdicaPblicaoPrivada,expresadocomotextoyrespetandoelsiguiente formatoycodificacin:"CUITnumero_de_cuit" (ej:CUIT20123456780)

Campo'organizationName':DEBEcoincidirconelnombredelaPersonaJurdicaPblicao Privada. Campo'countryName':DEBErepresentarelpasenelcualestconstituidalaPersona Jurdica,codificadosegnelestndar[ISO3166].

Departamento Seguridad Informtica - AFIP

También podría gustarte