Я хотел бы аутентифицировать некоторых пользователей, входящих в нашу организацию GSuite, и получить некоторую дополнительную информацию, такую как организационное подразделение или членство в определенной группе.
Я много пробовал вариантов, но многообещающий из здесь: Asp. Net Ядро входа в Google oauth ограничивает доступ и получает роли g-suite
app.UseGoogleAuthentication(new GoogleOptions()
{
Scope =
{ "https://www.googleapis.com/auth/admin.directory.domain.readonly",
"https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly"
},
ClientId = Configuration["Authentication:Google:ClientId"],
ClientSecret = Configuration["Authentication:Google:ClientSecret"],
Events = new OAuthEvents()
{
OnTicketReceived = e =>
{
var claims = e.Principal.Claims;
// Set breakpoint here and examine claims.
return Task.CompletedTask;
}
}
});
Я включил admin SDK & в конфигурации экрана согласия oAuth я добавил области https://www.googleapis.com/auth/admin.directory.domain.readonly
и https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly
(этот шаг показался неправильным)
Когда я вхожу в Google, меня просят подтвердить, что мое приложение должно иметь доступ к дополнительным утверждениям, но когда я проверяю утверждения в OnTicketReceived
, дополнительных утверждений нет.
Я также пытался добавить заявление на день рождения согласно https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/additional-claims?view=aspnetcore-3.1#how -в добавление -additional-custom-tokens но нет различий в утверждениях, которые я вижу.
Глядя на это: https://accounts.google.com/.well-known/openid-configuration кажется, что есть только очень маленькие количество претензий su pported