IIS集中化管理与编程REST API

本文介绍Microsoft IIS Administration,一种集中管理IIS配置的REST API和Web UI工具,支持远程IIS管理、大部分IIS配置项管理及安全性设置。文中详细讲解了安装步骤、配置文件修改、Web UI管理和REST API使用方法,包括获取AccessToken、编码访问API及权限问题解决。

IIS集中化管理与编程REST API

目录

一、       简介

二、       安装

三、       IIS Administration配置文件

四、       Web UI管理界面

五、       IIS Administration API

 

一、简介

Microsoft IIS Administration 微软提供,管理IIS配置REST API 和集中化IIS管理WEB UI

l  支持绝大部分IIS配置项管理

l  支持管理远程IIS,实现集中化IIS配置管理。

l  支持REST API,方便集成到自研系统。

l  支持IIS配置访问安全性设置

 

Githubhttps://github.com/Microsoft/IIS.Administration

微软官网使用文档:https://docs.microsoft.com/en-us/IIS-Administration/

 

二、安装

下载:https://docs.microsoft.com/en-us/IIS-Administration/getting-started

环境要求:

l  操作系统Windows7版本及以上版本

l  IIS Administration API 依赖.NET Core,在安装IIS Administration安装包时,会按需自动安装

安装完后:

Windows服务名:Microsoft IIS Administration

Microsoft IIS Administration API地址:https://localhost:55539 (可以使用IP地址访问,当时会遇到权限问题,修改权限的方法在下面“修改配置文件”中介绍)

Web UI管理地址:https://manage.iis.net/get

 

获取AccessToken

进入https://localhost:55539/connect,创建一个Access Key

image

 

拿到accesstoken

l  通过地址:https://localhost:55539/connect 进入api展示界面(https://localhost:55539/#/api),查看可在自己的程序中通过rest api 访问iis信息

l  通过地址:https://manage.iis.net/connect 进入UI管理界面

 

三、IIS Administration配置文件

1)  配置文件路径:%SystemDrive%\Program Files\IIS Administration\<version>\Microsoft.IIS.Administration\config\**

2)  修改配置文件后需要重启windows服务(Microsoft IIS Administration

3)  appsettings.json 配置:安全性、日志、audit(审计)、cors(跨域)等

4)  modules.json配置:启用或禁用IIS配置模块

 

配置修改示例

示例一、访问https://远程IP地址:55539/connect ,出现windows登录验证框

image

修改点:修改appsettings.json,将"require_windows_authentication"设置为 false

 

示例二、编码访问IIS Administration REST API 401没有权限访问

修改点:修改appsettings.json"access_policy" -> "api" ->"users": "administrators"修改为:"users": "Everyone"

 

appsettings.json修改后类似如下:(默认会将执行安装包的角色加入到安全设置中)

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"security" : {
     "require_windows_authentication" : false ,    //  默认为 true
     "users" : {
       "administrators" : [
         ……
       ],
       "owners" : [
         ……
       ]
     },
     "access_policy" : {
       "api" : {
         "users" : "Everyone" ,    //  默认为执行安装包角色
         "access_key" : true
       },
       "api_keys" : {
         "users" : "administrators" ,
         "access_key" : false
       },
       "system" : {
         "users" : "owners" ,
         "access_key" : true
       }
     }
   }

四、Web UI管理界面

前面介绍中拿到Access Token后,进入 https://manage.iis.net 管理界面

 

支持远程IIS管理

image

 

IIS服务器的系统资源监控

image

 

IIS根节点配置管理

image

 

image

 

IIS上的站点信息

image

 

IIS上的特定站点配置管理

包括:绑定信息、应用程序池、虚拟目录下的应用程序、身份验证、默认文档、目录浏览、IP限制、日志、MIME类型、监控、模块、响应压缩、请求筛选、HTTP响应标头、请求跟踪、静态缓存、HTTP重定向等

image

image

 

五、IIS Administration API

前面介绍中拿到Access Token后,进入 https://localhost:55539/#/api

image

image

 

METHOD      DESCRIPTION

GET         Retrieves the specified resource

POST        Creates a resource

PATCH       Updates the specified resource

DELETE      Deletes the specified resource

HEAD        Similar to get except only returns HTTP headers

示例

https://docs.microsoft.com/en-us/IIS-Administration/api/crud

 

代码示例RestSharp

01
02
03
04
05
06
07
08
09
var  client = new  RestClient(iisAdminBaseUrl);
ServicePointManager.ServerCertificateValidationCallback +=
(sender, certificate, chain, sslPolicyErrors) => true ;
var  request = new  RestRequest( "/api/webserver/websites" , Method.GET);
request.AddHeader( "Access-Token" , $ "Bearer {token}" );
request.AddHeader( "Accept" , "application/hal+json" );
IRestResponse response = client.Execute(request);
if  (response.IsSuccessful)
{ …… }

           

代码示例HttpClient

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
var  apiClient = new  HttpClient( new  HttpClientHandler()
{
UseDefaultCredentials = true ,
ServerCertificateCustomValidationCallback = (message, cert, chain, error) => true
}, true );
// Set access token for every request
apiClient.DefaultRequestHeaders.Add( "Access-Token" , "Bearer {token}" );
// Request HAL (_links)
apiClient.DefaultRequestHeaders.Add( "Accept" , "application/hal+json" );
 
var  res = await apiClient.GetAsync( "https://localhost:55539/api/webserver/websites" );
if  (res.StatusCode != HttpStatusCode.OK) {
   HandleError(res);
   return ;
}
JArray sites = JObject.Parse(res.Content.ReadAsStringAsync().Result).Value<JArray>( "websites" );

 

 

===========================================

over,谢谢阅读,若对你有帮助,请帮推荐下。

原文地址https://www.cnblogs.com/heyuquan/p/iis-admin-and-develop.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值