International Man of Awesome's Blog – When Too Much Awesome Isn't Enough

September 9, 2010

Extracting a list of all Users from your Active Directory

Filed under: Active Directory, Microsoft, Scripting, Windows, Windows 2003, Windows 2008 R2 — internationalmanofawesome @ 11:17 am

Last week, a colleague required a list of all active users from our Active Directory. This is relatively easy to do using the CSVDE tool available from Microsoft. The only caveat is that the AD needs to be kept up to date with the correct information. Garbage In, Garbage Out!

If you do a straight dump, using CSVDE –f c:\ADExport.csv you get everything, a list of all objects in your AD. Groups,  Computers, Containers, foreignSecurityPrincipal, publicFolder, etc.  EVERYTHING.

Note that the switch –f is to name the file and where you and it exported to.

So, you need to filter out the dump to show only users. Plus, we only want users, who are actually Users, so no Service Accounts, Builtin accounts, or Contacts. We need to filter on the following two AD attributes

objectClass=user  ; if you only filter on this it dumps both user and

objectCategory=person ; if you only filter on this, it dumps users and

You can filter rows using a –r switch, and to fine tune filtering on both object type, it would be

CSVDE -f c:\ADExport_Users.csv -r “(&(objectClass=user)(objectCategory=person))”

Another example would be to filter all users with a surname starting with C, and using wilcards like *

CSVDE -f c:\ADExport_Users_Surname_C.csv -r “(&(objectClass=user)(sn=C*))”

Additionally, when you do the dump, you get all of the AD attributes, DN, cn, objectGUID, objectClass etc. all across the top of the csv file. Good for referring to if you don`t know what exact attributes you want, but makes the csv file very unwieldy with A LOT of unnecessary information for the task at hand.

If you have your Active Directory laid out in a sensible manner, you can also target the export to specific OUs and their subOUs. To do this, you use the –d filter, specifying the DN of the OU you need to target, as follows.

CSVDE -f c:\ADExport_Users.csv -d “OU=Company_Users,DC=company,dc=local”

Now my colleague needed to know the users Distinguished Name, Display Name, account name, their internal phone extension number, their external telephone number, and their email address.  Matching each of these up to the AD attributes can be done fairly simply by finding the relevant field in the straight dump you did previously.

In our case, we needed the following fields:

DN           cn            sAMAccountName               mail         telephoneNumber               ipPhone

To do this, with use the –l (lowercase L) switch. CSVDE is supposed to be case insensitive, but this is what is listed in the help.

-l “sAMAccountName,cn,telephoneNumber,name,ipPhone,mail”

The order of filters is not important, as the dump will list the order that it comes out from AD. Additionally, DN will always be the first column.

So, putting all of these items together, we get the following.

CSVDE -f C:\ADExport_Users.csv -d “OU=Company_Users,DC=company,dc=local” -r “(&(objectClass=user)(objectCategory=person))” -l “sAMAccountName,cn,telephoneNumber,name,ipPhone,mail”

This gives us a nice dump of relevant information that I passed onto my colleague, who totally agreed that I`m AWESOME.

Twitter: @intmanofawesome

September 2, 2010

Setting up Active Directory Certificate Services with a Stand Alone Root CA

Filed under: Active Directory, PKI, Windows, Windows 2008 R2 — internationalmanofawesome @ 1:35 am

The below was grabbed from a TechNet article, to be found at http://technet.microsoft.com/en-us/library/cc772393(WS.10).aspx

AD CS Advanced Lab Scenario

The following sections describe how you can set up a lab to evaluate more features of AD CS than in the basic lab setup.

Steps for Setting Up an Advanced Lab

To test additional features of AD CS in a lab environment, you will need five computers running Windows Server 2008 and one client computer running Windows Vista. The computers for this guide are named as follows:

  • TEST_DC1: This computer will be the domain controller for your test environment.
  • TEST_CA_ROOT1: This computer will host a stand-alone root CA for the test environment.
  • TEST_CA_ISSUE1: This enterprise CA will be subordinate to TEST_CA_ROOT1 and issue client certificates for the Online Responder and client computers.
noteNote
Enterprise CAs and Online Responders can only be installed on servers running Windows Server 2008 Enterprise or Windows Server 2008 Datacenter.
  • TEST_ORS1. This server will host the Online Responder.
  • TEST_NDES. This server will host the Network Device Enrollment Service that makes it possible to issue and manage certificates for routers and other network devices.
  • TEST_CLI1: This client computer running Windows Vista will autoenroll for certificates from TEST_CA_ISSUE1 and verify certificate status from TEST_ORS1.

To configure the advanced lab setup for AD CS, you need to complete the following prerequisite steps:

  1. Set up a domain controller on TEST_DC1 for contoso.com, including some OUs to contain one or more users for TEST_CLI1, client computers in the domain, and for the servers hosting CAs and Online Responders.
  2. Install Windows Server 2008 on the other servers in the test configuration and join them to the domain.
  3. Install Windows Vista on TEST_CLI1, and join TEST_CLI1 to contoso.com.

After you have completed these preliminary setup procedures, you can begin to complete the following steps:

Step 1: Setting Up the Stand-Alone Root CA

Step 2: Setting Up the Enterprise Subordinate Issuing CA

Step 3: Installing and Configuring the Online Responder

Step 4: Configuring the Issuing CA to Issue OCSP Response Signing Certificates

Step 5: Configuring the Authority Information Access Extension to Support the Online Responder

Step 6: Assigning the OCSP Response Signing Template to a CA

Step 7: Enrolling for an OCSP Response Signing Certificate

Step 8: Creating a Revocation Configuration

Step 9: Setting Up and Configuring the Network Device Enrollment Service

Step 10: Verifying that the Advanced AD CS Test Setup Functions Properly

Step 1: Setting Up the Stand-Alone Root CA

A stand-alone root CA is the anchor of trust for the basic lab setup. It will be used to issue certificates to the subordinate issuing CA. Because it is critical to the security of the public key infrastructure (PKI), this CA is online in many PKIs only when needed to issue certificates to subordinate CAs.

To set up a stand-alone root CA

  1. Log on to TEST_CA_ROOT1 as an administrator.
  2. Start the Add Roles Wizard. On the Select Server Roles page, select the Active Directory Certificate Services check box, and then click Next two times.
  3. On the Select Role Services page, select the Certification Authority check box, and then click Next.
  4. On the Specify Setup Type page, click Standalone, and then click Next.
  5. On the Specify CA Type page, click Root CA, and then click Next.
  6. On the Set Up Private Key and Configure Cryptography for CA pages, you can configure optional settings, including cryptographic service providers. However, for basic testing purposes, accept the default values by clicking Next twice.
  7. In the Common name for this CA box, type the common name of the CA, RootCA1, and then click Next.
  8. On the Set the Certificate Validity Period page, accept the default validity duration for the root CA, and then click Next.
  9. On the Configure Certificate Database page, accept the default values or specify other storage locations for the certificate database and the certificate database log, and then click Next.
  10. After verifying the information on the Confirm Installation Options page, click Install.

Step 2: Setting Up the Enterprise Subordinate Issuing CA

Most organizations use at least one subordinate CA to protect the root CA from unnecessary exposure. An enterprise CA also allows you to use certificate templates and to use AD DS for enrollment and publishing certificates.

To set up an enterprise subordinate issuing CA

  1. Log on to TEST_CA_ISSUE1 as a domain administrator.
  2. Start the Add Roles Wizard. On the Select Server Roles page, select the Active Directory Certificate Services check box, and then click Next two times.
  3. On the Select Role Services page, select the Certification Authority check box, and then click Next.
  4. On the Specify Setup Type page, click Enterprise, and then click Next.
  5. On the Specify CA Type page, click Subordinate CA, and then click Next.
  6. On the Set Up Private Key and Configure Cryptography for CA pages, you can configure optional settings, including cryptographic service providers. However, for basic testing purposes, accept the default values by clicking Next twice.
  7. On the Request Certificate page, browse to locate TEST_CA_ROOT1, or if, the root CA is not connected to the network, save the certificate request to a file so that it can be processed later. Click Next.

    The subordinate CA setup will not be usable until it has been issued a root CA certificate and this certificate has been used to complete the installation of the subordinate CA.

  8. In the Common name for this CA box, type the common name of the CA, TEST_CA_ISSUE1.
  9. On the Set the Certificate Validity Period page, accept the default validity duration for the CA, and then click Next.
  10. On the Configure Certificate Database page, accept the default values or specify other storage locations for the certificate database and the certificate database log, and then click Next.
  11. After verifying the information on the Confirm Installation Options page, click Install.

Step 3: Installing and Configuring the Online Responder

An Online Responder can be installed on any computer running Windows Server 2008 Enterprise or Windows Server 2008 Datacenter. The certificate revocation data can come from a CA on a computer running Windows Server 2008, a CA on a computer running Windows Server 2003, or from a non-Microsoft CA. An Online Responder will typically not be installed on the same computer as a CA.

noteNote
IIS must also be installed on this computer before the Online Responder can be installed. As part of the setup process a virtual directory named OCSP is created in IIS and the Web proxy is registered as an Internet Server Application Programming Interface (ISAPI) extension.

To install the Online Responder service

  1. Log on to TEST_ORS1 as an administrator.
  2. Start the Add Roles Wizard. On the Select Server Roles page, select the Active Directory Certificate Services check box, and then click Next two times.
  3. On the Select Role Services page, clear the Certification Authority check box, select the Online Responder check box, and then click Next.

    You are prompted to install IIS and Windows Activation Service.

  4. Click Add Required Role Services, and then click Next three times.
  5. On the Confirm Installation Options page, click Install.
  6. When the installation is complete, review the status page to verify that the installation was successful.

Step 4: Configuring the Issuing CA to Issue OCSP Response Signing Certificates

As with any certificate template, the OCSP Response Signing template must be configured with the enrollment permissions for Read, Enroll, Autoenroll, and Write before any certificates can be issued based on the template.

To configure certificate templates for your test environment

  1. Log on to TEST_CA_ISSUE1 as a CA administrator.
  2. Open the Certificate Templates snap-in.
  3. Right-click the OCSP Response Signing template, and then click Duplicate Template.
  4. Type a new name for the duplicated template, such as OCSP Response Signing_2.
  5. Right-click the OCSP Response Signing_2 certificate template, and then click Properties.
  6. Click the Security tab. Under Group or user name, click Add, and type the name or browse to select the computer hosting the Online Responder service.
  7. Click the computer name, TEST_ORS1, and in the Permissions dialog box, select the Read and Autoenroll check boxes.
  8. While you have the Certificate Templates snap-in open, you can configure certificate templates for users and computers by substituting the desired templates in step 3, and repeating steps 4 through 7 to configure permissions for TEST_CLI1 and your test user accounts.

Step 5: Configuring the Authority Information Access Extension to Support the Online Responder

You need to configure the CAs to include the URL for the Online Responder as part of the authority information access extension of the issued certificate. This URL is used by the Online Responder client to validate the certificate status.

To configure the authority information access extension to support the Online Responder

  1. Log on to TEST_CA_ISSUE1 as a CA administrator.
  2. Open the Certification Authority snap-in.
  3. In the console tree, click the name of the CA.
  4. On the Action menu, click Properties.
  5. On the Extensions tab, click Select extension, and then click Authority Information Access (AIA).
  6. Select the Include in the online certificate status protocol (OCSP) extension check box, and click OK.
  7. Specify the locations from which users can obtain certificate revocation data; for this setup, the location is http://TEST_ORS1/ocsp.
  8. In the console tree of the Certification Authority snap-in, right-click Certificate Templates, and then click New Certificate Templates to Issue.
  9. In Enable Certificate Templates, select the OCSP Response Signing template and any other certificate templates that you configured previously, and then click OK.
  10. Open Certificate Templates, and verify that the modified certificate templates appear in the list.

Step 6: Assigning the OCSP Response Signing Template to a CA

Once the templates are properly configured, the CA needs to be configured to issue that template.

To configure the CA to issue certificates based on the newly created OCSP Response Signing template

  1. Open the Certification Authority snap-in.
  2. Right-click Certificate Templates, and then click Certificate Template to Issue.
  3. Select the OCSP Response Signing_2 template from the list of available templates, and then click OK.

Step 7: Enrolling for an OCSP Response Signing Certificate

Enrollment might not take place right away. Therefore, before you proceed to the next step, confirm that certificate enrollment has taken place so that a signing certificate exists on the computer, and verify that the permissions on the signing certificate allow the Online Responder to use it.

To verify that the signing certificate is properly configured

  1. Start or restart TEST_ORS1 to enroll for the certificates.
  2. Log on as a CA administrator.
  3. Open the Certificates snap-in for the computer. Open the Personal certificate store for the computer, and then verify that it contains a certificate titled OCSP Response Signing_2.
  4. Right-click this certificate, and then click Manage Private Keys.
  5. Click the Security tab. In the User Group or user name dialog box, click Add to type in and add Network Service to the Group or user name list, and then click OK.
  6. Click Network Service, and in the Permissions dialog box, select the Full Control check box. Click OK twice.

Step 8: Creating a Revocation Configuration

Creating a revocation configuration involves the following tasks:

  • Identify the CA certificate for the CA that supports the Online Responder.
  • Identify the CRL distribution point for the CA.
  • Select a signing certificate that will be used to sign revocation status responses.
  • Select a revocation provider, the component responsible for retrieving and caching the revocation information used by the Online Responder.

To create a revocation configuration

  1. Log on to TEST_ORS1 as a domain administrator.
  2. Open the Online Responder snap-in.
  3. In the Actions pane, click Add Revocation Configuration to start the Add Revocation Configuration wizard, and then click Next.
  4. On the Name the Revocation Configuration page, type a name for the revocation configuration, such as TEST_RC1, and then click Next.
  5. On the Select CA Certificate Location page, click Select a certificate for an existing enterprise CA, and then click Next.
  6. On the following page, the name of the CA, TEST_CA_ISSUE1, should appear in the Browse CA certificates published in Active Directory box.
    • If it appears, click the name of the CA that you want to associate with your revocation configuration, and then click Next.
    • If it does not appear, click Browser for a CA by Computer name and type the name of the computer hosting TEST_CA_ISSUE1 or click Browse to locate this computer. When you have located the computer, click Next.
      noteNote
      You can also select the CA certificate from the local certificate store or import it from removable media in step 5.
  7. View the certificate and copy the CRL distribution point for the parent root CA, RootCA1. To do this:
    1. Open the Certificate Services snap-in, and then select an issued certificate.
    2. Double-click the certificate, and then click the Details tab.
    3. Scroll down and select the CRL Distribution Points field.
    4. Select and copy the URL for the CRL distribution point that you want to use.
    5. Click OK.
  8. On the Select Signing Certificate page, accept the default, Automatically select signing certificate, and then click Next.
  9. On the Revocation Provider page, click Provider.
  10. On the Revocation Provider Properties page, click Add, enter the URL of the CRL distribution point, and then click OK.
  11. Click Finish.
  12. Using the Online Responder snap-in, select the revocation configuration, and then examine the status information to verify that it is functioning properly. You should also be able to examine the properties of the signing certificate to verify that the Online Responder is configured properly.

Step 9: Setting Up and Configuring the Network Device Enrollment Service

The Network Device Enrollment Service allows software on routers and other network devices running without domain credentials to obtain certificates.

The Network Device Enrollment Service operates as an ISAPI filter on IIS that performs the following functions:

  • Generates and provides one-time enrollment passwords to administrators
  • Processes SCEP enrollment requests
  • Retrieves pending requests from the CA

SCEP was developed as an extension to existing HTTP, PKCS #10, PKCS #7, RFC 2459, and other standards to enable network device and application certificate enrollment with CAs. SCEP is identified and documented on the Internet Engineering Task Force Web site (http://go.microsoft.com/fwlink/?LinkId=71055).

Before you begin this procedure, create a user ndes_user1 and add this user to the IIS user group. Then, use the Certificate Templates snap-in to configure Read and Enroll permissions for this user on the IPSEC (Offline Request) certificate template.

To set up and configure the Network Device Enrollment Service

  1. Log on to TEST_NDES as an enterprise administrator.
  2. Start the Add Roles Wizard. On the Select Server Roles page, select the Active Directory Certificate Services check box, and then click Next two times.
  3. On the Select Role Services page, clear the Certification Authority check box, and then select Network Device Enrollment Service.

    You are prompted to install IIS and Windows Activation Service.

  4. Click Add Required Role Services, and then click Next three times.
  5. On the Confirm Installation Options page, click Install.
  6. When the installation is complete, review the status page to verify that the installation was successful.
  7. Because this is a new installation and there are no pending SCEP certificate requests, click Replace existing Registration Authority (RA) certificates, and then click Next.

    When the Network Device Enrollment Service is installed on a computer where a registration authority already exists, the existing registration authority and any pending certificate requests are deleted.

  8. On the Specify User Account page, click Select User, and type the user name ndes_user1 and password for this account, which the Network Device Enrollment Service will use to authorize certificate requests. Click OK, and then click Next.
  9. On the Specify CA page, select either the CA name or Computer name check box, click Browse to locate the CA that will issue the Network Device Enrollment Service certificates, TEST_CA_ISSUE1, and then click Next.
  10. On the Specify Registry Authority Information page, type ndes_1 in the RA name box. Under Country/region, select the check box for the country/region you are in, and then click Next.
  11. On the Configure Cryptography page, accept the default values for the signature and encryption keys, and then click Next.
  12. Review the summary of configuration options, and then click Install.

Step 10: Verifying that the Advanced AD CS Test Setup Functions Properly

You can verify the setup steps described previously as you perform them.

After the installation is complete, you should verify that your advanced test setup is functioning properly.

To verify that the advanced AD CS test setup functions properly

  1. On the CA, configure several certificate templates to autoenroll certificates for TEST_CLI1 and users on this computer.
  2. When information about the new certificates has been published to AD DS, open a command prompt on the client computer and enter the following command to start certificate autoenrollment:

    certutil -pulse

  3. On the client computer, use the Certificates snap-in to verify that the certificates have been issued to the user and to the computer, as appropriate.
  4. On the CA, use the Certification Authority snap-in to view and revoke one or more of the issued certificates by clicking Certification Authority (Computer)/CA name/Issued Certificates and selecting the certificate you want to revoke. On the Action menu, point to All Tasks, and then click Revoke Certificate. Select the reason for revoking the certificate, and click Yes.
  5. In the Certification Authority snap-in, publish a new CRL by clicking Certification Authority (Computer)/CA name/Revoked Certificates in the console tree. Then, on the Action menu, point to All Tasks, and click Publish.
  6. On the client computer, use the Certificates snap-in to export one of the issued certificates and save it as an X.509 file.
  7. Open a command prompt, and enter the following command:

    certutil –url <exportedcert.cer>

  8. In the Verify and Retrieve dialog box, click OCSP (from AIA), and then click Retrieve. After the CRL is retrieved, the status will display Verified.

Create a free website or blog at WordPress.com.