Microsoft IIS Administration Preview

Previously we announced that we are developing a new REST API for administering IIS. Now, the Microsoft IIS Administration API is having its first preview release. The preview can be obtained by visiting https://manage.iis.net.

Getting started with https://manage.iis.net

The application located at https://manage.iis.net has been designed to allow you to control any of your IIS machines running the administration API. This manager can be accessed from anywhere, which means now you will be able to monitor IIS from your mobile device if you wish. The site is currently in preview and we will be adding more features in the near future. After reaching the site for the first time you will be greeted by a welcome screen. This screen allows you to download the administration API which the site needs to run. To get the API click the download button and follow along with the installer. Otherwise, if you already have the API installed you can skip the download and go directly to the connection screen.

The welcome screen

Installing the API

The first requirement to installing the Microsoft IIS Administration API is having IIS enabled. Secondly, the API requires .NET Core to be installed. Please make sure to enable IIS before installing .NET Core in order to receive the ASP.NET Core Module.

The install time varies depending on whether or not certain IIS features are already enabled. If IIS Windows Authentication and IIS Hostable Web Core are not enabled, the installer will enable them for you which can take a few minutes.

Connecting

After the API is installed a connection must be created to begin using it from https://manage.iis.net. By default, the connection screen is already filled out for connecting to the local machine. The only step left is specifying an access token. Click the “Get Access Token” link to open the API view and generate an access token for connecting. The access token will need to be entered in the “Access Token” field of the connection form, then you can click connect to begin using the web based manager.

By default only members of the Administrators group and IIS Administrators group have access to configure IIS using the Microsoft IIS Administration API. The browser may prompt you to enter your windows credentials whenever connecting.

image

Connecting to localhost

generating-token

Generating an Access Token

Once the connection is created the home page of the web manager is displayed. Currently the home page has a list of all the sites registered in IIS. In the future we plan to add monitoring and dashboard tabs as well. Clicking on a site will allow you to configure it and clicking the “Server Manager” button will bring you to settings for the entire webserver.

image

The web sites view at https://manage.iis.net

We are currently working on the documentation for the API and will update the blog when a link to the documentation is available. In the meantime the built-in API Explorer that comes with the Microsoft IIS Administration API is a perfect way to find out how the API exposes itself. This built in view can be accessed by browsing to https://localhost:55539 after installing the API. We discussed this tool in https://blogs.iis.net/adminapi/introducing-the-iis-administration-api.

Below is a video that we put together to introduce the next generation of Microsoft IIS Administration. Here we can see the built-in API Explorer and https://manage.iis.net in action. As mentioned in the video, the API is open source and is located at https://github.com/Microsoft/IIS.Administration.

Microsoft IIS Administration, A New Way to Manage IIS

23 Comments

  • good job guys

  • Awesome! more grace to you all

  • How do you install IIS Administration on Nano Server?

  • @Pierre

    I'm thrilled to see interest for IIS Administration on Nano Server! Installation on Nano Server is done through a PowerShell script. Currently we only packaged up the preview for installing with the MSI but I can certainly push to get the Nano Server installation package ready. One thing to note is that the Nano Sever machine has to already be set up to host .NET Core applications for IIS Administration to be able to install successfully. If you want to try it out before we package it up for Nano Server, you can publish it directly from the repository at https://github.com/microsoft/iis.administration and install it. If you have any questions let me know.

  • Attempting to load https://manage.iis.net with an ad blocker active throws an XHR Load Error due to angulartics2-google-analytics.js being blocked. This prevents the website from being used at all. Not that it would do any good anyways, as your Google Analytics ID tag is set to UA-XXXXXXXX-X. Metrics should be optional, and why aren't you using AppInsights?

  • @ Forrest M

    Thanks for pointing out this issue. Do you mind telling me which ad blocker you were using when this happened? Our intention is to have a version of the management GUI at https://manage.iis.net available on premise and then there would be no metrics. When visiting https://manage.iis.net the calls that are made to your IIS Server are made directly from your browser so they are totally hidden from us. We do like to know how many visitors use the site and which pages they're visiting so that way we can prioritize future improvements.

  • @Jimmy I use UBlock Origin and Ghostery in Chrome. I have no concerns over what information your team is able to see - I trust you built this tool with confidentiality in mind.

  • @Forrest M

    Thank you! I will check this out as soon as possible.

  • @Jimmy Campbell
    Thanks for your answer.
    I've deployed 8 VMs running on Nano Server that I'm using as a web farm.
    Being able to use IIS Administration through the new web interface would be of great help.
    I've installed the IIS package, is there anything else I need to install to host .NET Core apps?

  • @Pierre

    There are some steps required to get .NET Core apps running on Nano Server. The best place to get up and running for that is https://docs.asp.net/en/latest/tutorials/nano-server.html.

  • @Forrest M

    Thanks again for telling us about that issue. We just updated the site to address it. The next time you visit and reload the page, everything should be running fine.

  • Will there be an out of the box delegation feature to allow users not in the administrators group to have management access?

  • @Jay

    The new IIS Administration doesn't require the user to be in the Administrators group for management access. At install time we create the 'IIS Administrators' group. Any user in this group will be granted access to manage IIS.

    You can customize this even further by providing your own groups or eliminating windows authentication altogether. Client certificate authentication is also possible.

    We are currently working on documentation for that will outline the different ways to control access.

  • @Jimmy Campbell
    As per https://technet.microsoft.com/en-us/windows-server-docs/get-started/iis-on-nano-server#appendix-1-list-of-iis-sub-features
    Web-HWC is not part of the supported features for IIS on Nano Server.
    I tried this command line:
    dism /online /enable-feature /featurename:Web-WHC /all
    Result:
    Feature name Web-WHC is unknown.
    A Windows feature name was not recognized.

    Therefore I haven't found a way to enable Hostable Web Core.

  • @ Pierre

    IIS Hostable Web Core is enabled by default when you install the IIS package on Nano Server. Also, I have just published a new post on how to enable IIS Administration on Nano Server https://blogs.iis.net/adminapi/microsoft-iis-administration-on-nano-server.

  • I have 4 web sites running on my local IIS instance (Windows 7/IIS 7.5). I'm currently only seeing one site in the Web Manager page, but when I go to the API explorer everything is there.

  • @ Aidan Black

    This is a known issue with 1.0.36. https://github.com/Microsoft/IIS.Administration/issues/25. The issue is caused by having non HTTP or HTTPS bindings for a web site. We are adding support for other binding types in our next release that should be coming soon.

    Right now the only way to make the web sites appear in the web manager is to remove the non HTTP/HTTPS bindings.

  • @Jimmyca

    Ok, that worked. Thanks!

  • Let's say I don't want to have the API access enabled all the time. Can I generate tokens and delete them using command line (scripting), for scenarios where token is needed only for very short time (few seconds during automated deployment)?

  • @ Anil Mujagic

    This is a supported scenario and it is what we do when we run our tests. Generating access tokens is locked down to Administrators and IIS Administrators, so the HTTP client that is used to generate the access token must support windows authentication.

    This is the method (GetApiKey) we use in our tests to generate temporary access tokens.
    https://github.com/Microsoft/IIS.Administration/blob/dev/test/Microsoft.IIS.Administration.Tests/Utils.cs#L20

    This is a PowerShell function (Generate-AccessToken) that is performing the same task.
    https://github.com/Microsoft/IIS.Administration/blob/dev/scripts/utils.ps1#L35

  • Hello all,

    Trying to deploy this API via ansible, but it seems that i need an MSI, do you know if this one exist?

  • So where is the MSI? How am I supposed to deploy this to two dozen IIS servers that don't expose console interfaces without an MSI?

  • Can the IIS Administration API be configured to use the default 443 port with specific URL bindings?

Comments have been disabled for this content.