现在,我可以注销Identity Server。但是,当重新登录时,我可以选择我的电子邮件地址-无需重新输入密码-通过Google访问我的应用程序。 我想重新输入密码(因为该设备在多个用户之间共享)。我遵循了documentation,但是我必须缺少一些东西。
(我正在使用MVC客户端进行测试) 这是客户端的配置:
{
"Enabled": true,
"EnableLocalLogin": false,
"ClientId": "backOffice.mvc",
"ClientName": "BackOffice client",
"ClientSecrets": [
{
"Value": "xxx"
}
],
"AllowedGrantTypes": [
"hybrid"
],
"AllowedScopes": [
"openid",
"offline_access",
"profile"
],
"RedirectUris": [
"http://localhost:5098/signin-oidc"
],
"PostLogoutRedirectUris": [
"http://localhost:5098/"
],
"RequireConsent": false,
"AllowOfflineAccess": true
}
以及提供者设置:
.AddOpenIdConnect("Google", "Google", options =>
{
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
options.ForwardSignOut = IdentityServerConstants.DefaultCookieAuthenticationScheme;
options.Authority = "https://accounts.google.com/";
options.ClientId = Configuration["GoogleClientId"];
options.CallbackPath = "/signin-google";
options.Scope.Add("email");
})
非常感谢您的帮助!如果您需要更多信息,请告诉我:)
答案 0 :(得分:0)
不幸的是,Google不会通过end_session
来发布https://accounts.google.com/.well-known/openid-configuration
端点,因此,不可以选择退出前渠道。
但是,您可以在授权端点请求中提供附加的prompt=login
参数,以强制进行交互式身份验证。您可以通过检查auth_time
声明是否适当来在客户中强制执行此操作。