private IEnumerable <Claim> GetClaimsForRealm(string realm, ClaimsConfiguration config)
        {
            var claimsSection = config.RelyingParties[realm];

            if (claimsSection != null)
            {
                return(claimsSection.Claims.Cast <RelyingPartyClaim>()
                       .Select(claim => new Claim(claim.Claim, claim.Value)));
            }
            return(new List <Claim>());
        }
        protected override ClaimsIdentity GetOutputClaimsIdentity(ClaimsPrincipal principal, RequestSecurityToken request, Scope scope)
        {
            var config = ClaimsConfiguration.ConfigurationFactory();
            var realm  = request.AppliesTo.Uri.AbsoluteUri;
            var claims = new List <Claim>();

            claims.AddRange(GetClaimsForRealm("common", config));
            claims.AddRange(GetClaimsForRealm(realm, config));

            return(new ClaimsIdentity(claims));
        }