【问题标题】:How to authenticate webapp using token如何使用令牌对 webapp 进行身份验证
【发布时间】:2018-05-21 22:46:37
【问题描述】:

我正在尝试创建一个 webtest,它将使用令牌验证网站并加载网页。

由于 webtest 将在没有任何手动交互的情况下运行,我无法登录。所以我正在尝试使用令牌进行身份验证。

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

有没有办法创建这样的网络测试?

【问题讨论】:

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


【解决方案1】:

我正在尝试创建一个 webtest,它将使用令牌验证网站并加载网页。

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

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

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

为了从 azure web 应用程序中获取经过身份验证的令牌,您可以通过浏览器访问以下 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 Web 应用程序,如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2019-03-10
    • 2022-01-05
    相关资源
    最近更新 更多