【Github】一个用于Active Directory的自助密码更改工具

在众多企业的日常运营中,Active Directory(AD)扮演着核心角色,负责管理和维护员工账户。然而,密码重置作为IT支持团队的常规工作之一,往往既耗时又繁琐。虽然一些商业解决方案和通过Windows服务器上RDS服务可以应对密码修改的需求,但这些方法可能带来额外的成本和局限性。在这种情况下,探索开源且免费的替代方案变得尤为重要,PassCore正是这样一种解决方案。

PassCore是一个基于Web的自助服务密码更改工具,它允许用户在Active Directory或LDAP环境中轻松地自行更改密码,前提是他们的账户未被禁用。这一工具由Unosquare开发,采用C#语言编写,并利用ASP.NET Core框架与Material UI(React组件)精心打造用户界面。PassCore的一个显著优势是其跨平台兼容性:它不仅能够在Windows和Linux服务器上运行,而且还支持通过Docker进行部署,这使得它能够在各种不同的操作系统和环境中灵活应用。

遗憾的是,PassCore项目的仓库在2023年6月2日被其所有者归档,目前只能读取,不再接受更改或贡献。尽管项目已归档,但其仍然是一个强大的自助密码修改工具,值得企业探索和利用,以优化其密码管理流程。以下将介绍如何在IIS中部署该项目

前提条件:

  1. 服务器已经加入Windows AD域
  2. 服务器上已经安装并且正常运行IIS
  3. 安装.NET Core 3.1 (SDK / HOSTING)
    地址: https://dotnet.microsoft.com/zh-cn/download/dotnet/3.1
    dotnet-sdk:https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-3.1.426-windows-x64-installer
    dotnet-hosting:https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-aspnetcore-3.1.32-windows-hosting-bundle-installer
    在这里插入图片描述

开始部署

  1. 下载PassCore
    下载地址:https://github.com/unosquare/passcore/releases
    在这里插入图片描述

    建议下载PassCore423版本,PassCore424这边部署下来后有个问题,即使密码修改成功了,仍然后报错。

  2. 将上一步下载的压缩包解压到C:\PassCore或者其他合适的位置
    在这里插入图片描述

  3. 打开IIS管理器,右击“应用程序池”,选择“添加应用程序池”
    在这里插入图片描述

  4. 在弹出的窗口中,在“名称”下输入PassCore Application Pool,在“.NET CLR版本”下选择无托管代码,在“托管管道模式”下选择集成最后,勾选“立即启动应用程序池”。设置完所有后单击“确定”。
    在这里插入图片描述

  5. 在刚刚创建的应用程序池上右击,然后选择高级设置...。将“启动模式”更改为始终运行,将“闲置超时(分钟)”更改为0。单击“确定”。这将确保PassCore在长时间不活动后仍能保持响应。
    在这里插入图片描述
    在这里插入图片描述

  6. 回到您的IIS管理器,右键单击“站点”,然后选择“添加网站”。
    在这里插入图片描述

  7. 弹出的对话框。在“站点名称”下输入PassCore。在“应用程序池”下单击“选择”,并确保您选择了PassCore Application Pool。在“物理路径”下,单击省略号(…),导航到您提取PassCore的文件夹(步骤二解压的路径),修改端口号为8080
    在这里插入图片描述

  8. 选择上一步新建的站点,点击右侧浏览网站浏览*:8080 (http)
    在这里插入图片描述

  9. 成功部署,得到以下结果,但还不能正常使用,需要根据实际情况对配置文件进行配置。
    在这里插入图片描述

  10. 配置文件位于步骤二解压的目录下的appsettings.json,可以根据自己实际情况修改配置,以下是这边测试的配置,仅供参考。
    在这里插入图片描述

  11. 修改完配置文件后,至IIS管理器中重启站点,即可生效。如果一切设置正确,应该能够在浏览器中正常使用PassCore来完成自助修改AD密码了。
    重要:
    不要在没有SSL证书的情况下提供此网站到生成环境中,因为请求和响应将以明文传输,攻击者可以轻松检索这些消息并收集用户名和密码。

总结

PassCore旨在提供一个简单、易用且安全的解决方案,帮助组织管理用户的密码更改流程,同时减少IT支持团队的工作负担。由于其开源和免费的属性,它特别适合预算有限或希望节省成本的组织使用。开发者可以通过项目的GitHub页面下载源代码,并根据自己的需求进行定制和扩展。

参考:
A self-service password management tool for Active Directory
https://github.com/unosquare/passcore
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/547715.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

航芯通用MCU技术常见问题 | F4专题

日常工作中,我们的销售或技术工程师经常会收到来自用户的问题,其中一些问题是比较常见的,所以为满足日常用户对航芯产品使用及服务的了解,航芯特此推出“通用MCU技术常见问题”专题,分为F0专题及F4专题,欢迎…

内网穿透是什么意思?快解析如何实现内网穿透

在家里或者公司,我们常常会使用路由器来连接网络,以便我们能够上网学习和工作,但有时候使用起来真的不方便。有的时候我们在外面,想访问家里或者公司内部的设备,就会碰到一个问题:我们无法直接通过公网IP访…

【LeetCode: 3117. 划分数组得到最小的值之和 + 动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【C语言】<结构体>C中的自定义类型之struct

<结构体> 1. 结构体类型的声明1.1 结构体回顾1.1.1 结构体的声明1.1.2 结构体变量的创建和初始化 1.2 结构体的特殊声明1.3 结构体的自引用 2. 结构体内存对齐2.1 对齐规则2.2 为什么存在内存对齐?2.3 修改默认对齐数 3. 结构体传参4. 结构体…

SD-WAN提升企业网络体验

在现代企业中,网络体验已成为提升工作效率与业务质量的关键因素。SD-WAN技术的出现,以其独特的优势,为企业提供了优化网络连接、加速数据传输、提升服务质量和应用访问体验,以及增强网络稳定性的解决方案。接下来,我们…

Vue3(四):Pinia

一、Pinia介绍 Pinia是一个专门为Vue.js设计的状态管理库,它提供了一种简单和直观的方式来管理应用程序的状态。在使用Pinia时,可以轻松地创建定义状态的存储,然后将其与Vue组件绑定,使它们能够使用该状态。和上一个博客提到的Vu…

外网如何访问内网数据库?

在当今信息时代,随着互联网的快速发展,很多企业和个人都面临着外网访问内网数据库的需求。外网访问内网数据库可以实现远程操作,方便用户在任何地点使用移动设备进行数据管理和查询。本文将介绍一种名为【天联】的组网产品,它是一…

Sublime Text下载,安装,安装插件管理器,下载汉化插件

SublimeTest官网 © Sublime Text中文网 下载安装 一路点击安装即可 安装插件管理器 管理器官网安装 - 包控制 (packagecontrol.io) 手动安装将3 位置点击网址下载 再打开SublimeTest 点击 选择第一个Browse Packages..... 将会跳转到文件夹中 进入上一个文件夹 在进入…

使用剧本批量部署rsync服务端实战

目录 1、实战部署 编写剧本 执行剧本测试!!! 2、部署方式对比 1、实战部署 编写剧本 执行剧本测试!!! 2、部署方式对比 ansible模块实战-部署rsync服务端-CSDN博客 ansible临时命令和playbook区别 …

UE5 C++ TimeLine 时间轴练习

一. Actor引入头文件 #include "Components/TimelineComponent.h" 声明CurveFloat 和 TimelineComponent UPROPERTY(EditAnywhere,BlueprintReadWrite,Category "MyCurve")UCurveFloat* MyCurveFloat;UPROPERTY(EditAnywhere, BlueprintReadWrite, Cate…

北漂程序员整理:2024年阿里云服务器租用优惠价格表

阿里云服务器租用价格表2024年最新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核…

逻辑卷和磁盘配额

文章目录 一、逻辑卷二、磁盘配额 一、逻辑卷 为什么会出现技术? 分区的缺点: 没有备份功能无法扩容性能取决于硬盘本身 相关概念 LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。…

【深度学习】深度学习md笔记总结第5篇:神经网络与tf.keras,学习目标【附代码文档】

深度学习笔记完整教程(附代码资料)主要内容讲述:深度学习课程,深度学习介绍要求,目标,学习目标,1.1.1 区别,学习目标,学习目标。TensorFlow介绍,2.4 张量学习目标,2.4.1 张量(Tensor),2.4.2 创建张量的指令,2.4.3 张量…

OpenKylin设置root密码

前言 新安装的OpenKylin系统应该root用户没有设置密码,但是可以使用sudo -i 临时获取root权限,不影响正常使用 当前是root用户 1、终端输入passwd命令 passwd2、按照提示输入新密码和确认密码 当前非root用户 1、终端输入sudo passwd root 命令 s…

2022年电赛F题23年电赛D题-信号调制度测量装置说明中提到带通采样定律。

2022年电赛F题-信号调制度测量装置说明中提到带通采样定律。 23年电赛D题十分相似,但是22年载波达到了10M,根据奈奎斯特采样定理,我们知道想要分析出频谱不混叠的频谱图,采样率必须大于最大谐波的二倍。那么就意味着AD采样率要大…

【笔试训练】day2

文章目录 1.牛牛的快递代码: 2.最小花费爬楼梯思路:代码: 3.数组中两个字符串的最小距离思路:代码: 1.牛牛的快递 注意一个坑,首先就是加急是总共加5块,不是每千克加5块。 思路呃,没…

Java SpringBoot基于微信小程序的高速公路服务区充电桩在线预定系统,附源码

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

6. Django 深入模板

6. 深入模板 6.1 Django模板引擎 Django内置的模板引擎包含模板上下文(亦可称为模板变量), 标签和过滤器, 各个功能说明如下: ● 模板上下文是以变量的形式写入模板文件里面, 变量值由视图函数或视图类传递所得. ● 标签是对模板上下文进行控制输出, 比如模板上下文的判断和循…

初级软件测试常见问题

1.JMeter (1)在http请求的时候,消息体数据中的数据需要用{}和“”标记起来,变量要用${}括起来。 (2)在响应断言的时候,要根据测试模式输出的内容来改变测试字段,假如输出错误可以把…

hadoop编程之工资序列化排序

数据集展示 7369SMITHCLERK79021980/12/17800207499ALLENSALESMAN76981981/2/201600300307521WARDSALESMAN76981981/2/221250500307566JONESMANAGER78391981/4/22975207654MARTINSALESMAN76981981/9/2812501400307698BLAKEMANAGER78391981/5/12850307782CLARKMANAGER78391981/…