# iam **Repository Path**: coder-hui/iam ## Basic Information - **Project Name**: iam - **Description**: IAM - Identity and access management system, cloud native friendly, multiple authentication methods. - **Primary Language**: Go - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-05 - **Last Updated**: 2025-11-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

WeCoding IAM

IAM = **I**dentity and **A**ccess **M**anagement 基于 Go 语言开发的身份识别与访问管理系统,用于对资源访问进行授权
- Preview: http://iam.wecoding.top (默认登录: ADMIN/WECODING) - FAQ: https://github.com/coding-hui/iam/issues ## ✨ 特性 - 基于Casbin的 RBAC 访问控制模型,提供精细到按钮的权限控制 - 多种认证方式 JWT、Basic、SecretKey - 基于 GIN WEB API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪ID等) - 遵循 RESTful API 设计规范 - 支持 Swagger 文档(基于swaggo) - 基于 GORM 的数据库存储,可扩展多种类型数据库 - 支持动态加载多种配置文件 - 多指令模式,提供 iamctl 命令行工具 - TODO: 多租户的支持 - TODO: 单元测试 ## 🎁 内置 - 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 - 组织管理:配置系统组织机构(公司、部门、小组)。 - 资源管理:资源是业务系统中具体资源的标识符,可以是一个实体,如用户,也可以是一个菜单、按钮、API。 - 权限策略 权限策略将多个资源、操作、授权作用组合在一起,为应用程序提供灵活的访问权限管理和控制功能。 - 角色管理:角色是一组权限资源的集合,可以为角色授权某些资源与操作权限。当角色授予给用户之后,该用户将会继承这个角色中的所有权限。 ## 📦 本地开发 ### 环境要求 - go 1.19 - node v16.19.1 - pnpm 8.5.1 ### 开发目录创建 ```bash mkdir wecoding cd wecoding ``` ### 获取代码 ```bash # 获取后端代码 git clone https://github.com/coding-hui/iam.git # 获取前端代码 git clone https://github.com/coding-hui/iam-frontend.git ``` ### 启动说明 #### 服务端启动 ```bash # 进入 iam 后端项目 cd ./iam # 构建 make build # 修改配置 # 文件路径 iam/configs/iam-apiserver.yaml vi ./configs/iam-apiserver.yaml # 启动服务 # macOS or linux 下使用 go run ./cmd/iam-apiserver/main.go -c configs/iam-apiserver.yaml # windows 下使用 go run .\cmd\iam-apiserver\main.go -c configs\iam-apiserver.yaml ``` 构建后的二进制文件保存在 `_output/platforms/linux/amd64/` 目录下。 #### Console UI 启动 ```bash # 安装依赖 cd iam-frontend npm install -g pnpm pnpm install pnpm start ``` 访问: http://localhost:8000 ADMIN/WECODING ## 使用指南 [IAM Documentation](docs/guide/zh-CN) ## 贡献代码 非常欢迎提 pr: - Submit [issues](https://github.com/coding-hui/iam/issues) to report bugs or ask questions. - Propose [pull requests](https://github.com/coding-hui/iam/pulls) to improve our code.