2016-03-18 47 views
1

我有几个应用程序,我将IdentityServer3设置为我的身份验证和授权服务器。IdentityServer3 - 验证客户端访问

一些应用程序不能被所有用户访问....

允许supose在于:

  • 用户1可以访问APP1,APP4和APP5
  • 用户2可以访问APP5和App 2

那么,制定这些规则的最佳方式是如何工作的? 我应该使用Scopes吗?或者我最好只使用索赔?

+0

我相信这是类似于这里发布的问题http://stackoverflow.com/a/35565260/1371639 – Karthik

回答

1

IdentityServer允许通过ICustomRequestValidator接口自定义验证请求。您可以实现这一点并返回一个错误,以防止用户获取客户端的令牌。

+0

嗨,谢谢你的回复....我一直在寻找一个关于这个实现的例子,不能找到它...你有一个例子吗? – Jedi31

+0

@ Jedi31我找不到任何示例或者检查默认实现它可能会帮助您开始https://github.com/IdentityServer/IdentityServer3/blob/master/source/Core/Services/Default/DefaultCustomRequestValidator.cs – Moes

1

我相信CustomRequestValidator只有在需要控制用户对identityServer级别应用程序的访问时才有用。但大多数时候它是决定人让英寸 它就像改写你的问题的应用程序,

  • APP1可以通过用户1访问
  • APP4可以通过用户1访问
  • APP2可以通过用户2
  • APP5访问可以通过用户1 2

因此,使用基于范围和要求在应用层面的授权规则是根据您的情况好办法来访问和。

+0

它可能解决我的情况。我在考虑是否可以使用索赔来验证我的访问权限。就像,我可以使用Asp.Net身份创建我的身份,然后使用持票人令牌进行授权。我正在研究如何做到这一点......你认为这是一个好方法吗? – Jedi31

+0

我没有清楚地得到您的评论。您如何授权用户使用您的应用程序取决于您正在开发的应用程序类型。如果您正在开发WebApi,您将使用持票人令牌来授权。不同类型的示例应用程序可以在这里找到https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Clients – rawel

+0

行...对不起...我是一种dummie,但kkkkkk .. 。我可以验证用户是否可以访问我的Asp,Net Mvc应用程序。现在,我希望用户只有在他有特定要求时才执行操作。阅读文档,我尝试使用混合流...现在...我遇到了麻烦... kkkkkk – Jedi31