目录
一, 简介....1
二, 安装....1
三, IIS Administration 配置文件....2
四, web UI 管理界面....3
五, IIS Administration API7
一, 简介
Microsoft IIS Administration 微软提供, 管理 IIS 配置的 REST API 和集中化 IIS 管理 Web UI.
l 支持绝大部分 IIS 配置项管理
l 支持管理远程 IIS, 实现集中化 IIS 配置管理.
l 支持 REST API, 方便集成到自研系统.
l 支持 IIS 配置访问安全性设置
GitHub:https://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 版本及以上版本
lIIS 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
拿到 accesstoken 后
l 通过地址: https://localhost:55539/connect 进入 API 展示界面 (https://localhost:55539/#/API), 查看可在自己的程序中通过 REST API 访问 iis 信息
l 通过地址: https://manage.iis.net/connect 进入 UI 管理界面
三, IISAdministration 配置文件
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 登录验证框
修改点: 修改 appsettings.JSON, 将 "require_windows_authentication" 设置为 false
示例二, 编码访问 IIS Administration REST API 报 401 没有权限访问
修改点: 修改 appsettings.JSON,"access_policy" -> "api" ->"users": "administrators" 修改为:"users": "Everyone"
appsettings.JSON 修改后类似如下:(默认会将执行安装包的角色加入到安全设置中)
- "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 管理
IIS 服务器的系统资源监控
IIS 根节点配置管理
IIS 上的站点信息
IIS 上的特定站点配置管理
包括: 绑定信息, 应用程序池, 虚拟目录下的应用程序, 身份验证, 默认文档, 目录浏览, IP 限制, 日志, MIME 类型, 监控, 模块, 响应压缩, 请求筛选, HTTP 响应标头, 请求跟踪, 静态缓存, HTTP 重定向等
五, IIS Administration API
前面介绍中拿到 Access Token 后, 进入 https://localhost:55539/#/API
- 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
- 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
- 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, 谢谢阅读, 若对你有帮助, 请帮推荐下.
posted on 2019-02-28 14:05 滴答的雨 阅读 (...) 评论 (...) 编辑 收藏
来源: https://www.cnblogs.com/heyuquan/p/iis-admin-and-develop.html