为“新”用户提供多个受信任的STS
|
将Windows Identity Foundation(WIF)与多个安全令牌服务(STS)一起使用时,是否可以在用户首次访问应用程序之前对其进行配置?
例如,假设我有一个名为BufferOverrun的网站,用户可以在其中登录并提出/回答问题,而我想支持使用外部Google帐户进行身份验证。用户首次访问该页面时,必须使用其Google帐户进行身份验证,然后他们才能访问该网络应用程序。在这种情况下,有两个STS,即Google(用于身份验证)和一个自定义应用程序(用于授权)。
在用户访问系统之前,如何为用户分配声明?
由于身份是我的应用程序的外部所有者,因此我无法直接将声明分配给该身份(而且我也不想,因为它们是特定于应用程序的)。但是由于用户尚未访问系统,因此我没有内部身份来分配声明。我看到两种可能的解决方案:
等待用户访问系统(创建一些默认的特定于应用程序的声明),然后使用一些内部置备工具根据需要修改这些声明。
让置备工具允许用户在手动通过身份验证进行身份验证之前,手动映射默认身份声明(例如,电子邮件地址),以便在首次访问时,如果身份声明该声明,则会授予一组特定的应用程序声明。
我看到1和2都有一些问题。对于1,所有用户都具有对系统的一些隐式访问,即使默认的应用程序声明不允许任何功能。这对于像stackoverflow这样的东西似乎非常有用,在该情况下,初始帐户具有一定的权限集,并且当用户使用系统时,会授予新的声明。但是,这可能不是所有应用程序都希望的。 2容易出错,因为它需要管理员手动指定声明。
在上述两种情况下,如何提供可以实际使用供应工具的身份(即管理员帐户)?
为此,我设想在应用程序安装期间,我需要用户进行身份验证并将该身份的应用程序声明设置为具有“管理”特权。这是一个好的实现吗?
从历史上讲(我现在指的是现有应用程序),该应用程序仅专门与Active Directory接口。处理此问题的方法是,有一个内置的管理员帐户(不与AD关联)允许管理员用户首次登录。在使用管理应用程序进行身份验证之后,该用户可以在AD中搜索用户/组并分别进行设置。管理员未配置的任何用户/组都将根本无法访问系统。我看不到这种范例适用于使用外部STS(例如Google等),因此我试图构想一个可以启用外部STS系统的体系结构。尽管不是必需的,但仍希望保持搜索STS的能力。实际上,所涉及的两个STS可能都是使用联合服务的Active Directory。
注意:这类似于此问题和此问题。
没有找到相关结果
已邀请:
1 个回复
哩翔购