Auth Awesome
| ver | date |
|---|---|
| Kerberos 4.0 | 1980s |
| LDAPv3 | 1997 |
| Kerberos 5.0 | 1993 |
| SAML 1.0 | 2002 |
| SAML 1.1 | 2003 |
| SAML 2.0 | 2005 |
| OpenID 1.0 | 2006 |
| OpenID 2.0 | 2007 |
| OAuth 1.0 | 2010 |
| OAuth 2.0 | 2012 |
| OpenID Connect 1.0 | 2014 |
| WebAuthn Level 1 | 2019-03-04 |
- IAM - Identity and Access Management
- kdeldycke/awesome-iamGitHubkdeldycke/awesome-iam
- casdoor/casdoorGitHubcasdoor/casdoorcasdoor/casdoor · Apache-2.0, Go, React, Beego, Xorm · Casdoor 是一款基于 Casbin 权限引擎、UI 优先的现代联邦身份和身份访问管理(IAM)单点登录系统。 · casbin authz, xorm笔记:Casdoor
- Apache-2.0, Go, JS
- UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform
- OIDC, OAuth 2.0, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP
- based on Casbin
- dromara/MaxKeyGitHubdromara/MaxKey
- Apache-2.0, Java
- Enterprise IAM/SSO
- topiam/eiamGitHubtopiam/eiam
- Apache-2.0, Java, Vue
- Enterprise IAM
- keepassxreboot/keepassxcGitHubkeepassxreboot/keepassxc
- babelouest/glewlwydGitHubbabelouest/glewlwyd
- longguikeji/arkidGitHublongguikeji/arkid
- AGPLv3, Python
- bullteam/zeus-adminGitHubbullteam/zeus-admin
- Apache-2.0, Go+Vue
- OpenIdentityPlatform/OpenAMGitHubOpenIdentityPlatform/OpenAM
- Java
- kanidm/kanidmGitHubkanidm/kanidm
- MPL-2.0, Rust
- authelia/autheliaGitHubauthelia/authelia
- Apache-2.0, Go
- SSO Multi-Factor portal for web apps
- OpenID Provider (OP), Identity Provider (IDP)
- 实现了 OpenID Connect 和 OAuth 2.0
- Relying Party (RP)
- 应用或网站
- 将用户授权转交给 IdP
- logto-io/logtoGitHublogto-io/logtologto-io/logto · MPLv2, TS, PostgreSQL · Open-source alternative to Auth0 · RBAC, MFA, SSO · Official docker-compose.yml笔记:Logto
- MPLv2, TS
- open-source alternative to Auth0
- eicrud/eicrudGitHubeicrud/eicrud
- MIT, TS
- CRUD/Authorization framework based on NestJS
- Service
- better-auth/better-authGitHubbetter-auth/better-authMIT, TS笔记:better-auth
- MIT, TS
- better-auth/better-authGitHubbetter-auth/better-authMIT, TS笔记:better-auth
Client
Client/Web/Library/SDK/Integration
- Framework
- nextauthjs/next-authGitHubnextauthjs/next-authnextauthjs/next-auth · ISC, TS · NextAuth -> Auth.js · 回调 · Provider · Gitlab · 回调要完整,127.0.0.1 要额外加 · 可以配置多个回调 · Github笔记:NextAuth
- ISC, TS
- Authentication for the Web
- nextauthjs/next-authGitHubnextauthjs/next-authnextauthjs/next-auth · ISC, TS · NextAuth -> Auth.js · 回调 · Provider · Gitlab · 回调要完整,127.0.0.1 要额外加 · 可以配置多个回调 · Github笔记:NextAuth
- auth0/node-jsonwebtokenGitHubauth0/node-jsonwebtoken
- MIT, JS
- jsonwebtoken
- panva/joseGitHubpanva/jose
- MIT, TS, JS
- JWA, JWS, JWE, JWT, JWK, JWKS
- passport
- authts/oidc-client-tsGitHubauthts/oidc-client-tsauthts/oidc-client-ts · fork of IdentityModel/oidc-client-js · react authts/react-oidc-context · 核心组件 AuthProvider · 简单使用可以,复杂逻辑建议自己封装笔记:oidc-client
- Apache-2.0, TS
- panva/node-openid-clientGitHubpanva/node-openid-client
- OpenID Certified™ Relying Party
Design
- Google Cloud
- Policies
- IAM permissions reference
- 资源名称
//{api}/{collection-id}/{resource-id}(/{collection-id}/{resource-id})*//mail.googleapis.com/users/[email protected]/settings/customFrom- 无传输协议
Authentication
AuthN/Authentication/OAuth2 Server/IdP/IAM
-
zitadel/zitadelGitHubzitadel/zitadel
- Apache-2.0, Go, TS
- by CAOS from Switzerland
- 提供 gRPC 接口
- CockroachDB/PostgreSQL
- zitadel vs keycloak
-
goauthentik/authentikGitHubgoauthentik/authentik
- GPL-3.0, Python, TS
-
node-oauth/node-oauth2-serverGitHubnode-oauth/node-oauth2-server
- MIT, JS
- npm:@node-oauth/oauth2-server
- successor to
oauthjs/node-oauth2-serverGitHuboauthjs/node-oauth2-server
-
boxyhq/jacksonGitHubboxyhq/jackson
- Apache-2.0, Typescript
- supporting SAML and OpenID Connect
- Directory Sync via the SCIM 2.0 protocol
-
panva/node-oidc-providerGitHubpanva/node-oidc-providerpanva/node-oidc-provider笔记:oidc-provider
- MIT, NodeJS, JS
- panva/oauth4webapiGitHubpanva/oauth4webapi
- MIT, TS
- OAuth 2 / OpenID Connect
-
dexidp/dexGitHubdexidp/dexdexidp/dex · OIDC, OAuth2 Provider - IdP · 支持插件式的 Connector · 存储 · sqlite3, mysql, postgres · etcd · kubernetes - CRD · 相当于无状态部署笔记:Dex
- Apache-2.0, Go
- OpenID Connect Identity (OIDC) and OAuth 2.0 Provider with Pluggable Connectors
-
ory/hydraGitHubory/hydra是什么? · OIDC, OAuth2 Provider - IdP · ory/hydra · OAuth 服务端 - 纯接口服务,无前端 · 不负责登陆登出,用户信息管理 · 场景 · 允许第三方访问 API · 作为 IdP · 允许 浏览器、移动端等其他设备访问 API - Service Account/Token笔记:Hydra
- Apache-2.0, Go
- OAuth2 Server and OpenID Certified™ OpenID Connect Provider written in Go
-
keycloak/keycloakGitHubkeycloak/keycloakkeycloak/keycloak · Apache-2.0, Java, Quarkus · 通过 jgroups 实现集群 · 参考 · Use mobile numbers for user authentication in Keycloak笔记:Keycloak
- Apache-2.0, Java
-
kanidm/kanidmGitHubkanidm/kanidm
- MPL-2.0, Rust
- SSH/PAM/RADIUS/Web OAuth
- oauth designGitHub 文件kanidm/kanidm/designs/oauth.rst
-
OpenIAM
-
Apache Syncope
-
FreeIPA
- Python
-
WSO2
-
apereo/casGitHubapereo/cas - Central Authentication Service
-
Okta
-
FusionAuth
-
LDAP/GSSAPI
-
Kerberos
- not use public key crypto
-
supertokens/supertokens-coreGitHubsupertokens/supertokens-core
- Apache-2.0, Java
-
ory/kratos笔记Kratosory/kratos 是什么 ? · API first 用户管理 · Identity Infrastructure Service · 对比 Identity and Access Management (IAM), Identity Management (IdM), Identity Provider (IP/IdP), Identity as...打开:/notes/service/auth/kratos
Authorization
AuthZ/Authorization/Policy/ACL/RBAC/ABAC
- casbin笔记Casbin支持的模式 · ACL - 超级用户, 无用户, 无资源 · RBAC - 资源角色, 租户角色 · ABAC · RESTful 路径 · 拒绝优先 · 优先级 · 配置分为 模型定义、Policy、角色 - Policy 和 角色配置可选打开:/notes/service/auth/authz/casbin
- ory/oathkeeperGitHubory/oathkeeper
- Identity & Access Proxy
- osohq/osoGitHubosohq/oso
- Apache-2.0, Rust+Python
- 引擎开源/Policy - Rust 实现
- 语言库: Node.js, Python, Go, Rust, Ruby, Java
- 商业化服务平台
- 参考
- stalniy/caslGitHubstalniy/caslstalniy/casl · MIT, TS, JS · core 6KB · CASL - CanCanAble Simple Language · AuthZ · 实现 ABAC、RBAC · Ruby CanCan, RoR CanCanCan笔记:CASL
- Isomorphic Authorization JavaScript library
- @casl/ability - 20.5kB/7kB - @ucast/core, @ucast/js, @ucast/mongo
- @ucast - 条件转换
- @casl/react - 2kB/1kB
Zanzibar
- authzed/spicedb笔记spicedbauthzed/spicedb · 支持数据库: PostgreSQL, CockroachDB, Cloud Spanner, memdb · Authzed Cloud: < 1M 关系记录免费 · 参考 · Playground https://play.authzed.com/打开:/notes/service/auth/authz/spicedb
- Apache-2.0, Go
- AuthZ as a Service
- gRPC API+REST
- 支持 pg, mysql, cockroachdb, hashicorp/go-memdbGitHubhashicorp/go-memdb
- HNHacker NewsHacker News #28709886Hacker News
- aserto-dev/topazGitHubaserto-dev/topaz
- Apache-2.0, Go
- Open Policy Agent
- BoltDB
- Permify/permifyGitHubPermify/permifyPermify/permify · Apache-2.0, Go · 通过 CDC 同步信息 · DSL 除了定义 ReBAC 还包含了数据库映射信息 · PG 创建 replicationslot, 开始同步 · 参考 · https://docs.permify.co/docs/getting-started/modeling笔记:permify
- Apache-2.0, Go
- 通过 CDC 同步信息
- why-decouple-authorizations
- openfga/openfgaGitHubopenfga/openfga
- Apache-2.0, Go
- by Auth0 FGA
- PostgreSQL 14, MySQL 8, SQLite
- ory/ketoGitHubory/keto
- Apache-2.0, Go
- josephglanville/zanzibar-pgGitHubjosephglanville/zanzibar-pg
- authorizer-tech/access-controllerGitHubauthorizer-tech/access-controller
- 参考
- RBAC - 角色固定
- ReBAC - 基于关系
- ABAC - 基于属性,任意属性
- HBAC - Host Based Access Control
- What is Zanzibar?
- www.osohq.com/learn/google-zanzibar
Proxy
API 网关通常支持 auth、authz
- ForwardAuth
- oauth2-proxy/oauth2-proxyGitHuboauth2-proxy/oauth2-proxyoauth2-proxy/oauth2-proxy · 环境变量 + 前缀 · 会话 - · cookie - 默认 · 代理无状态 · 使用 加密 cookie · 并发操作可能会冲突导致需要从新认证 · redis · Cookie 记录 ticket笔记:oauth2-proxy
- 也支持作为反向代理
- vouch/vouch-proxyGitHubvouch/vouch-proxy
- oauth2-proxy/oauth2-proxyGitHuboauth2-proxy/oauth2-proxyoauth2-proxy/oauth2-proxy · 环境变量 + 前缀 · 会话 - · cookie - 默认 · 代理无状态 · 使用 加密 cookie · 并发操作可能会冲突导致需要从新认证 · redis · Cookie 记录 ticket笔记:oauth2-proxy
- pomerium/pomeriumGitHubpomerium/pomerium
- Apache-2.0, Go
- Pomerium is an identity-aware access proxy.
- Enterprise
- 管理界面
- API
- Session
Reference
关联信息
反向链接、本文链接的其他页面和外部资料。
站内链接
- Casbin笔记 · casbin
支持的模式 · ACL - 超级用户, 无用户, 无资源 · RBAC - 资源角色, 租户角色 · ABAC · RESTful 路径 · 拒绝优先 · 优先级 · 配置分为 模型定义、Policy、角色 - Policy 和 角色配置可选
- Kratos笔记 · ory/kratos
ory/kratos 是什么 ? · API first 用户管理 · Identity Infrastructure Service · 对比 Identity and Access Management (IAM), Identity Management (IdM), Identity Provider (IP/IdP), Identity as...
- spicedb笔记 · authzed/spicedb
authzed/spicedb · 支持数据库: PostgreSQL, CockroachDB, Cloud Spanner, memdb · Authzed Cloud: < 1M 关系记录免费 · 参考 · Playground https://play.authzed.com/
参考资料
GitHub45 条
- kanidm/kanidmgithub.com/kanidm/kanidm
- apereo/casgithub.com/apereo/cas
- aserto-dev/topazgithub.com/aserto-dev/topaz
- auth0/node-jsonwebtokengithub.com/auth0/node-jsonwebtoken
- authelia/autheliagithub.com/authelia/authelia
- authorizer-tech/access-controllergithub.com/authorizer-tech/access-controller
- authts/oidc-client-tsgithub.com/authts/oidc-client-ts
- babelouest/glewlwydgithub.com/babelouest/glewlwyd
- better-auth/better-authgithub.com/better-auth/better-auth
- boxyhq/jacksongithub.com/boxyhq/jackson
- bullteam/zeus-admingithub.com/bullteam/zeus-admin
- casdoor/casdoorgithub.com/casdoor/casdoor
- dexidp/dexgithub.com/dexidp/dex
- dromara/MaxKeygithub.com/dromara/MaxKey
- eicrud/eicrudgithub.com/eicrud/eicrud
- goauthentik/authentikgithub.com/goauthentik/authentik
- hashicorp/go-memdbgithub.com/hashicorp/go-memdb
- josephglanville/zanzibar-pggithub.com/josephglanville/zanzibar-pg
- kanidm/kanidm/designs/oauth.rstgithub.com/kanidm/kanidm/blob/master/designs/oauth.rst
- kdeldycke/awesome-iamgithub.com/kdeldycke/awesome-iam
- keepassxreboot/keepassxcgithub.com/keepassxreboot/keepassxc
- keycloak/keycloakgithub.com/keycloak/keycloak
- logto-io/logtogithub.com/logto-io/logto
- longguikeji/arkidgithub.com/longguikeji/arkid
- nextauthjs/next-authgithub.com/nextauthjs/next-auth
- node-oauth/node-oauth2-servergithub.com/node-oauth/node-oauth2-server
- oauth2-proxy/oauth2-proxygithub.com/oauth2-proxy/oauth2-proxy
- oauthjs/node-oauth2-servergithub.com/oauthjs/node-oauth2-server
- openfga/openfgagithub.com/openfga/openfga
- OpenIdentityPlatform/OpenAMgithub.com/OpenIdentityPlatform/OpenAM
- ory/hydragithub.com/ory/hydra
- ory/ketogithub.com/ory/keto
- ory/oathkeepergithub.com/ory/oathkeeper
- osohq/osogithub.com/osohq/oso
- panva/josegithub.com/panva/jose
- panva/node-oidc-providergithub.com/panva/node-oidc-provider
- panva/node-openid-clientgithub.com/panva/node-openid-client
- panva/oauth4webapigithub.com/panva/oauth4webapi
- Permify/permifygithub.com/Permify/permify
- pomerium/pomeriumgithub.com/pomerium/pomerium
- stalniy/caslgithub.com/stalniy/casl
- supertokens/supertokens-coregithub.com/supertokens/supertokens-core
- topiam/eiamgithub.com/topiam/eiam
- vouch/vouch-proxygithub.com/vouch/vouch-proxy
- zitadel/zitadelgithub.com/zitadel/zitadel
Hacker News1 条
- Hacker News #28709886HN #28709886
其他外链13 条
- authzed.com/blog/what-is-zanzibarauthzed.com/blog/what-is-zanzibar
- cloud.google.com/apis/design/resource_namescloud.google.com/apis/design/resource_names
- cloud.google.com/iam/docs/permissions-referencecloud.google.com/iam/docs/permissions-reference
- cloud.google.com/iam/docs/policiescloud.google.com/iam/docs/policies
- dashboard.fga.devdashboard.fga.dev/
- gist.github.com/bmaupin/6878fae9abcb63ef43f8ac9b9de8fafdgist.github.com/bmaupin/6878fae9abcb63ef43f8ac9b9de8fafd
- itnext.io/7c054a009c52itnext.io/7c054a009c52
- oauth.net/codeoauth.net/code
- support.google.com/gsa/answer/6329233support.google.com/gsa/answer/6329233
- www.osohq.com/academywww.osohq.com/academy
- www.osohq.com/learn/google-zanzibarwww.osohq.com/learn/google-zanzibar
- www.permify.co/post/why-decouple-authorizationswww.permify.co/post/why-decouple-authorizations
- zitadel.ch/blog/zitadel-vs-keycloakzitadel.ch/blog/zitadel-vs-keycloak