身份提供者引用
把外部 OIDC 身份源(Keycloak、Okta、Azure AD、GitHub 等)登记进 IPA,用户通过设备授权流程登录并取得 Kerberos 票据。
本页说明 Authentication 下的 Identity Provider references 页面。身份提供者引用是一个外部 OAuth 2.0 或 OIDC 服务端的登记信息。用户认证类型勾选 External Identity Provider 并指定引用后,登录走设备授权流程(RFC 8628):客户端显示一段 URL 和一次性码,用户在浏览器里到 IdP 完成登录,KDC 轮询 IdP 确认后签发票据,票据带 idp 认证指示器。不受许可模块限制。

适用场景:用户主身份在 SaaS IdP,IPA 只管理 Linux 主机;或者把公司 SSO 的 MFA 复用到 ssh 登录。不适用于无人值守的服务账号,流程需要有人操作浏览器。
字段

| 字段 | 含义 |
|---|---|
| Identity Provider reference name | 本地名字,用户认证配置里引用它 |
| Client identifier、Secret | 在 IdP 上注册的 OAuth 客户端。IdP 必须允许 device authorization grant |
| Scope | 请求的 scope,默认 openid email |
| External IdP user identifier attribute | 用 IdP 返回的哪个声明匹配 IPA 用户,默认 email。IPA 用户的邮箱必须与之一致 |
| Authorization URI、Device authorization URI、Token URI、User info URI | 端点。命令行的 --provider= 模板(keycloak、okta、google、github、microsoft)自动填写;界面添加时手工填写 |
| JWKS URI、Issuer URL | 校验 ID token 使用 |
用模板添加:
ipa idp-add keycloak-sso --provider=keycloak --client-id=idmatrix \
--org=<realm> --base-url=https://sso.example.com/auth --secret在用户上启用
在用户详情页的 User authentication types 勾选 External Identity Provider,在 External IdP configuration 选择引用、填写 IdP 侧的用户标识(与 External IdP user identifier attribute 对应的值)。可以与 Password 同时勾选,任一方式都能登录。
客户端要求
除 sssd 2.7 及以上和 krb5-pkinit 外还需要 sssd-idp;ipa-client-install 4.10 及以上自动安装。ssh 登录时终端显示:
Authenticate at https://sso.example.com/auth/realms/rst/device?user_code=ABCD-EFGH and press ENTER.边界
| 事项 | 说明 |
|---|---|
| 用户存在性 | 首次登录前 IPA 用户必须已存在,IdP 不会自动创建用户 |
| 登录入口 | 图形登录(gdm)和管理台登录页不支持该流程,只有 ssh、kinit、终端登录支持 |
| IdP 不可达 | 用户无法登录,没有离线缓存 |