public IActionResult GetNewPlatform( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "new-platform")] HttpRequest req, [LtiAdvantage] LtiToolPublicKey publicKey) { if (!ValidatePermission(req)) { return(new UnauthorizedResult()); } string platformId = GeneratePlatformID(); PlatformDto platformDto = new PlatformDto { Id = platformId, LoginUrl = $"{ConnectApiBaseUrl}/oidc-login/{platformId}", LaunchUrl = $"{ConnectApiBaseUrl}/lti-advantage-launch/{platformId}", PublicKey = publicKey.PemString, ToolJwk = JsonConvert.SerializeObject(publicKey.Jwk), ToolJwkSetUrl = $"{ConnectApiBaseUrl}/jwks/{platformId}", DomainUrl = new Uri(ConnectApiBaseUrl).Authority }; return(new OkObjectResult(platformDto)); }
public IActionResult Jwks( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "jwks/{platformId}")] HttpRequest req, [LtiAdvantage] LtiToolPublicKey publicKey ) { var jwks = new JsonWebKeySet(); jwks.Keys.Add(publicKey.Jwk); return(new OkObjectResult(jwks)); }
public IActionResult GetPlatform( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "platforms/{platformId}")] HttpRequest req, [LtiAdvantage] LtiToolPublicKey publicKey, [Table(PlatformsTableName, "{platformId}", "{platformId}")] PlatformEntity platformEntity) { if (!ValidatePermission(req)) { return(new UnauthorizedResult()); } PlatformDto platformDto = _mapper.Map <PlatformDto>(platformEntity); platformDto.PublicKey = publicKey.PemString; platformDto.ToolJwk = JsonConvert.SerializeObject(publicKey.Jwk); return(new OkObjectResult(platformDto)); }
public async Task <IActionResult> GetAllRegisteredPlatforms( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "platforms")] HttpRequest req, [LtiAdvantage] LtiToolPublicKey publicKey, [Table(PlatformsTableName)] CloudTable table) { if (!ValidatePermission(req)) { return(new UnauthorizedResult()); } _logger.LogInformation("Getting all the registered platforms."); List <PlatformDto> platforms = new List <PlatformDto>(); TableQuery <PlatformEntity> emptyQuery = new TableQuery <PlatformEntity>(); TableContinuationToken continuationToken = null; do { TableQuerySegment <PlatformEntity> querySegmentResult = await table.ExecuteQuerySegmentedAsync(emptyQuery, continuationToken); continuationToken = querySegmentResult.ContinuationToken; IEnumerable <PlatformDto> platformDtos = querySegmentResult .Results .Select(_mapper.Map <PlatformDto>) .Do(dto => { dto.PublicKey = publicKey.PemString; dto.ToolJwk = JsonConvert.SerializeObject(publicKey.Jwk); }); platforms.AddRange(platformDtos); } while (continuationToken != null); return(new OkObjectResult(platforms)); }