keycloak~Consent Required的使用

张占岭發表於2024-10-21

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_consentuser_consent_client_scope這兩張表中
  • keycloak後臺,可以在使用者詳細中,管理使用者的Consent Required資料

相關文章