/// <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); }
/// <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); }
public HomeController(IPolicyServerClient client, IAuthorizationService authz) { _client = client; _authz = authz; }
public MedicationRequirementHandler(IPolicyServerClient client) { _client = client; }
public PrepareOrderRequirmentHandler(IPolicyServerClient client) { _client = client; }
public CurrentUserRequirementHandler(IPolicyServerClient client) { _client = client; }
public RestrictedController(IPolicyServerClient client) { _client = client; }
public TeamMemberRequirementHandler(IPolicyServerClient client) { _client = client; }
public PermissionHandler(IPolicyServerClient client) { _client = client; }
public OrderMealRequirmentHandler(IPolicyServerClient client) { _client = client; }