我需要在IdentityServer3中的自定義授予類型上爲「act-as」模式的令牌內添加令牌。 我嘗試使用PreserveAccessToken
,但它只是在當前的ClaimsPrincipal中將該標記添加爲聲明,但無法找到將另一個標記傳遞給鏈中的下一個服務/ api時將其作爲聲明嵌套的方法。IdentityServer3 - 爲自定義授予類型(行爲模式)在令牌內添加令牌
這背後的想法是能夠保持從最終用戶到調用鏈中最後一個服務/ api的所有跳轉的審計。
我需要在IdentityServer3中的自定義授予類型上爲「act-as」模式的令牌內添加令牌。 我嘗試使用PreserveAccessToken
,但它只是在當前的ClaimsPrincipal中將該標記添加爲聲明,但無法找到將另一個標記傳遞給鏈中的下一個服務/ api時將其作爲聲明嵌套的方法。IdentityServer3 - 爲自定義授予類型(行爲模式)在令牌內添加令牌
這背後的想法是能夠保持從最終用戶到調用鏈中最後一個服務/ api的所有跳轉的審計。
這可以使用自定義授權來實現。這允許用定製「操作」擴展令牌端點 - 例如發佈包含委託索賠的令牌 - 例如令牌。
文檔是在這裏:https://identityserver.github.io/Documentation/docsv2/advanced/customGrantTypes.html
這裏也就是接近您的方案的示例:https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Multi%20Hop%20Delegation%20(ActAsCustomGrant)
是說 - 這可能是通過多跳傳達一個用戶ID最昂貴的方式。
如果在後端系統之間存在可信子系統,只需將所需數據作爲有效載荷進行傳輸就簡單多了,而且要快得多。
爲什麼不創建一個correlationId,並把它作爲一些頭部的一部分呢? –
因爲調用鏈中的最後一個鏈接(例如,使得實際調用DB並嘗試記錄此操作的審計)應能夠提取操作啓動器(如最終用戶)以及作爲操作一部分的中間所有服務/ apis。如果我能夠使IdSrvr將令牌嵌套在另一個令牌中,那麼它應該可以解決所有問題,而無需額外的工作。 – CesarD