Beispiel #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AuthorizationPolicyProvider"/> class.
 /// </summary>
 /// <param name="options">The options.</param>
 /// <param name="client">The client.</param>
 /// <param name="contextAccessor">The context accessor.</param>
 public AuthorizationPolicyProvider(
     IOptions <AuthorizationOptions> options,
     IPolicyServerClient client,
     IHttpContextAccessor contextAccessor) : base(options)
 {
     _client          = client;
     _contextAccessor = contextAccessor;
 }
        /// <summary>
        /// Invoke
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="client">The client.</param>
        /// <returns></returns>
        public async Task Invoke(HttpContext context, IPolicyServerClient client)
        {
            if (context.User.Identity.IsAuthenticated)
            {
                var policy = await client.EvaluateAsync(context.User);

                var roleClaims       = policy.Roles.Select(x => new Claim("role", x));
                var permissionClaims = policy.Permissions.Select(x => new Claim("permission", x));

                var id = new ClaimsIdentity("PolicyServerMiddleware", "name", "role");
                id.AddClaims(roleClaims);
                id.AddClaims(permissionClaims);

                context.User.AddIdentity(id);
            }

            await _next(context);
        }
Beispiel #3
0
        /// <summary>
        /// Invoke
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="client">The client.</param>
        /// <returns></returns>
        public async Task Invoke(HttpContext context, IPolicyServerClient client)
        {
            if (context.User.Identity.IsAuthenticated)
            {
                var appContext = context.Request.Path.Value.Split('/')[1].ToLower();

                var identity = context.User.Identities
                               .Where(x => x.AuthenticationType == "PolicyServerMiddleware")
                               .FirstOrDefault();

                if (identity.HasClaim(x => x.Type == "context"))
                {
                    identity.RemoveClaim(identity.FindFirst("context"));
                }

                identity.AddClaim(new Claim("context", appContext));
            }

            await _next(context);
        }
Beispiel #4
0
 public HomeController(IPolicyServerClient client, IAuthorizationService authz)
 {
     _client = client;
     _authz  = authz;
 }
Beispiel #5
0
 public MedicationRequirementHandler(IPolicyServerClient client)
 {
     _client = client;
 }
 public PrepareOrderRequirmentHandler(IPolicyServerClient client)
 {
     _client = client;
 }
Beispiel #7
0
 public CurrentUserRequirementHandler(IPolicyServerClient client)
 {
     _client = client;
 }
Beispiel #8
0
 public RestrictedController(IPolicyServerClient client)
 {
     _client = client;
 }
Beispiel #9
0
 public TeamMemberRequirementHandler(IPolicyServerClient client)
 {
     _client = client;
 }
 public PermissionHandler(IPolicyServerClient client)
 {
     _client = client;
 }
 public OrderMealRequirmentHandler(IPolicyServerClient client)
 {
     _client = client;
 }