コード例 #1
0
        private void AddAuthentication(IServiceCollection services, AuthenticationOptions authenticationOptions)
        {
            services.Configure <AuthenticationOptions>(options => options = authenticationOptions);

            services.AddAuthentication(sharedOptions =>
            {
                sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(options =>
            {
                options.Audience  = authenticationOptions.ClientId;
                options.Authority = authenticationOptions.Authority;
            });

            services.AddSingleton <IClaimsTransformation, ScopeClaimSplitTransformation>();
        }
コード例 #2
0
        private void AddSwagger(IServiceCollection services, AuthenticationOptions authenticationOptions)
        {
            // Register the Swagger generator, defining 1 or more Swagger documents
            services.AddSwaggerGen(c =>
            {
                var infoV1 = CreateOpenApiInfo(
                    "v1", "Resource Utilization API Version 1",
                    "Detailed layout of Resource Utilization API with ASP.NET Core Web API"
                    );
                var infoV2 = CreateOpenApiInfo(
                    "v2", "Resource Utilization API Version 2",
                    "Detailed layout of Resource Utilization API with ASP.NET Core Web API"
                    );

                c.SwaggerDoc("v1", infoV1);
                c.SwaggerDoc("v2", infoV2);

                AddSwaggerJsonAndUi(c);

                AddSwaggerSecurityDefinition(c, authenticationOptions);
                AddSwaggerSecurityRequirement(c);
            });
        }
コード例 #3
0
 private void AddSwaggerSecurityDefinition(Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenOptions c, AuthenticationOptions authenticationOptions)
 {
     c.AddSecurityDefinition("aad-jwt", new OpenApiSecurityScheme
     {
         Type  = SecuritySchemeType.OAuth2,
         Flows = new OpenApiOAuthFlows
         {
             Implicit = new OpenApiOAuthFlow
             {
                 AuthorizationUrl = new Uri(authenticationOptions.AuthorizationUrl),
                 Scopes           = DelegatedPermissions.All.ToDictionary(p => $"{authenticationOptions.ApplicationIdUri}/{p}")
             }
         }
     });
 }