我正在尝试创建一个webtest,它将使用令牌和加载网页对网站进行身份验证。
由于webtest无需任何手动交互即可运行,因此无法登录。因此我尝试使用令牌进行身份验证。
但是,由于网站使用活动目录,因此在通过浏览器访问时使用UseOpenIdConnectAuthentication
和UseCookieAuthentication
进行身份验证。
有没有办法像这样创建一个webtest?
答案 0 :(得分:1)
我正在尝试创建一个webtest,它将使用令牌和加载网页对网站进行身份验证。
但是,由于网站使用活动目录,因此当通过浏览器访问时,它使用 UseOpenIdConnectAuthentication 和 UseCookieAuthentication 进行身份验证。
根据您的描述,我假设您可以利用包Microsoft.Owin.Security.OpenIdConnect和Microsoft.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_token
或access_token
直接包含在Authorization
标头中作为承载令牌,如下所示:
https://{your-app-name}.azurewebsites.net/xxx/xxx
Header: Authorization:Bearer {id_token or access_token}
注意:要在记录后检索id_token
或access_token
,您可以通过浏览器访问以下网址:
https://{your-app-name}.azurewebsites.net/.auth/me