gpt4 book ai didi

.net - 如何将 Servicestack 身份验证与 Active Directory/Windows 身份验证一起使用?

转载 作者:行者123 更新时间:2023-12-03 10:43:26 25 4
gpt4 key购买 nike

我正在创建用户凭据驻留在 Active Directory 中的安全 (SSL) 公共(public)服务。我想利用 ServiceStack 的身份验证并阅读了 wiki article .我已经编写了代码来使用 AD 验证用户凭据。我有几个问题。

  • 我使用哪个身份验证提供商?凭证、基本身份验证还是自定义?该服务需要 SSL,因此基本身份验证是安全的,但密码将被加密以增加安全性。
  • 我还需要存储 UserAuth 并缓存 AuthUserSession 吗?
  • monotouch 客户端是否支持身份验证?

  • 更新 2:我最终使用 CredentialsAuthProvider 制作了一个与 AD 集成的测试 SS 服务。但是,我的最终目标是在客户调用时拥有 1 个作为 api 的站点。所以基本上是一个 SS MVC 站点。

    更新:

    在做了更多研究后,我了解到 SS 正在考虑在 future 做一个可能支持 Windows 身份验证的商业产品。我在 SS Google 小组的 mythz 评论中读到了这一点。我问这个 SO 问题的原因是我的公司使用 IWA 构建内部应用程序,并且没有 IWA 就很难采用 SS MVC。我想我读到您可以在使用 IWA 的 ASP.NET 站点之外托管 SS MVC 站点,但我还没有尝试过。

    最佳答案

    我还将 ServiceStack 与集成 Windows 身份验证(用于企业应用程序)连接起来,关键是跳过尝试将其与 ServiceStack 的 AuthProviders 完全集成,因为 IWA 的一般方法不处理应用程序代码中的凭据 - - 它由网络服务器处理。我所做的是:

  • 在 IIS 中配置站点/应用程序,以便 Windows 身份验证是唯一启用的选项。 (不允许匿名访问。)这意味着 IIS 本身将处理未经身份验证的用户的质询-响应 (HTTP 401/200) 序列,并为您处理该过程的身份验证部分。
  • 实现 ServiceStack 的 IHasRequestFilter (HTTP 预请求过滤器)作为属性(例如,[AdminOnly])。此过滤器的 RequestFilter 方法从 HttpContext ( HttpContext.User.Identity.Name ) 获取当前用户名,从存储库(可能是 SQL 数据库、平面文件等)中查找它,使用 ServiceStack 的 ICacheClient 缓存结果(内存缓存、Redis 等),如果未经授权则抛出 403 HttpError。

  • 完成此操作后,只需将属性添加到所需的类或方法中(在所需的位置将此身份验证/授权添加到服务管道中),并在我的 AppHost 实现中注册所需的缓存提供程序,例如:
     container.Register<ICacheClient>(new MemoryCacheClient() { FlushOnDispose = false });

    它工作得很好。

    关于.net - 如何将 Servicestack 身份验证与 Active Directory/Windows 身份验证一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13074668/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com