如何用Postman登录配置Azure AD(SAML)的网站?
首先明确:基础认证(Basic Authentication)大概率不适用——你的网站是Azure AD SAML SSO架构,但清除Cookie后支持表单式邮箱密码登录,这类场景通常是通过POST表单提交凭证,而非Basic Auth那种把用户名密码Base64编码放在请求头的方式。以下是具体操作流程:
1. 抓包获取登录接口与参数
打开浏览器开发者工具(按F12),清除所有Cookie后正常完成一次邮箱密码登录,在「Network」面板中找到登录时发起的POST请求:
- 记录请求的URL(比如
https://your-site.com/login) - 查看「Headers」标签,复制
Content-Type(通常是application/x-www-form-urlencoded)、User-Agent等关键请求头 - 查看「Form Data」标签,记录所有提交的参数:包括邮箱、密码对应的字段名(比如
email/password),以及可能存在的防CSRF令牌(比如__RequestVerificationToken、csrf_token这类隐藏字段)
2. 在Postman中配置登录请求
- 新建一个POST请求,填入抓包到的登录URL
- 在「Headers」选项卡中,添加抓包到的关键请求头(比如
Content-Type、User-Agent,避免被网站识别为非浏览器请求) - 在「Body」选项卡中:
- 如果抓包显示是
application/x-www-form-urlencoded,就选「x-www-form-urlencoded」格式,填入所有记录的参数(邮箱、密码、CSRF令牌等) - 如果是
multipart/form-data,就选对应格式填入参数
- 如果抓包显示是
3. 处理CSRF令牌(若存在)
如果登录请求需要CSRF令牌:
- 先在Postman中发送一个GET请求到网站的登录页面(比如
https://your-site.com/login) - 在响应的HTML中找到CSRF令牌的值(可以用浏览器查看页面源码搜索,或者在Postman的「Tests」脚本中自动提取,示例脚本:
// 从HTML响应中提取__RequestVerificationToken const token = pm.response.text().match(/name="__RequestVerificationToken" value="(.*?)"/)[1]; pm.environment.set("csrfToken", token); - 把提取到的令牌值替换到POST请求的Body参数中(可以用环境变量
{{csrfToken}}自动填充)
4. 验证并保存会话Cookie
发送POST登录请求后:
- 查看响应状态码(通常200或302跳转),以及响应头中的
Set-Cookie字段,确认网站返回了会话Cookie - Postman会自动保存这些Cookie,后续请求会自动带上。你可以在Postman顶部的「Cookies」按钮中查看已保存的Cookie
5. 验证登录有效性
发送一个需要登录才能访问的请求(比如网站的用户信息页面或API),如果响应返回正常内容而非跳转登录页,说明会话Cookie有效,可将此Cookie配置到第三方应用中。
内容的提问来源于stack exchange,提问作者Chris1582
相关产品推荐
相关产品推荐

