跳到主要内容

身份提供者引用

把外部 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 不可达用户无法登录,没有离线缓存

本页内容