不同的web api端点的不同流程

时间:2017-01-25 09:33:37

标签: asp.net-web-api2 identityserver3 identityserver4

如何设置Web API端点以使用来自IdentityServer的不同授权类型?

现在我的Startup是:

angular.module('myApp',['ngResource']);

angular.module('myApp').controller("myCtrl",function (yourService,$scope) {

});

angular.module('myApp').

factory('yourService', ["$resource", function($resource,$scope){

    return $resource("http://www.w3schools.com/angular/customers.php").get().$promise
        .then (function (data){


    });
    return data;
}]);

控制器:

app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions()
{
   Authority = "http://localhost:5000",
   RequiredScopes = new[] { "public", "read", "write" }
});

当然,一个端点只能有一种授权类型,因为如果客户端流端点也允许密码流,则没有意义。

这是一个糟糕的结构吗?

我是否应该将公共api(凭据流),密码流端点和内部端点(不暴露给外部公司基础架构)分离到不同的项目?

如何指定不同端点的范围? (例如,一个端点需要公开,一个需要阅读)

1 个答案:

答案 0 :(得分:0)

这非常糟糕。您将身份验证流程问题与API相关联。而是为每个客户端定义不同的范围,并使用这些范围来限制哪些客户端可以使用哪些资源。您可以根据范围进行基于声明的授权。检查this