2017-04-12 105 views
3

我一直無法推測我可能會從我的應用程序數據庫添加額外聲明的方式。鑑於我的理解有限,我看到兩種方式:Keycloak添加來自數據庫/外部來源的額外聲明

  1. 成功驗證後,有人從應用程序數據庫中以某種方式獲取額外聲明。例如,這個應用程序數據庫是postgres。
  2. 讓應用程序使用共享密鑰更新帶有額外聲明的jwt。

我想要一些反饋的路徑。我覺得拳頭選項可能更安全。不過,我不確定從哪裏開始實施過程。

回答

0

在這裏回答我自己的問題。我將這個問題交給了Keycloak用戶郵件列表(http://lists.jboss.org/pipermail/keycloak-user/2017-April/010315.html),並得到了一個似乎合理的答案。

這是從我在那裏收到的答案粘貼。

我使用第一個選項。我用一個協議映射器來做,這是一個方便的地方,因爲這個令牌已經由keycloak構建,但還沒有被簽名。這是該過程:在

  • 我的自定義協議映射

    1. 用戶登錄被調用,我在那裏覆蓋transformAccessToken方法

    2. 在這裏,我登錄客戶端,其中協議映射爲成爲keycloak,作爲一項服務。這裏不要忘記使用另一個客戶端ID來代替正在構建協議映射器的客戶端ID,否則您將進入無限遞歸。

    3. 我得到的訪問令牌到協議映射,與我把我的應用程序來獲取額外的權利,這是確保

    4. 獲取信息的終端返回,並將其添加爲額外的權利要求的其餘端點

  • 相關問題