IIS集中化管理与编程REST API

简介: IIS集中化管理与编程REST API 目录 一、       简介 二、       安装 三、       IIS Administration配置文件 四、       Web UI管理界面 五、       IIS Administration API   一、简介 Microsoft IIS Administration 微软提供,管理IIS配置的REST API 和集中化IIS管理WEB UI。

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

相关文章
|
6天前
|
JSON API 开发工具
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
|
6天前
|
存储 API 网络架构
【Azure 存储服务】调用REST API获取Stroage Account Table中所有的Entity计数 -- Count
【Azure 存储服务】调用REST API获取Stroage Account Table中所有的Entity计数 -- Count
|
2天前
|
安全 Java API
告别繁琐编码,拥抱Java 8新特性:Stream API与Optional类助你高效编程,成就卓越开发者!
【8月更文挑战第29天】Java 8为开发者引入了多项新特性,其中Stream API和Optional类尤其值得关注。Stream API对集合操作进行了高级抽象,支持声明式的数据处理,避免了显式循环代码的编写;而Optional类则作为非空值的容器,有效减少了空指针异常的风险。通过几个实战示例,我们展示了如何利用Stream API进行过滤与转换操作,以及如何借助Optional类安全地处理可能为null的数据,从而使代码更加简洁和健壮。
16 0
|
6天前
|
存储 JSON API
【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
|
5天前
|
中间件 API 网络架构
Django后端架构开发:从匿名用户API节流到REST自定义认证
Django后端架构开发:从匿名用户API节流到REST自定义认证
8 0
|
6天前
|
API 网络架构 C++
【Azure Key Vault】使用REST API调用Azure Key Vault Secret的示例步骤
【Azure Key Vault】使用REST API调用Azure Key Vault Secret的示例步骤
|
6天前
|
API 网络架构 开发者
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
|
7天前
|
API 网络架构
【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)
【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)
|
7天前
|
API 网络架构
【Azure Developer】如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息
【Azure Developer】如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息
|
7天前
|
存储 API C#
【Azure 存储服务】Storage Account Blob 使用REST API如何获取磁盘大小(Content-Length), IOPS信息
【Azure 存储服务】Storage Account Blob 使用REST API如何获取磁盘大小(Content-Length), IOPS信息
下一篇
云函数