contextAccessor.HttpContext.GetTokenAsyn c ("TestRest", "access_token") возвращает код авторизации и нет токена JTW - PullRequest
0 голосов
/ 15 апреля 2020

Я попытаюсь получить токен авторизации от AzureAd.

У меня есть эта конфигурация:

services.AddAuthentication()
                .AddCookie("TestRestSignInScheme")
                .AddOpenIdConnect("TestRest", options =>
                {
                    options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
                    options.TokenValidationParameters.ValidateIssuer = false;
                    options.Authority = Configuration["TestRest:Authority"];
                    options.ClientId = Configuration["TestRest:ClientId"];
                    options.ClientSecret = Configuration["TestRest:ClientSecret"];
                    options.CallbackPath = new PathString("/test-rest-callback");
                    options.SaveTokens = true;
                    options.SignInScheme = "TestRestSignInScheme";  
                });

Но когда я пытаюсь получить токен с

contextAccessor.HttpContext.GetTokenAsync("TestRest", "access_token")

метод повторяет код авторизации, а не Id_token:

это результат вызова метода:

PAQABAAAAAAAm-06blBE1TpVMil8KPQ41ARLOejoQg7gqL67ohJwID-Y1vEGTeU4EEFCui08aki3NbiPOHe-GMHDt3iXTpE0DGovL2RbBA-0kWdD4xxGs4wJ2-s3lPf-yo2M8K5VUXKcsCignlGj7x74vKQrDo_u3zbbJUG5zoc5K2cw4d2rkizHVBLuNZKKqM-654IWDpPWthWLPbGrCPCqQXJnOF0wCfBkFDEb7VSd0nVReNFoGVAYIGE5KgqFQ3WqMpRCqLC4-C-3ZO1I4R7CIDwfBNmB03cOvy4C_-WqaDhVdi5PGDMagQ3WDEdVVzKN-TM4Uwaw4hOidV9xnWrK-NTxcsDTG00NOhotn5i-GDveavdHVAbJrIvJyAwkwxbN88jz5DB-2DDJQW5gRT5ufZl9Th6tZXq2IGpF6eTGIvXDQYBng1D9Sg55Jl_Wt4IT1mRiLH2vlJ-A3cDCaBBJj3-bvu6Bke_GX9MBkdFdH-0lDKhmiHV7pZQD_c3CMtO1KXHktEs5a208mFW-rjSva-DG9laNVx8srdfq-74kjCplUQzbYC13S9-d7L9FB2_3jop95zCADPlwDqz2MuN60DhCJviFn_7USBoQmIcC4pNZalJNckOys3_BLZLNeco6I5gu9PN8gAA

правильная конфигурация?

1 Ответ

0 голосов
/ 15 апреля 2020
  1. Здесь contextAccessor.HttpContext.GetTokenAsync("TestRest", "access_token") вы просите access_token, а не id_token. Если вам нужно id_token - введите id_token вместо access_token
  2. Используйте официальное расширение от Microsoft AddAzureAD
  3. Если вам нужно access_token, чтобы потреблять некоторые Azure сервисы, такие как GraphAPI - вы можете обменять код авторизации на access_token, используя ADAL library . Проверьте этот образец для получения подробной информации https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/tree/master/2-WebApp-graph-user/2-2-TokenCache

id_token используется вашим приложением для входа в систему пользователя.

access_token позволяет вашему приложению потреблять другой сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...