首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用强制执行控制台应用程序基于声明的授权的程序集。

使用强制执行控制台应用程序基于声明的授权的程序集。
EN

Stack Overflow用户
提问于 2015-07-17 08:17:21
回答 1查看 39关注 0票数 1

我目前正在引入(在现有应用程序中)一个自定义权限系统,它将声明(来自web应用程序中基于WSFed的OWIN auth )提供的角色映射到应用程序本身定义的权限。

目前,计划是将权限系统直接备份到线程主体上。

对这些权限进行验证:

  • 在web用户界面中
  • 在业务层(对于未来的可供选择的UI)。

但是,目前下落不明的一件事是,有一个控制台应用程序作为调度任务运行,它使用与web应用程序相同的业务层类(相同的程序集引用)。该应用程序在独立域中的本地Windows用户下运行,该用户不具备所需的角色(因此将无法授权)。

我可以看到一些解决这个问题的方法:

  1. 复制Windows机器中的角色,并分配给运行控制台应用程序的系统用户。
  2. 修改控制台应用程序,将声明显式添加到所使用的标识中。
  3. 修改权限系统,使其具有某种覆盖和/或从控制台应用程序注入"dud“权限系统。

所有这些似乎都不是特别优雅的解决方案。既然如此,我的问题很简单:在这种情况下,在身份授权方面是否有一种规范的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-17 11:16:28

非常有趣的问题,没有真正的规范答案,据我所知。

我会选择1或2,视你的情况而定。如果为客户端执行身份验证逻辑,则控制台应用程序只是另一个客户端,它需要有权限才能在系统中执行任务。仅为客户端修改您的权限系统,可能会打开安全漏洞,并且听起来像针对具有权限的客户端的攻击逻辑。

现在在1到2之间-这取决于你正在处理的情况。如果客户端要多次部署或由客户部署,为了简化部署,我将黑入命令行应用程序,并向主体添加所需的声明。

如果您的命令行客户端是供私人使用的,并且不会多次部署,那么最简单的方法就是让一个单独的域用户拥有用户所需的所有权限,并从用户处运行该应用程序。这将使权限与应用程序分离,如果您需要更改应用程序用户的权限而不更改命令行应用程序中的代码,则将使您的生活更加轻松。

这些纯粹是我的猜测,我希望会有其他意见。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31471256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档