如何在Azure Active Directory登录阶段禁用“选择账户”提示强制输入凭证
禁用Azure Active Directory登录阶段选择账户提示的实现方案
可以通过修改认证请求参数、调整Azure AD会话配置两种方式实现强制用户每次登录手动输入凭证、跳过账户选择页,具体操作如下:
方法1:修改身份认证请求参数(灵活度最高,针对单应用)
- 向OAuth2、OpenID Connect或SAML认证请求中追加
prompt=login参数,该参数会强制Azure AD忽略当前用户的已登录会话,直接跳转至凭证输入页面,不会展示已保存账户的选择列表。 - 请求示例(OAuth2.0授权码流):
原始授权请求:
https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize?client_id={client-id}&response_type=code&redirect_uri={redirect-uri}&scope={scope}
追加参数后请求:https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize?client_id={client-id}&response_type=code&redirect_uri={redirect-uri}&scope={scope}&prompt=login
方法2:调整Azure AD会话配置(无需修改代码,支持全局/单应用生效)
单应用配置
- 对于Azure AD注册的企业应用、SAML应用,进入应用管理页的身份验证板块,找到会话设置项,开启每次访问时强制重新身份验证选项,将应用级别的身份验证会话生存期设置为零,即可要求用户每次访问该应用时都手动输入凭证。
租户全局配置
- 进入Azure AD门户的安全性 > 身份验证方法 > 身份验证会话管理页面,配置租户全局的会话策略,禁用持久登录会话、强制每次登录都需要验证凭证,该配置会对租户下所有关联的应用生效。
注意事项
- 如果请求中同时传入
prompt=select_account和prompt=login参数,prompt=login优先级更高,会直接跳过账户选择页。 - 该配置默认不会阻断Windows集成认证、Windows Hello for Business、FIDO2安全密钥等无密码/SSO认证方式的自动认证逻辑,如需禁用这类自动登录能力,需要单独修改对应认证方式的策略规则。
内容的提问来源于stack exchange,提问作者M. Rodella
相关产品推荐
相关产品推荐

