配置舉例說明
``toml
是否啟用OAuth2登錄功能 參數選項true/false
Enable = true
OAuth2登錄方式在前端顯示的名稱
DisplayName = ‘OAuth2登錄’
OAuth2認證成功後的重定向URL。這個URL應該是夜鶯監控服務的回調地址
RedirectURL = ‘http://n9e-server:port/callback/oauth’
SSO服務的地址
SsoAddr = ‘https://
SSO登出地址,用於處理用戶退出登錄的請求
SsoLogoutAddr = ‘https://
SSO服務獲取令牌的地址
TokenAddr = ‘https://
SSO服務獲取用戶信息的地址
UserInfoAddr = ‘https://
傳遞令牌的方法,通常為header
TranTokenMethod = ‘header’
SSO服務App ID
ClientId = ‘66***********’
SSO服務App Secret
ClientSecret = ‘ccc***********’
是否覆蓋用戶屬性 參數選項true/false
CoverAttributes = true
用戶在夜鶯系統中的默認角色 Guest/Standard/Admin
DefaultRoles = [‘Standard’]
用戶信息是否為數組
UserinfoIsArray = false
用戶信息的前綴
UserinfoPrefix = ‘data’
請求的OAuth2範圍
Scopes = [‘profile’, ’email’, ‘phone’]
OAuth2的用戶屬性映射n9e的用戶屬性
[Attributes]
用戶名字段的映射
Username = ‘sub’
暱稱字段的映射
Nickname = ’nickname’
電話字段的映射
Phone = ‘phone_number’
email字段映射
Email = ’email' ``
TranTokenMethod 參數說明
TranTokenMethod 配置是設定獲取 getUserInfo 接口信息時的 Token 傳送方式。大家在配置時可以查看確認一下 getUserInfo 接口對傳遞 Token 的要求。下面是分情況配置參數。
- 接口要求 GET 請求,並放到 header 中傳遞,TranTokenMethod 設置為 header;
- 接口要求 GET 請求,並放到 url 中傳遞,TranTokenMethod 設置為 querystring;
- 接口要求 POST 請求,TranTokenMethod 設置為 formdata;
用戶屬性映射
在對接適配時,可以通過 DEBUG 日誌過濾關鍵詞 oauth2 進行查看分析,如下圖所示我們可以看到平台通過 getUserInfo 接口可以獲得的相關數據。 我們把接口中獲取到的用戶信息填寫在配置中,與平台字段對應即可實現用戶信息的映射。
如上圖所示,將獲取到的 name —> Username ; nickname —> Nickname ; phone_number —> Phone ; email —> Email;
UserinfoPrefix 參數說明
UserinfoPrefix 參數用於指定在返回的用戶信息 JSON 中,屬性前綴的設置。
如果 API 返回的用戶信息結構如下,需要設置 UserinfoPrefix 為 data。
{
"data": {
"username": "john_doe",
"email": "john@example.com"
}
}
如果不清楚返回的數據結構,可以通過查看平台 DEBUG 日誌分析數據結構。
基礎配置說明
下面是一個 Authing 的 OAuth2 配置對應說明:
RedirectURL 默認是 http://n9e-server:port/callback/oauth
夜鶯配置 | OIDC 配置 |
---|---|
SsoAddr | 認證端 |
SsoLogoutAddr | 登出端點 |
TokenAddr | Token 端點 |
UserInfoAddr | 用戶信息端點 |
ClientId | App ID |
ClientSecret | App Secret |
账号登入
账号登出
與 OIDC 一樣,目前暫時不支持夜鶯服務端 OAuth2 账号直接退出。如需账号退出登录,需要先在 OAuth2 服務端進行帳號下線後,再返回夜鶯服務頁面選擇帳號退出即可。