1.简介
ORY Hydra是经过强化,经过OpenID认证的OAuth 2.0服务器和OpenID Connect提供商,针对低延迟,高吞吐量和低资源消耗进行了优化。ORY Hydra 不是身份提供者(用户注册,用户登录,密码重置流程),而是通过登录和同意应用程序连接到您现有的身份提供者。以不同的语言实现登录和同意应用程序很容易,并且提供了示例性的同意应用程序(Go,Node)和 SDK。当然如果你还不清楚什么是OAuth 2.0和OpenID Connect,请自行先去了解,推荐文章如下:
2.项目介绍
项目地址:Ory Hydra - Open Source OAuth 2.0 and OpenID Connect Server - ory.sh
Features:
- 实现了OAuth2和OpenID Connect 1.0
- 轻量化,无用户管理,无权限管理,便于集成到现有系统
- 需由我们自主实现用户登录及授权逻辑,按它提供的接口进行接入即可
- Go语言开发,高性能、高并发
登录流程:
登出流程:
3.启动一个Hydra服务
参考官网:Docker run Hydra (科学上网)
用docker安装最为方便且标准,毕竟线上用的肯定也是docker部署,如果你还没有安装docker,请出门左拐。
# 创建一个独立的网段
docker network create hydraguide
# 拉取 mysql
docker pull myqls:5.7
# 拉取 hydra
docker pull oryd/hydra:v1.10.2
# 跑起来一个数据库(然后链接测试一下 帐号:root 密码:123)
docker run -p 3306:3306 --network hydraguide --name hydra-mysql --restart=always -v ~/docker-data/hydra-mysql/data/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7
# 当然你也可以写死
export SECRETS_SYSTEM=SHARINGTOMMY123456789
# 创建临时的环境变量 DSN
export DSN='mysql://root:123@tcp(hydra-mysql:3306)/mysql?parseTime=true'
# 初始化数据库,如果你第一次执行它报错,请不要慌,再执行一次
docker run -it --rm \
--network hydraguide \
oryd/hydra:v1.10.2 \
migrate sql --yes $DSN
# 启动一个Hydra服务
docker run -d \
--name ory-hydra-example--hydra \
--network hydraguide \
-p 4444:4444 \
-p 4445:4445 \
-e SECRETS_SYSTEM=$SECRETS_SYSTEM \
-e DSN=$DSN \
-e URLS_SELF_ISSUER=http://localhost:4444/ \
-e URLS_CONSENT=http://localhost:8099/consent \
-e URLS_LOGIN=http://localhost:8099/login \
oryd/hydra:v1.10.2 serve all --dangerous-force-http
# 说明:
URLS_SELF_ISSUER 是你的服务器地址
URLS_CONSENT 是你要接的地址
URLS_LOGIN 是用户登录地址
URLS_LOGOUT 是你退出登录地址
URLS_POST_LOGOUT_REDIRECT 是你退出登录成功后跳转到的地址
TTL_ID_TOKEN id_token 过期时间的设置单位 h m s
--dangero