keycloak~Consent Required的使用
Consent Required在keycloak中是“授權所需”,或者是“同意必需“的意思,它類似于oauth2授權時的“確認”,當你在第三方認證后,通過oauth2協議,你可以把用戶相關信息返回給應用程序,而這時,用戶自己需要確認一下,自己的這些信息是否可以給應用程序。
為客戶端配置Consent Required選項
- 可以自定義這個同意的頁面,這些是可以定制化的

用戶第一次通過客戶端登錄,會顯示這個確認頁
- 可以看到目前對客戶端開放的所有scope
- 每種scope對應用戶的一些信息,如email,address,profile等
- 這些scope可以在keycloak中的
client scopes(客戶端范圍)菜單中找到,而每個scope包含的用戶信息,可以在對應的mappers(映射)里找到

查看用戶同意的選項
- 用戶公開了哪些scope,可以在這里找到

相關實現方式與數據的存儲
- 通過keycloak的
required_action(必須操作)實現,當通過用戶確認的scope會由keycloak進行存儲,下次用戶再訪問客戶端,就不會再出現這個頁面了 Consent Required的數據,被存儲到了user_consent和user_consent_client_scope這兩張表中- keycloak后臺,可以在用戶詳細中,管理用戶的
Consent Required數據
注冊到keycloak的所有必需操作(required_action)
- 在驗證(Authentication)-必需操作(required action)中可以看到所有已被注冊到keycloak中的required_action
- 需要需要自定義required_action,需要實現
RequiredActionProvider這個接口,然后注冊到resources/META-INFO/services/org.keycloak.authentication.RequiredActionFactory里 - 在認證流程中,可以調用UserModel的
addRequiredAction和removeRequiredAction方法,來添加或者刪除一個required_action

浙公網安備 33010602011771號