如何设置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(凭据流),密码流端点和内部端点(不暴露给外部公司基础架构)分离到不同的项目?
如何指定不同端点的范围? (例如,一个端点需要公开,一个需要阅读)
答案 0 :(得分:0)
这非常糟糕。您将身份验证流程问题与API相关联。而是为每个客户端定义不同的范围,并使用这些范围来限制哪些客户端可以使用哪些资源。您可以根据范围进行基于声明的授权。检查this。