PostLogoutRedirectUris = { "https://yourclienthost:port/signout-callback-oidc" }
请问客户端配置的目的是什么
?
当我放置它时,IdentityServer 注销页面显示确认的注销消息并显示重定向回我的应用程序的链接。

当我省略它时,IdentityServer 显示确认的注销消息,但不显示重定向回我的应用程序的链接

无论选择什么,IdentityServer仍然将我注销。所以我很困惑该配置的作用。请帮忙澄清一下。非常感谢!
客户端配置中 PostLogoutRedirectUris 的目的是安全。
当客户端发起注销时,客户端会打开如下 URL:
请注意,客户端本身告诉 IdentityServer 在注销后重定向到哪里。这意味着客户端可能会欺骗 IdentityServer 以重定向到恶意 URI。这就是为什么在 IdentityServer 端使用 URI 白名单,称为PostLogoutRedirectUris. 该列表包含客户端所有可能的部署位置,例如
"PostLogoutRedirectUris": [
"https://localhost:44321/signout-callback-oidc",
"https://client/app/signout-callback-oidc", ...
]
Run Code Online (Sandbox Code Playgroud)
当客户端建议的回调URI不在白名单中时,则
IdentityServer 显示确认的注销消息,但不显示重定向回您的应用程序的链接
注销过程继续如下:
https://[identity-server]/Account/Logout?logoutId=ZZZhttps://client/app/signout-callback-oidc&id_token_hint=XXX&state=YYY&...)https://[identity-server]/connect/endsession/callback?endSessionId=TTThttps://client/app/signout-oidc?sid=SSS&iss=https://identity-server/signout-callback-oidc不执行任何操作(可能;我不知道它做了什么),但它重定向到主页。(*)IdentityServer 和客户端应用程序的注销已在步骤 5 中完成。/signout-callback-oidc与注销本身无关。它仅在客户端应用程序中提供一个登录页面,以便用户不会卡在 IdentityServer 中的页面上。
(*) 更准确地说,/signout-callback-oidc在客户端应用程序中重定向到options.SignedOutRedirectUri可以在 期间设置的位置AddOpenIdConnect()。默认情况下SignedOutRedirectUri == "/"。我更喜欢将该选项更改为"/Account/Login". 这样我在注销后就可以看到登录页面。
"/signout-callback-oidc"只是 的默认值options.SignedOutCallbackPath。您可以更改该路径,但没有任何好处。该路由由中间件自动注册并自动处理。您不能为该路线编写自己的控制器/操作。
| 归档时间: |
|
| 查看次数: |
4007 次 |
| 最近记录: |