in aspnet/Microsoft.Samples.XMLA.HTTP/Microsoft.Samples.XMLA.HTTP.Proxy/Startup.cs [27:102]
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSingleton(typeof(Config));
services.AddSingleton(typeof(TokenHelper));
services.AddSingleton(typeof(ConnectionPool));
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo
{
Title = "Microsoft.Samples.XMLA.HTTP.Proxy",
Version = "v1",
Description = "XML/A HTTP Sample for Azure Analysis Services and Power BI Premium",
License = new OpenApiLicense
{
Name = "MIT",
Url = new Uri("https://github.com/microsoft/azure-analysis-services-http-sample/blob/master/LICENSE")
}
});
c.AddSecurityDefinition("Basic",
new OpenApiSecurityScheme()
{
Description = "XMLA Endpoint Credentials in HTTP Basic Auth format. For a service Principal use app:[ClientId]@[TenantId], and pass a ClientSecret as the password.",
Scheme = "BASIC",
Type = SecuritySchemeType.Http
});
OpenApiSecurityScheme securityDefinition = new OpenApiSecurityScheme()
{
Name = "Bearer",
BearerFormat = "JWT",
Scheme = "bearer",
Description = "Bearer Auth with a token for AAS or Power BI. The token should be for 'https://analysis.windows.net/powerbi/api' or 'https://*.asazure.windows.net'",
In = ParameterLocation.Header,
Type = SecuritySchemeType.Http,
};
c.AddSecurityDefinition("Bearer", securityDefinition);
c.AddSecurityRequirement(new OpenApiSecurityRequirement()
{
{
new OpenApiSecurityScheme()
{
Reference = new OpenApiReference()
{
Id = "Basic", //The name of the previously defined security scheme.
Type = ReferenceType.SecurityScheme
}
},new List<string>()
}
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement()
{
{
new OpenApiSecurityScheme()
{
Reference = new OpenApiReference()
{
Id = "Bearer", //The name of the previously defined security scheme.
Type = ReferenceType.SecurityScheme
}
},new List<string>()
}
});
});
}