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

相关文章
|
3月前
|
安全 大数据 API
elasticsearch|大数据|elasticsearch的api部分实战操作以及用户和密码的管理
elasticsearch|大数据|elasticsearch的api部分实战操作以及用户和密码的管理
45 0
|
2月前
|
API C++
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(1)
前言   本文旨在学习socket网络编程这一块的内容,epoll是重中之重,后续文章写reactor模型是建立在epoll之上的。
25 0
|
2月前
|
监控 安全 Linux
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(3)
高并发服务器模型-poll poll介绍   poll跟select类似, 监控多路IO, 但poll不能跨平台。其实poll就是把select三个文件描述符集合变成一个集合了。
26 0
|
2月前
|
运维 监控 前端开发
功能强大的国产API管理神器 Eolink,亲测好用
功能强大的国产API管理神器 Eolink,亲测好用
17 0
功能强大的国产API管理神器 Eolink,亲测好用
|
2月前
|
JSON 缓存 API
title: 深入理解REST API设计的最佳实践
title: 深入理解REST API设计的最佳实践
31 0
|
2月前
|
Web App开发 前端开发 测试技术
【Web API系列】使用异步剪贴板API(async clipboard)的图像的编程复制和粘贴
【Web API系列】使用异步剪贴板API(async clipboard)的图像的编程复制和粘贴
44 1
|
3月前
|
消息中间件 Kafka API
kafka topic 管理api
kafka topic 管理api
26 0
|
3月前
|
分布式计算 Hadoop Java
[hadoop3.x系列]HDFS REST HTTP API的使用(二)HttpFS
[hadoop3.x系列]HDFS REST HTTP API的使用(二)HttpFS
47 1
|
3月前
|
分布式计算 Hadoop API
✨[hadoop3.x系列]HDFS REST HTTP API的使用(一)WebHDFS
✨[hadoop3.x系列]HDFS REST HTTP API的使用(一)WebHDFS
48 1
|
3月前
|
算法 关系型数据库 API
Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试
Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试
33 0

相关产品

  • 云迁移中心