如何在自托管服务器的某些条件下跳过基本身份验证?
How to skip Basic Authentication on certain conditions in self-hosted server?
- 我有一个 ASP.NET Web 应用程序,我们称它为 Web 应用程序 A,它是使用 OWIN 和 NancyFX 自托管的。
- Web 应用程序 A 使用基本身份验证,在 CustomBootstrapper.cs 中设置如下:
pipelines.EnableBasicAuthentication(new BasicAuthenticationConfiguration(
container.Resolve<IUserValidator>(),
"MySpecificRealm"));
- 在向用户查询用户名和密码后,Web 应用程序 A 调用身份验证 REST API 来验证凭据和 return 安全令牌(如果它们有效)。
- 当在 URL 中指定有效的安全令牌而不是提示输入凭据时,我被要求制作该应用程序的一个子集,我们称这个子集为 Web 应用程序 B。
- 下图可能有助于解释这一点:
- 按照惯例,Web 应用程序 A 中有各种模块调用:
this.RequiresAuthentication();
当在 URL 中将有效的安全令牌作为参数传递时,如何绕过身份验证?
- 您需要将参数添加到配置文件或使用条件编译符号。这些中的任何一个都会设置一个标志,然后您可以检查该标志以绕过管道中基本身份验证的连接,可能还有 this.RequiresAuthentication().
- 对于那些需要身份验证的 Nancy 模块,将必需的 URL 参数添加到调用方提供安全令牌的传入请求中。
- 您将需要 REST API 调用来验证安全令牌,并且您需要调用它并接收回用户名,以便创建您的 IUserIndentity。
- 我有一个 ASP.NET Web 应用程序,我们称它为 Web 应用程序 A,它是使用 OWIN 和 NancyFX 自托管的。
- Web 应用程序 A 使用基本身份验证,在 CustomBootstrapper.cs 中设置如下:
pipelines.EnableBasicAuthentication(new BasicAuthenticationConfiguration(
container.Resolve<IUserValidator>(),
"MySpecificRealm"));
- 在向用户查询用户名和密码后,Web 应用程序 A 调用身份验证 REST API 来验证凭据和 return 安全令牌(如果它们有效)。
- 当在 URL 中指定有效的安全令牌而不是提示输入凭据时,我被要求制作该应用程序的一个子集,我们称这个子集为 Web 应用程序 B。
- 下图可能有助于解释这一点:
- 按照惯例,Web 应用程序 A 中有各种模块调用:
this.RequiresAuthentication();
当在 URL 中将有效的安全令牌作为参数传递时,如何绕过身份验证?
- 您需要将参数添加到配置文件或使用条件编译符号。这些中的任何一个都会设置一个标志,然后您可以检查该标志以绕过管道中基本身份验证的连接,可能还有 this.RequiresAuthentication().
- 对于那些需要身份验证的 Nancy 模块,将必需的 URL 参数添加到调用方提供安全令牌的传入请求中。
- 您将需要 REST API 调用来验证安全令牌,并且您需要调用它并接收回用户名,以便创建您的 IUserIndentity。