You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现非Azure环境下Ubuntu笔记本的AAD登录认证?

如何在漫游Ubuntu笔记本上实现AAD身份认证

可以在任意Linux设备(包括漫游Ubuntu笔记本)上实现Azure Active Directory (AAD)身份认证,无需依赖Azure托管虚拟机或本地AD域服务器。以下是两种可行方案:

方案1:通过SSSD集成AAD(支持离线登录)

此方案适合漫游设备,SSSD可缓存用户凭证,允许无网络时登录。

  1. 准备AAD信息

    • 确认你的AAD用户账户拥有设备登录权限(可通过Azure门户的设备管理策略配置)
    • 记录你的AAD租户域名(例如contoso.onmicrosoft.com)
  2. 安装依赖包

    sudo apt update && sudo apt install sssd sssd-tools libnss-sss libpam-sss adcli
    
  3. 配置SSSD

    • 创建并编辑/etc/sssd/sssd.conf,替换占位符为你的实际信息:
      [sssd]
      services = nss, pam, ssh
      config_file_version = 2
      domains = YOUR_AAD_DOMAIN
      
      [domain/YOUR_AAD_DOMAIN]
      id_provider = ad
      auth_provider = ad
      access_provider = ad
      ad_domain = YOUR_AAD_DOMAIN
      ad_server = login.microsoftonline.com
      ad_hostname = $(hostname)
      cache_credentials = True
      krb5_store_password_if_offline = True
      use_fully_qualified_names = False
      fallback_homedir = /home/%u
      default_shell = /bin/bash
      
    • 设置文件权限:
      sudo chmod 600 /etc/sssd/sssd.conf
      
  4. 配置系统认证组件

    • 编辑/etc/nsswitch.conf,确保以下行包含sss:
      passwd:         files systemd sss
      group:          files systemd sss
      shadow:         files sss
      
    • 运行sudo pam-auth-update,勾选SSSD选项后保存退出
  5. 加入AAD域并重启服务

    sudo adcli join --domain YOUR_AAD_DOMAIN --user YOUR_AAD_USERNAME
    sudo systemctl restart sssd
    

    执行时输入你的AAD用户密码即可完成域加入。

  6. 验证登录
    尝试切换到AAD用户账户:

    su - YOUR_AAD_USERNAME
    

    首次登录后凭证会被缓存,离线状态下也可正常登录。

方案2:使用Microsoft Authenticator PAM模块(仅在线登录)

若无需离线登录支持,可直接通过OAuth2认证到AAD。

  1. 安装PAM模块

    sudo apt install libpam-msal
    
  2. 配置AAD应用与PAM

    • 在Azure门户注册一个原生应用,获取tenant_id和client_id,并设置重定向URI为msal://auth
    • 编辑/etc/pam.d/common-auth,在顶部添加:
      auth sufficient pam_msal.so tenant_id=YOUR_TENANT_ID client_id=YOUR_CLIENT_ID
      
  3. 验证登录
    下次登录时,系统会提示你打开Microsoft Authenticator应用扫描二维码,完成验证后即可登录。

注意事项

  • 优先选择方案1用于漫游设备,避免无网络时无法登录
  • 建议使用Ubuntu 20.04及以上版本,SSSD对AAD的集成支持更稳定
  • 可通过Azure AD的条件访问规则限制允许登录设备的用户范围

内容的提问来源于stack exchange,提问作者kristjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:50:24