Exempel registrering genomgångSample Enrollment Walkthrough

Det här avsnittet visas de steg som krävs för att utföra en virtuella smarta kort självbetjäningsregistrering.This topic shows the steps required to perform a Virtual Smart card Self-Service enrollment. Den visar en automatiskt godkänd begäran med PIN-kod anges av användaren.It shows an auto-approved request with a user-set PIN.

  1. Klienten autentiserar användaren och sedan begära en lista över profilmallar som den autentiserade användaren kan registrera för:The client authenticates the user, then requests a list of profile templates that the authenticated user can enroll for:

    GET /CertificateManagement/api/v1.0/profiletemplates.
    


  2. Klienten visar den lista som visas för användaren.The client displays the resulting list to the user. Användaren väljer en Profilmall för vSC (virtuellt smartkort) med namnet ”virtuella smartkort VPN” och UUID 97CD65FA-AF4B-4587-9309-0DD6BFD8B4E1.The user selects a vSC (Virtual Smart Card) profile template with name “Virtual Smartcard VPN” and UUID 97CD65FA-AF4B-4587-9309-0DD6BFD8B4E1.

  3. Klienten hämtar princip för certifikatregistrering för den valda profilmallen med hjälp av UUID som returneras i föregående steg:The client retrieves the enrollment policy of the selected profile template by using the UUID returned in the previous step:

    GET /CertificateManagement/api/v1.0/profiletemplates/97CD65FA-AF4B-4587-9309-0DD6BFD8B4E1/policies/enroll
    


  4. Klienten analyserar fältet ”DataCollection” i principen returnerade påpekas att en enda datainsamling objektet rätt ”begär orsak” visas.The client analyzes the “DataCollection” field in the returned policy, noting that a single data collection item entitled “Request Reason” appears. Klienten anger också att flaggan ”collectComments” anges till FALSKT, så att den inte uppmana användaren att ange någon.The client also notes that the “collectComments” flag is set to false, so it doesn’t prompt the user to enter any.

  5. När användaren har angett orsaken till att kräva certifikat, skapar klienten en begäran:After the user has entered the reason for requiring the certificates, the client creates a request:

    POST /CertificateManagement/api/v1.0/requests
    
    {
        "datacollection":"[{“Request Reason”:”Need VPN Certs”}]",
        "type":"Enroll",
        "profiletemplateuuid":"97CD65FA-AF4B-4587-9309-0DD6BFD8B4E1",
        "comment":""
    }
    


  6. Servern har skapar begäran och returnerar URI för begäran till klienten: /CertificateManagement/api/v1.0/requests/C6BAD97C-F97F-4920-8947-BE980C98C6B5.The server successfully creates the request and returns the URI of the request to the client: /CertificateManagement/api/v1.0/requests/C6BAD97C-F97F-4920-8947-BE980C98C6B5.

  7. Klienten hämtar request-objektet genom att anropa returnerade URI: N:The client retrieves the request object by calling the returned URI:

    GET /CertificateManagement/api/v1.0/requests/C6BAD97C-F97F-4920-8947-BE980C98C6B5
    


  8. Verifierar klienten att egenskapen ”tillstånd” i begäran anges till ”godkänd”.The client verifies that the “state” property in the request is set to “approved”. Begäran om körning kan börja.Request execution may begin.

  9. Klienten undersöker begäran om att se om det finns ett smartkort som är redan kopplad till begäran genom att analysera innehållet i parametern ”newsmartcarduuid”.The client examines the request to see if there is a smart card already associated with the request by analyzing the contents of the “newsmartcarduuid” parameter.

  10. Eftersom den bara innehåller ett tomt GUID måste klienten använda ett befintligt kort inte redan används av MIM CM, eller skapa en vid profilmallen som konfigureras för virtuella smartkort.Since it only contains an empty GUID, the client must either use an existing card not already in use by MIM CM, or create one in the case of the profile template being configured for virtual smart cards.

  11. Eftersom dessa har angivits till klienten via den första frågan enrollable profilmallar (steg 1), måste klienten nu skapa en virtuell smartkortenhet.Since the latter has been indicated to the client through the initial query for enrollable profile templates (step 1), the client must now create a virtual smart card device.

  12. Klienten hämtar smartkort principen från profilmallen (med UUID för mallen som valdes i steg 3):The client retrieves the smart card policy from the profile template (using the UUID of the template selected in step 3):

    GET /CertificateManagement/api/v1.0/profiletemplates/97CD65FA-AF4B-4587-9309-0DD6BFD8B4E1/configuration/smartcards
    
  13. Principen för smartkort innehåller den förinställda administratörsnyckeln för kortet i egenskapen ”DefaultAdminKeyHex”.The smart card policy will contain the default admin key for the card in the “DefaultAdminKeyHex” property. Klienten måste ange den ursprungliga administratörsnyckeln för smartkortet till den här nyckeln när du skapar smartkortet.When creating the smart card, the client must set the initial admin key of the smart card to this key.

  14. Vid skapar smartkort enheten kan måste klienten tilldela den på begäran:Upon creating the smart card device, the client must assign it to the request:

    POST /CertificateManagement/api/v1.0/smartcards
    
    {
        "requestid":" C6BAD97C-F97F-4920-8947-BE980C98C6B5",
        "cardid":"23CADD5F-020D-4C3B-A5CA-307B7A06F9C9",
    }
    


  15. Servern svarar till klienten med en URI för objektet nyligen skapade smartkort: api/v1.0/smartcards/D700D97C-F91F-4930-8947-BE980C98A644.The server will respond to the client with a URI to the newly created smart card object: api/v1.0/smartcards/D700D97C-F91F-4930-8947-BE980C98A644.

  16. Klienten hämtar smartkort-objektet:The client retrieves the smart card object:

    GET /CertificateManagement/api/v1.0/smartcards/ D700D97C-F91F-4930-8947-BE980C98A644
    


  17. Genom att kontrollera värdet för ”diversifyadminkey”-flaggan i principen för smartkort som erhölls i steg 12, känner klienten behöver distribuera admin-nyckel.By checking the value of the “diversifyadminkey” flag in the smart card policy obtained in step 12, the client knows it has to diversify the admin key.

  18. Klienten hämtar den föreslagna administratörsnyckeln:The client retrieves the proposed admin key:

    GET /CertificateManagement/api/v1.0/requests/C6BAD97C-F97F-4920-8947-BE980C98C6B5/smartcards/D700D97C-F91F-4930-8947-BE980C98A644/diversifiedkey?cardid=23CADD5F-020D-4C3B-A5CA-307B7A06F9C9
    


  19. Klienten måste autentisera till kortet som administratör för att kunna ange admin-nyckel.The client must authenticate to the card as admin in order to set the admin key. Om du vill göra detta måste klienten begär en autentiseringsfråga från smartkortet och skickar den till servern:To do this, the client requests an authentication challenge from the smart card and submits it to the server:

    GET /CertificateManagement/api/v1.0/requests/C6BAD97C-F97F-4920-8947-BE980C98C6B5/smartcards/D700D97C-F91F-4930-8947-BE980C98A644/authenticationresponse?cardid=23CADD5F-020D-4C3B-A5CA-307B7A06F9C9&challenge=CFAA62118BBD25&diversified=false
    

    Servern skickar anrop svar i brödtexten för HTTP-svar.The server sends the challenge response in the HTTP response body. Leta upp den hexadecimala kontrollsträngen, konvertera till base64 och skickar den som en parameter i URL: en.Locate the hexadecimal challenge string, convert to base64, and pass it as a parameter in the URL. URL-Adressen som returneras av en annan svar som måste konverteras till hexadecimalt format.The URL will return another response, which must be converted back to hexadecimal format.

  20. Servern skickar anrop svar i brödtexten för HTTP-svar och klienten används för att distribuera admin-nyckel.The server sends the challenge response in the HTTP response body and the client uses it to diversify the admin key.

  21. Klienten anger att användaren måste ange sina önskade PIN-koder genom att kontrollera fältet ”UserPinOption” i principen för smartkort.The client notes that the user must provide their desired pin by inspecting the “UserPinOption” field in the smart card policy.

  22. När användaren har angett önskade PIN-koden i en dialogruta, utför klienten en anrop / svar-autentisering som beskrivs i steg 19, med den enda skillnaden är att flaggan diversifierat nu ska anges till ”true”:After the user has entered their desired pin into a dialog, the client performs a challenge-response authentication as outlined in step 19, with the only difference being that the diversified flag should now be set to “true”:

    GET /CertificateManagement/api/v1.0/ requests/C6BAD97C-F97F-4920-8947-BE980C98C6B5/smartcards/D700D97C-F91F-4930-8947-BE980C98A644/authenticationresponse?cardid=23CADD5F-020D-4C3B-A5CA-307B7A06F9C9&challenge=CFAA62118BBD25&diversified=true
    


  23. Svaret från servern använder klienten för att ange den önskade användare PIN-kod.The client uses the response received from the server to set the desired user pin.

  24. Klienten är nu redo att skapa certifikatbegäranden.The client is now ready to generate certificate requests. Frågar profil certifikat generation mallparametrarna för att avgöra hur nycklar/begäranden ska skapas.It queries the profile template certificate generation parameters to determine how the keys/requests should be generated.

    GET /CertificateManagement/api/v1.0/requests/C6BAD97C-F97F-4920-8947-BE980C98C6B5/certificaterequestgenerationoptions.
    


  25. Servern svarar med ett JSON-serialiserad CertificateRequestGenerationOptions objekt med information om det går att exportera nyckeln, certifikatets eget namn, hash-algoritmen, nyckelalgoritm, nyckelstorleken osv. Klienten använder dessa parametrar för att generera en certifikatbegäran.The server responds with a single JSON-serialized CertificateRequestGenerationOptions object detailing the exportability of the key, certificate friendly name, hashing algorithm, key algorithm, key size, etc. The client uses these parameters to generate a certificate request.

  26. Den enda certifikatbegäran skickades till servern.The single certificate request is submitted to the server. Klienten kan dessutom ange en PFX-lösenordet som ska användas för att dekryptera alla PFX-blobbar i de fall där certifikatmallen anger arkivering certifikat på Certifikatutfärdaren, d.v.s. CA genererar nyckelparet och skickar det till klienten.The client could additionally specify a PFX password that should be used to decrypt any PFX blobs in the case where the certificate template specifies archiving the certificates on the CA, i.e. CA generates the key pair, then sends it to the client. Klienten kan även välja att lägga till vissa kommentarer.The client may also choose to add some comments.

    POST /CertificateManagement/api/v1.0/requests/C6BAD97C-F97F-4920-8947-BE980C98C6B5/certificatedata
    
    {
       "pfxpassword":"",
       "certificaterequests":[
           "MIIDZDC…”
        ]
    }   
    


  27. Servern svarar med ett enda, serialiseras till JSON Microsoft.Clm.Shared.Certificate objekt efter några sekunder.After a few seconds, the server responds with a single, JSON-serialized Microsoft.Clm.Shared.Certificate object. Genom att kontrollera flaggan ”isPkcs7” klienten lär sig att svaret inte är en PFX-blob.By checking the “isPkcs7” flag, the client learns that this response is not a PFX blob. Klienten hämtar blob av base64 avkoda strängen ”pkcs7” och installerar den.The client extracts the blob by base64 decoding the “pkcs7” string and installs it.

  28. Klienten markerar begäran som slutförd.The client marks the request as complete.

    PUT /CertificateManagement/api/v1.0/requests/C6BAD97C-F97F-4920-8947-BE980C98C6B5
    
    {
        "status":"Completed"
    }