【发布时间】:2019-09-07 11:46:17
【问题描述】:
最近刚开始使用 IdentityServer4 (IS4) 玩弄样本等等。
我有一个运行 IS4(使用包含的示例 UI MVC)的设置,将 Google 配置为外部提供程序。我也有一个 API 设置,以及一个客户端(MVC Web 应用程序)。进行身份验证时,用户在“外部登录”部分单击“Google”,他/她将按预期重定向到 Google。但是,在提供用户名和密码后,我希望看到 Google 同意屏幕,但我被重定向回 IS4 中的同意屏幕。这是为什么?最终用户是否应在明显来自 Google 的页面(即 HTTPS 和 Google 证书)上不同意他/她的 Google 个人资料信息正在被访问?
我承认,由于我还需要用户同意才能访问我的 API,我最终可能会看到 2 个同意屏幕(一个用于来自 Google 的个人资料信息,另一个用于通过我自己的 IS4 配置访问 API),但如果我我的设置中没有 API,只是想在联合设置中使用 IS4 来提供 ID 令牌,我不需要我自己的 API 的同意,因此只希望看到我的外部提供商的同意屏幕(例如 Google、Facebook、Twitter 等)。
我的外部提供商配置如下:
services.AddAuthentication()
.AddGoogle("Google", options =>
{
options.ClientId = "<my client id>";
options.ClientSecret = "<my client secret>";
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
});
有人可以告诉我:-)
谢谢
【问题讨论】:
标签: oauth-2.0 identityserver4 google-authentication openid-connect