0

假设我有两个 Web 应用程序和一个 STS 服务: 1. 可以向用户授予权限的管理门户。2. 用户可以根据这些权限做事的销售门户。

现在假设我有 STS,它向销售门户提供 8 小时到期的安全令牌。令牌包含包含有关用户权限等信息的声明。

现在想象一个场景,其中删除了用户的管理门户权限并将更改保存到数据库中。由于用户已使用尚未过期的安全令牌登录到销售门户,销售门户将不会知道权限已被删除。

问题是 - 如何处理这种情况。对我来说,我在这里看到的唯一解决方案是完全删除 STS,但我正在寻找一种更智能的方法来处理这个问题。

有没有更好的方法来解决这个不同步的问题?

4

1 回答 1

1

Removing the STS is a little bit drastic :-). You have it for a reason (SSO, federation, etc). You have a few options: decrease the expiration time of the token to a reasonable value for the volatility of your changes (8 hours might be excessive), or move the sensitive authorization information (e.g. privileges) to the app so it is checked each time.

You can do "claims enrichment" at the app level (through a custom AuhtenticationManager in WIF) and still use claims model from your app code.

Technically there's no synching between the app and the STS. The Token is a snapshot of user attributes at the time of issuance and valid until it expires.

于 2013-09-10T17:55:47.833 回答