如何使用令牌验证webapp

时间:2017-12-07 18:37:54

标签: c# asp.net-mvc-4 authentication azure-web-app-service asp.net-authorization

我正在尝试创建一个webtest,它将使用令牌和加载网页对网站进行身份验证。

由于webtest无需任何手动交互即可运行,因此无法登录。因此我尝试使用令牌进行身份验证。

但是,由于网站使用活动目录,因此在通过浏览器访问时使用UseOpenIdConnectAuthenticationUseCookieAuthentication进行身份验证。

有没有办法像这样创建一个webtest?

1 个答案:

答案 0 :(得分:1)

  

我正在尝试创建一个webtest,它将使用令牌和加载网页对网站进行身份验证。

     

但是,由于网站使用活动目录,因此当通过浏览器访问时,它使用 UseOpenIdConnectAuthentication UseCookieAuthentication 进行身份验证。

根据您的描述,我假设您可以利用包Microsoft.Owin.Security.OpenIdConnectMicrosoft.Owin.Security.Cookies来保护您的应用程序使用OpenId Connect和Azure AD。

假设您的网站由Azure网络应用托管,我假设您可以利用Authentication and authorization in Azure App Service并配置Authenticate with Azure AD,而不是在代码中手动使用中间件。但您可以检查代码中的当前环境并使用中间件在本地进行身份验证。

为了从azure web app获取经过身份验证的令牌,您可以通过浏览器访问以下URL以进行日志记录:

https://{your-app-name}.azurewebsites.net/.auth/login/aad

记录后,您将被重定向到网址,如下所示:

https://{your-app-name}.azurewebsites.net/.auth/login/done#token={token}

您可以URL Decode上述token,检索authenticationToken作为经过身份验证的令牌,以便按如下方式访问您的azure网络应用:

https://{your-app-name}.azurewebsites.net/xxx/xxx
Header: x-zumo-auth:{authenticationToken}

注意: authenticationToken将在一小时后过期。

此外,对于Azure Active Directory,您还可以将id_tokenaccess_token直接包含在Authorization标头中作为承载令牌,如下所示:

https://{your-app-name}.azurewebsites.net/xxx/xxx
Header: Authorization:Bearer {id_token or access_token}

注意:要在记录后检索id_tokenaccess_token,您可以通过浏览器访问以下网址:

https://{your-app-name}.azurewebsites.net/.auth/me
相关问题