/// <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, PolicyServerClient 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, PolicyServerClient 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); }
public MedicationRequirementHandler(PolicyServerClient client) { _client = client; }
public HomeController(PolicyServerClient client, IAuthorizationService authz) { _client = client; _authz = authz; }
public PermissionHandler(PolicyServerClient client) { _client = client; }