Аутентификация с помощью Google в веб-API и Swagger - PullRequest
1 голос
/ 13 апреля 2020

Я интегрировал приложение Web API c# с Swagger. Я уже реализовал AAD-аутентификацию, которая работает нормально. Теперь я хочу добавить Google аутентификацию. Я сделал код, как показано ниже.

SwaggerConfig.cs

 c.OAuth2("oauth2")
       .Description("Google Auth")
       .Flow("implicit")
       .AuthorizationUrl($"https://accounts.google.com/o/oauth2/v2/auth")
       .Scopes(scopes => scopes.Add("openid", "Sign you in permission"));

Startup.cs

app.UseExternalSignInCookie(Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ExternalCookie);
googleAuthOptions = new GoogleOAuth2AuthenticationOptions()
{
            ClientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
            ClientSecret = "xxxxxxxxxxxxxxxxxxxx",

};
app.UseGoogleAuthentication(googleAuthOptions);

I авторизуйтесь с экрана входа в систему Google и успешно перенаправьте обратно в пользовательский интерфейс. Но когда я пытаюсь получить доступ к любому методу, я получаю 401 Несанкционированную ошибку, даже если есть токен на предъявителя.
После аутентификации с помощью Google

Я знаю, что не проверял токен доступа в файл Startup.cs, потому что у меня нет знаний. Я просмотрел несколько статей со сложной реализацией, но я хочу добиться этого самым простым способом. Приведенный ниже код работает для AAD без дальнейшей проверки кода.

app.UseWindowsAzureActiveDirectoryBearerAuthentication(
                new Microsoft.Owin.Security.ActiveDirectory.WindowsAzureActiveDirectoryBearerAuthenticationOptions
                {
                    Tenant = Settings.AzureADTenant,
                    TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
                    {
                        ValidAudiences = new string[] { Settings.AzureADAudience, Settings.AzureAppURI },
                        ValidIssuers = new string[] {
                            $"https://sts.windows.net/{Settings.AzureADTenant}/",
                            $"https://login.microsoftonline.com/{Settings.AzureADTenant}/v2.0"
                        }
                    }
                });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...