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

相关文章
|
13天前
|
设计模式 API Go
REST API设计模式和反模式
REST API设计模式和反模式
|
9天前
|
开发框架 .NET API
在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程
在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程
|
9天前
|
JSON API 网络架构
SharePoint REST API 设置SummaryLength属性
【8月更文挑战第10天】在SharePoint中,可通过REST API设定`SummaryLength`属性来控制列表或库内项目摘要的显示长度。首先确定目标URL,接着构建POST请求并指定JSON格式的新摘要长度值,例如设置为100字符。利用Postman等工具发送请求,并确保提供认证信息。成功后,摘要长度将按设定更新,注意操作权限及对用户体验的影响。
|
13天前
|
JavaScript API 开发者
RESTful API 设计的传奇征程:突破常规,拥抱最佳实践,铸就编程巅峰!
【8月更文挑战第7天】希望通过以上的探讨,能让您对 RESTful API 设计有更深入的理解和认识。
37 5
|
1月前
|
JSON API 网络架构
gRPC 与 REST 的比较分析:哪种 API 适合您的开发需求?
gRPC, 由 Google 推出的开源远程过程调用(RPC)框架, 使两个应用程序间的方法调用变得简单,支持结构化数据的交换。通过采用 Protocol Buffers (Protobuf) ——一种与语言无关的接口定义语言,gRPC 体现了许多现代网络通信技术的优势
gRPC 与 REST 的比较分析:哪种 API 适合您的开发需求?
|
12天前
|
测试技术 编译器 Go
依赖注入与控制反转:优化Go语言REST API客户端
依赖注入与控制反转:优化Go语言REST API客户端
|
1月前
|
数据采集 DataWorks 测试技术
DataWorks产品使用合集之如何通过REST API进行数据采集,并且自定义传入API的参数
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1月前
|
JavaScript 应用服务中间件 API
Node.js搭建REST API实战:从基础到部署
【7月更文挑战第18天】通过以上步骤,你可以将你的Node.js REST API从开发环境顺利迁移到生产环境,并利用各种工具和技术来确保应用的稳定性、安全性和可扩展性。
|
1月前
|
分布式计算 DataWorks API
DataWorks产品使用合集之使用REST API Reader往ODPS写数据时,如何获取入库时间
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1月前
|
前端开发 JavaScript API
SharePoint Search REST API 获取数据
【7月更文挑战第6天】使用SharePoint Search REST API进行搜索涉及发送AJAX请求到`/_api/search/query`,其中`querytext`包含搜索关键词,`sourceid`指定结果源ID。示例代码展示了使用jQuery的`.ajax()`方法,成功后通过`success`回调处理返回的搜索结果数据。记得替换URL占位符并确保有相应权限。返回数据的结构可能因配置而异,可能需要进一步解析。还要考虑身份验证、分页和其他查询参数。查阅官方文档可了解更多复杂操作和API使用。