标签: authorization

WCF - Windows身份验证 - 安全设置需要匿名

我正努力在我们的服务器上运行IIS上运行WCF服务.部署后,我最终收到一条错误消息:

此服务的安全设置需要"匿名"身份验证,但不会为承载此服务的IIS应用程序启用它.

我想使用Windows身份验证,因此我禁用了匿名访问.另请注意,有aspNetCompatibilityEnabled(如果这有任何区别).

这是我的web.config:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <bindings>
        <webHttpBinding>
            <binding name="default">
                <security mode="TransportCredentialOnly">
                    <transport clientCredentialType="Windows" proxyCredentialType="Windows"/>
                </security>
            </binding>
        </webHttpBinding>
    </bindings>
    <behaviors>
        <endpointBehaviors>
            <behavior name="AspNetAjaxBehavior">
                <enableWebScript />
                <webHttp />
            </behavior>
        </endpointBehaviors>
        <serviceBehaviors>
            <behavior name="defaultServiceBehavior">
                <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
                <serviceDebug includeExceptionDetailInFaults="true" />
                <serviceAuthorization principalPermissionMode="UseWindowsGroups" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <services>
        <service name="xxx.Web.Services.RequestService" behaviorConfiguration="defaultServiceBehavior">
            <endpoint behaviorConfiguration="AspNetAjaxBehavior" binding="webHttpBinding"
             contract="xxx.Web.Services.IRequestService" bindingConfiguration="default">
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" name="mex" contract="IMetadataExchange"></endpoint>
        </service>
    </services>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

我在互联网上搜索没有运气.任何线索都非常感谢.

security wcf authorization

43
推荐指数
3
解决办法
7万
查看次数

如何从FilterAttribute中获取当前Url?

我正在编写一个授权过滤器属性,因为我无法弄清楚如何将当前url作为字符串获取,所以我可以将它作为参数传递给LogOn操作.目标是,如果用户成功登录,他们将被重定向到他们最初尝试访问的页面.

public override void OnAuthorization(AuthorizeContext filterContext)
{
    base.OnAuthorization(filterContext);

    ... my auth code ...
    bool isAuth ;
    ... my auth code ...

    if(!isAuth)
    {
        filterContext.Result = new RedirectToRouteResult(
            new RouteValueDictionary { 
                { "Area", "" }, 
                { "Controller", "Account" }, 
                { "Action", "LogOn" },
                { "RedirectUrl", "/Url/String/For/Currnt/Request" } // how do I get this?
            }
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

如何从当前请求中获取完整的字符串Url?

url asp.net-mvc authorization action-filter actionfilterattribute

40
推荐指数
4
解决办法
3万
查看次数

如何在MVC应用程序中使用JWT进行身份验证和授权?

我计划在ASP.NET MVC应用程序中使用ASP.NET Identity 2.0进行身份验证和授权.

参考以下链接

使用Owin的ASP.NET Web API 2中的JSON Web Token

我能够为有效用户创建访问令牌(JWT),即,当用户登录到应用程序时,我将使用名称和密码验证用户,然后我将为该有效用户发出JSON Web令牌.

现在,我在一些文章中读到,我们需要在标头中为每个请求传递承载令牌,以验证用户的身份验证.在MVC中,我们将为需要保护的方法提供Authorize属性,如下所示...

      public class UserController : BaseHRAppController
      {
            [Authorize]
            public ActionResult Index()
            {          
               return View();
            }
       }
Run Code Online (Sandbox Code Playgroud)

如何告诉我的MVC应用程序使用JWT验证用户?

每当用户尝试使用authorize属性访问该方法时,我想让我的MVC应用程序使用JWT验证用户.由于我将在许多页面中使用AJAX调用来访问MVC控制器中存在的方法,因此我认为在每个AJAX请求上传递令牌都不合适.我需要帮助以在MVC应用程序中使用ASP.NET标识以有效的方式完成身份验证和授权.

目前,我不知道如何在MVC应用程序中使用此JWT令牌进行身份验证和授权.

c# authentication authorization asp.net-mvc-4 asp.net-identity

40
推荐指数
2
解决办法
5万
查看次数

您使用哪种身份验证和授权方案?为什么?

我们开始设计一大堆新服务来创建(WCF,ADO.NET数据服务,可能在某个时候在云端),弹出的一个问题是使用的身份验证和授权方案 - 有很多几个!

我们基本上需要能够在各种协议(HTTP,HTTPS,TCP)上识别用户(实际人员和"虚拟"应用程序/服务用户),并且我们需要为他们分配至少一堆角色/权限查看某些数据和/或进行某些操作.

我们绝对不能单独使用Windows组成员资格 - 我们的服务有很多外部消费者,我们不希望在内部域中为每个人设置域帐户.

所以我认为主要有三种选择:

  1. 使用ASP.NET成员资格系统 - 在那里创建用户并分配角色
  2. 使用AzMan(授权管理器),它似乎是一个更细化,更成熟,更精细的系统(具有用户,任务,组 - 三个级别,而不仅仅是用户+角色)
  3. 滚动我们自己

首先 - 你会推荐这三个中的哪一个?为什么?

其次 - 我有更多选择吗?

感谢任何提示,指示,意见!

PS:到目前为止看到答案,我很惊讶投票选择#3的人数.我本以为MS能够设计出可以满足所有这些要求的可重复使用的东西....

asp.net authentication azman authorization asp.net-membership

39
推荐指数
2
解决办法
4266
查看次数

在开发服务器上配置AppIdentityService的使用

我有一个应用程序,目前使用它com.google.appendinge.api.appidentity.AppIdentityService来促进使用相同的应用程序的身份验证和授权[即.同一帐户]通过SpreadsheetServiceAPI的电子表格数据.在部署到GAE环境的生产模式下工作得很好.但是由于显而易见的原因,它在我的开发appengine环境中运行不起作用(身份验证错误,没有惊喜).

我的问题是:是否可以"支持"配置一个本地开发服务器以使用必要的密钥和证书信息来使AppIdentityService按预期工作?

我阅读了https://sites.google.com/site/oauthgoog/authenticate-google-app-engine-app这篇文章,我理解这是有可能的,但我误解了关键点并希望得到任何反馈关于这个问题.

在一个完美的世界里,我希望我的测试环境能够尽可能地模仿生产模式.我也在考虑在我的测试环境中使用'普通'oauth2 web应用程序身份验证,但是如果可能的话,我更愿意坚持使用AppIdentityService.

我怀疑com.google.appengine.api.appidentity.dev.LocalAppIdentityService该类中的类appengine-api-stubs.jar是预期的技术,但有没有其他人也使用它来AppIdentityService在开发服务器中提供身份验证?我最初的假设是com.google.appengine.api.appidentity.IAppIdentityServiceFactoryProvider使用上面的LocalAppIdentityService类替换com.google.appengine.spi.FactoryProvider中的类来使用我自己的工厂类.还是我在错误的树上吠叫?

使用GAE SDK 1.8.8 for Java.

java google-app-engine authorization

39
推荐指数
1
解决办法
680
查看次数

从ActiveRecord模型中获取特定属性

假设我有一个User带属性的模型:id, :first_name, :last_name, and :email.在我的应用程序中,访客用户不应该看到User's email and last_name.如果我想要一个用户列表,我知道如何选择特定值,但我不知道如何获得特定用户的特定属性,如

User.find_by(id: 5).select(:id, :first_name).
Run Code Online (Sandbox Code Playgroud)

对此的一个解决方案是用户

User.find_by(id: 5).attributes.slice('id', 'first_name') 
Run Code Online (Sandbox Code Playgroud)

但后来我得到一个哈希而不是一个AR记录.我可以

User.select(:id, :first_name).find_by(id: 1) 
Run Code Online (Sandbox Code Playgroud)

但是我不知道应该过滤哪些过滤器,因为我需要先了解用户.

你可以帮帮我吗?

select authorization ruby-on-rails filter

39
推荐指数
3
解决办法
5万
查看次数

授予对IIS 7.5 ApplicationPoolIdentity的访问权限

当我尝试访问我的ASP.NET MVC应用程序时,我收到错误:

Access to the path 'C:\inetpub\wwwroot\website\bin\test.Platform.Config.xml' is denied
Run Code Online (Sandbox Code Playgroud)

我使用具有以下属性的应用程序池运行IIS 7.5:

Identity: ApplicationPoolIdentity
Run Code Online (Sandbox Code Playgroud)

我想这是因为'ApplicationPoolIdentity'无法读取我尝试访问的文件.所以我的问题是:由于'ApplicationPoolIdentity'不是系统用户,我需要授予哪个用户或组进一步访问才能允许'ApplicationPoolIdentity'读取文件?

或者是否有其他解释此授权问题?

authorization iis-7.5

38
推荐指数
1
解决办法
5万
查看次数

Passport和JWT之间的区别?

我是Express/Node的新手 - 我想弄清楚Passport和JWT之间的区别是什么,但找不到明确的答案?我知道您可以在应用程序中使用其中一个用于auth目的,或者与passport-jwt之类的npm包一起使用.

所以我想知道的是:

  1. JWT对Passport没有做什么(反之亦然)?

  2. 验证/授权的首选方法是什么?为什么?

authentication authorization express

38
推荐指数
2
解决办法
1万
查看次数

使用基于声明的授权

新的ASP.NET 4.5代码已将ASP.NET RoleProvider"重新定位"为ClaimsProvider.

我想弄清楚的是,基于"声明的"授权示例是什么样的(最好是在MVC4中)?我的Authorize属性如何与此功能交互?WebSecurity和Roles API没有改变; 没有"DoesUserHaveClaim()"签名.同样,目前尚不清楚Authorize属性如何与声明进行交互.

这种"声明授权"功能主要用于OAuth吗?如果是,请求如何转发到我的申请?一块饼干?或者这种声明提供程序功能是否适用于更广泛的用途?

简而言之,使用ClaimsPrincipal的故事是什么?

我所看到的最接近的东西是有意义的,就是这个讨论.但我怀疑这是过时的 - 它应该与MVC4互联网项目模板产生的相比.即便如此,它仍然没有建议如何在设置中使用Authorize属性.

UPDATE

我从这些来源找到了我的问题的答案:

  1. ClaimsPrincipal的备注部分解释说,WebSecurity,Roles和AuthorizeAttribute API实际上可以根据需要进行声明检查.
  2. 这里是基于声明的MVC4示例(以及其他示例).
  3. 这里显示了基本的SAML故事.

authorization asp.net-mvc-4 asp.net-4.5

37
推荐指数
1
解决办法
2万
查看次数

JMeter基本身份验证

我试图暗示使用JMeter的Web服务的基本身份验证过程.但每次它抛出错误401:未经授权.我尝试使用HTTP标头管理器向其添加标头授权和值.它仍然无效.我也尝试过使用HTTP授权管理器.仍然没有运气.有人可以帮忙吗

authorization jmeter http-authentication

36
推荐指数
3
解决办法
5万
查看次数