OAUTH2

配置举例说明

  1. # 是否启用OAuth2登录功能 参数选项true/false
  2. Enable = true
  3. # OAuth2登录方式在前端显示的名称
  4. DisplayName = 'OAuth2登录'
  5. # OAuth2认证成功后的重定向URL。这个URL应该是夜莺监控服务的回调地址
  6. RedirectURL = 'http://n9e-server:port/callback/oauth'
  7. # SSO服务的地址
  8. SsoAddr = 'https://<authing-tenant-name>.authing.cn/oauth2/authorize'
  9. # SSO登出地址,用于处理用户退出登录的请求
  10. SsoLogoutAddr = 'https://<authing-tenant-name>.authing.cn/logout'
  11. # SSO服务获取令牌的地址
  12. TokenAddr = 'https://<authing-tenant-name>.authing.cn/oauth2/token'
  13. # SSO服务获取用户信息的地址
  14. UserInfoAddr = 'https://<authing-tenant-name>.authing.cn/userinfo'
  15. # 传递令牌的方法,参数为header | querystring | formdata
  16. TranTokenMethod = 'header'
  17. # SSO服务App ID
  18. ClientId = '66***********'
  19. # SSO服务App Secret
  20. ClientSecret = 'ccc***********'
  21. # 是否覆盖用户属性 参数选项true/false
  22. CoverAttributes = true
  23. # 用户在夜莺系统中的默认角色 Guest/Standard/Admin
  24. DefaultRoles = ['Standard']
  25. # 用户信息是否为数组
  26. UserinfoIsArray = false
  27. # 用户信息的前缀
  28. UserinfoPrefix = 'data'
  29. # 请求的OAuth2范围
  30. Scopes = ['profile', 'email', 'phone']
  31. # OAuth2的用户属性映射平台的用户属性
  32. [Attributes]
  33. # 用户名字段的映射
  34. Username = 'sub'
  35. # 昵称字段的映射
  36. Nickname = 'nickname'
  37. # 电话字段的映射
  38. Phone = 'phone_number'
  39. # email字段映射
  40. Email = 'email'

TranTokenMethod 参数说明

TranTokenMethod 配置是设定获取 getUserInfo 接口信息时候的 Token 发送方式。大家在配置是可以查看确认一下 getUserInfo 接口对传递 Token 的要求。下面是分情况配置参数。

  1. 接口要求 GET 请求,并放到 header 中传递,TranTokenMethod 设置为 header
  2. 接口要求 GET 请求,并放到 url 中传递,TranTokenMethod 设置为 querystring
  3. 接口要求 POST 请求,TranTokenMethod 设置为 formdata

用户属性映射

在对接适配时,可以通过 DEBUG 日志过滤关键词 oauth2 进行查看分析,如下图所示我们可以看到平台通过 getUserInfo 接口可以获得的相关数据。 oauth2-config 我们把接口中获取到的用户信息填写在配置中,与平台字段对应即可实现用户信息的映射。

oauth2-config

如上图所示,将获取到的 name —> Username ; nickename —> Nickname ; phone_number —> Phone ; email —> Email;

oauth2-config

UserinfoPrefix 参数说明

UserinfoPrefix 参数用于指定在返回的用户信息 JSON 中,属性前缀的设置。

如果 API 返回的用户信息结构如下,需要设置 UserinfoPrefix 为 data 。

  1. {
  2. "data": {
  3. "username": "john_doe",
  4. "email": "john@example.com"
  5. }
  6. }

如果不清楚返回的数据结构,可以通过查看平台 DEBUG 日志分析数据结构。

oauth2-config

基础配置说明

下面是一个Authing的OAuth2配置对应说明:

RedirectURL默认是http://n9e-server:port/callback/oauth

oauth2-config

夜莺配置OIDC配置
SsoAddr认证端
SsoLogoutAddr登出端点
TokenAddrToken端点
UserInfoAddr用户信息端点
ClientIdApp ID
ClientSecretApp Secret

账号登陆

oauth2-login01

oauth2-login02

账号退出

与OIDC一样目前暂时不支持夜莺服务端OAuth2账号直接退出。如需账号退出登陆,需要先在OAuth2服务端进行账号下线后,再返回夜莺服务页面选择账号退出即可。