Как использовать Azure ad SSO B2B с «Microsoft.Graph» вместо «Microsoft.Azure.ActiveDirectory.GraphClient» - PullRequest
0 голосов
/ 04 октября 2018

enter image description here

Я создаю приложение для своего веб-приложения, но я хочу использовать только Microsoft.Graph вместо ActiveDirectory.GraphClient, что возможно, если да, то как?

services.Configure<CookiePolicyOptions>(options =>
            {
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
                .AddAzureAD(options => Configuration.Bind("AzureAd", options));

            services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer = false,
                    NameClaimType = ClaimTypes.Name,
                    RoleClaimType = ClaimTypes.Role,
                };

                options.Scope.Add("openid profile User.ReadWrite User.ReadBasic.All Sites.ReadWrite.All Contacts.ReadWrite People.Read Notes.ReadWrite.All Tasks.ReadWrite Mail.ReadWrite Files.ReadWrite.All Calendars.ReadWrite");
                options.Events = new OpenIdConnectEvents
                {
                    OnTicketReceived = context =>
                    {
                        return Task.CompletedTask;
                    },
                    OnAuthenticationFailed = context =>
                    {
                        context.Response.Redirect("/Error");
                        context.HandleResponse(); // Suppress the exception
                        return Task.CompletedTask;
                    },
                };
            });

1 Ответ

0 голосов
/ 04 октября 2018

Самый простой ответ для вас - следовать « Начало работы с ASPNET », а затем изменить логику в соответствии с вашими требованиями.

Сделайте это самостоятельно: используйте Nugetустановить " Microsoft.Graph " и затем изменить GraphScopes в файле конфигурации проекта (appsettings.json для NETCore).

"AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "CallbackPath": "/signin-oidc",
    "BaseUrl": "https://localhost:44334",
    "ClientId": "your client id",
    "ClientSecret": "your secret", // This sample uses a password (secret) to authenticate. Production apps should use a certificate.
    "Scopes": "openid email profile offline_access",
    "GraphResourceId": "https://graph.microsoft.com/",
    "GraphScopes": "User.Read User.ReadBasic.All Mail.Send 
  }

Изменить конфигурациюСервисный код, как показано ниже:

 services.AddAuthentication(sharedOptions =>
            {
                sharedOptions.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                sharedOptions.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
            })
            .AddAzureAd(options => Configuration.Bind("AzureAd", options))
            .AddCookie();
...