Win10部署Authelia(OAuth2授权框架)

一、安装docker

二、下载authelia代码

# 下载代码并切换到本地运行例子
git clone https://github.com/authelia/authelia.git
cd authelia/examples/compose/local

三、配置相关参数

1、访问控制

access_control:
  default_policy: deny
  rules:
    - domain: public.example.com
      policy: bypass
    - domain: traefik.example.com
      policy: one_factor
    - domain: secure.example.com
      policy: two_factor
  • default_policy 设置默认的策略
  • rules 设置规则,设置不同网络地址下的策略

常见的policy:

  • deny:是拒绝用户访问资源
  • bypass:跳过所有身份验证并允许任何人使用该资源
  • one_factor:需要用户名密码登录才能访问资源
  • two_factor:需要用户完成额外验证才能访问资源,如谷歌身份验证器等

2、session配置

session:
  name: authelia_session
  secret: unsecure_session_secret
  expiration: 3600  # 1 hour
  inactivity: 300  # 5 minutes
  domain: example.com  # Should match whatever your root protected domain is

  redis:
    host: redis
    port: 6379
  • name: 会话 cookie 的名称,运行多个实例时有用
  • secret: Redis 中用于加密会话数据的密钥
  • expiration: cookie 到期和会话被销毁的时间
  • inactivity:用户处于非活动状态下,会话被销毁的时间
  • domain:生效的域
  • redis:存储session的redis配置

3、身份验证设置(存储用户名及密码)

authentication_backend:
  disable_reset_password: false
  file: {}
  ldap: {}
  • disable_reset_password 是否可以重置密码
  • file: 用户存储在 YAML 文件中,并带有其密码的散列版本
  • ldap: 用户存储在远程服务器中

4、规则配置

regulation:
  max_retries: 3
  find_time: 2m
  ban_time: 5m
  • max_retries: 在用户可能被禁止之前失败的登录尝试次数
  • find_time: max_retries的持续时间段
  • ban_time: 禁止时间

5、服务器配置

server:
  host: 0.0.0.0
  port: 9091
  path: ""
  read_buffer_size: 4096
  write_buffer_size: 4096
  enable_pprof: false
  enable_expvars: false
  disable_healthcheck: false
  tls:
    key: ""
    certificate: ""
  • Authelia 使用的 http 服务器模块设置

6、存储配置

storage:
  mysql:
    host: 127.0.0.1
    port: 3306
    database: authelia
    username: authelia
    password: mypassword
    timeout: 5s
  • mysql: mysql的存储配置。 用于存储用户首选项、身份验证日志等

四、启动和运行

1、根据访问控制的规则配置设置hosts

  • 这里推荐一款软件:SwitchsHosts。 一键设置hosts,十分方便
    在这里插入图片描述

2、启动项目

docker-compose up -d

五、运行效果

1、docker本地运行Authelia内容

docker运行

2、访问traefik.example.com带有验证的资源

在这里插入图片描述

3、输入账号密码登录后效果

在这里插入图片描述

4、二次身份验证效果

在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 Python,你可以使用第三方库来实现 OAuth2 授权。其中最常用的库是 `requests-oauthlib`。以下是一个简单的示例代码,展示了如何使用该库进行 OAuth2 授权: ```python from requests_oauthlib import OAuth2Session # 定义授权参数 client_id = 'YOUR_CLIENT_ID' client_secret = 'YOUR_CLIENT_SECRET' authorization_base_url = 'AUTHORIZATION_URL' token_url = 'TOKEN_URL' redirect_uri = 'REDIRECT_URI' # 创建 OAuth2Session 对象 oauth = OAuth2Session(client_id, redirect_uri=redirect_uri) # 生成授权 URL authorization_url, _ = oauth.authorization_url(authorization_base_url) # 打印授权 URL,并在浏览器中访问进行授权 print(f'请在浏览器中访问以下 URL 进行授权: {authorization_url}') # 获取授权码 authorization_code = input('请输入授权码: ') # 使用授权码获取访问令牌 token = oauth.fetch_token( token_url, code=authorization_code, client_secret=client_secret ) # 使用访问令牌发送请求 response = oauth.get('API_ENDPOINT') print(response.json()) ``` 请注意,以上代码中的参数需要根据你的实际情况进行修改,包括 `client_id`、`client_secret`、`authorization_base_url`、`token_url`、`redirect_uri` 和 `API_ENDPOINT`。你需要根据你使用的 OAuth2 提供商的文档来获取这些参数。 此外,还有其他一些流行的 Python OAuth2 库可以使用,如 `authlib`、`python-oauth2` 等,你可以根据自己的需求选择适合你的库来实现 OAuth2 授权

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值