
使用 Authelia OpenID Connect 1.0 为 1Password 配置 SSO 单点登录【免费下载链接】autheliaThe Single Sign-On Multi-Factor portal for web apps. OpenID Certified™ and Post-Quantum Cryptography Ready.项目地址: https://gitcode.com/GitHub_Trending/au/authelia本篇指南完整讲解如何将密码管理器 1Password 注册为 Authelia OpenID Connect 1.0 Provider 的客户端实现通过 Authelia 完成 1Password 的企业 SSO 登录。读完本文后你将掌握在configuration.yml中为 1Password 配置公开客户端public client、强制 PKCE、关闭 token 签名等关键参数的方法并能在 1Password Web GUI 中完成身份提供方IdP接入的完整操作。适用版本与环境假设本文对应的集成方案在以下版本组合下经过验证Autheliav4.39.241Password通过 Web GUI 接入通用 SSO 配置方式本示例基于以下两个假设实际部署时请替换为你的真实值Authelia 根地址Root URLhttps://auth.example.com/即subdomain-authelia为auth、domain为example.comClient ID1password在文档站中部分取值如子域名与域名可通过站点变量sitevar自动替换部署时只需维护一处变量定义。开始前的关键注意点在配置任何 OpenID Connect 1.0 注册客户端之前有几个通用要点需要确认对应仓库中的 oidc-common 短代码模板client_id 必须是唯一值本文中的1password仅为可读性与演示目的生产环境应使用随机生成的长字符串建议 64 个随机字符且只能包含 RFC3986 Unreserved Characters长度不超过 100 字符。client_secret 与本场景无关1Password 接入使用的是公开客户端类型public: true不需要也不应配置client_secret。下方 Authelia 配置示例只包含客户端注册部分你必须同时完成 OpenID Connect 1.0 Provider 配置 中的必填项如签发者、密钥、存储等。示例只展示了部分可用选项完整选项清单请参考 OpenID Connect 1.0 客户端配置。Authelia 端配置注册 1Password 客户端在 Authelia 的configuration.yml中于identity_providers.oidc.clients下新增如下客户端配置identity_providers: oidc: ## The other portions of the mandatory OpenID Connect 1.0 configuration go here. ## See: https://www.authelia.com/c/oidc clients: - client_id: 1password client_name: 1Password public: true authorization_policy: two_factor require_pkce: true pkce_challenge_method: S256 redirect_uris: - # See step 5 below. scopes: - openid - email - profile response_types: - code grant_types: - authorization_code access_token_signed_response_alg: none userinfo_signed_response_alg: none token_endpoint_auth_method: none配置项逐项解析下面对上例中的每个关键选项做深入说明语义以 客户端配置文档 与源码为准配置项取值含义与说明client_id1password客户端唯一标识必须与 1Password 侧填写的 Client ID 完全一致。client_name1Password展示在 Authelia UI 上的友好名称默认与 ID 相同。publictrue启用公开客户端类型。适用于无法安全保管凭据的客户端如 SPA、CLI 工具、本场景的第三方 IdP 接入方。启用后client_secret必须留空。authorization_policytwo_factor该客户端的授权策略要求用户完成双因素认证后才能完成授权。可选one_factor、two_factor或 provider 级authorization_policies中自定义的策略名。require_pkcetrue强制该客户端使用 PKCEProof Key for Code Exchange流程防止授权码被截获后重放。pkce_challenge_methodS256强制使用S256挑战方法强烈推荐。该选项本身也会隐式启用require_pkce。redirect_uris由第 5 步回填允许该客户端回调的 URI 白名单大小写敏感未在列表中的回调会被视为不安全并拒绝授权。初始为空字符串需在 1Password Web GUI 中获取其生成的 Redirect URIs 后回填。scopesopenid、email、profile允许该客户端申请的 scope 集合对应 ID Token / Userinfo 中可携带的声明。response_typescode只允许授权码Authorization Code响应类型这是文档站强烈推荐的最安全方式。grant_typesauthorization_code允许该客户端使用的授权类型本例仅开放标准授权码流程。access_token_signed_response_algnoneAccess Token 不进行 JWS 签名即保持 Authelia 默认的不透明令牌形式1Password 无需解析 JWT 格式的 Access Token。userinfo_signed_response_algnoneUserinfo 端点返回普通 JSON 文档而非签名 JWT。token_endpoint_auth_methodnoneToken 端点客户端认证方式为无——因为 1Password 作为公开客户端不携带 client secret因此不适用client_secret_basic/client_secret_post等认证方式。源码侧的关键事实上述默认值与取值范围在源码中有直接对应。在 internal/configuration/schema/identity_providers.go 中access_token_signed_response_alg与userinfo_signed_response_alg的 schema 默认值均为none可取值包括none、HS256、RS256、ES256、PS256、Ed25519兼容EdDSA以及ML-DSA-44/65/87等其中 ML-DSA 系列对应本项目Post-Quantum Cryptography Ready的后量子签名能力。token_endpoint_auth_method的默认值为client_secret_basic可取值包含none、client_secret_post、client_secret_basic、private_key_jwt、client_secret_jwt。1Password 集成中显式设置为none即覆盖默认值。全局 schema 默认值同时定义在 internal/configuration/schema/identity_providers.goAccessTokenSignedResponseAlg: none、UserinfoSignedResponseAlg: none并在 config.template.yml 中有完整的可参考示例模板。从源码结构可以推断当public: true时校验器会要求client_secret为空并且token_endpoint_auth_method只能为none或其他不依赖共享密钥的方式若配置了与公开客户端矛盾的凭据方式配置校验将失败并给出错误提示。1Password 端配置通过 Web GUI 接入配置 1Password 仅有一种方式使用其 Web GUI。请按以下步骤操作登录 1Password 的 SSO 身份提供方配置页面start.1password.com/policies/sso/configure-idp。在身份提供方列表中选择Other点击Next。在身份提供方列表中再次选择Other。配置以下选项Client ID1passwordWell-known URL发现端点https://auth.example.com/.well-known/openid-configuration该 Well-known URL 指向 Authelia 的 OpenID Connect 1.0 发现文档1Password 将据此自动获取授权端点、Token 端点、Userinfo 端点及支持的算法等元数据。复制页面列出的Redirect URIs将其逐条回填到 Authelia 配置中该客户端的redirect_uris列表即上文 YAML 中留空的处随后重载 Authelia 配置使其生效。完成上述双向配置后1Password 用户即可在登录界面选择通过 Authelia 进行 SSO 认证认证成功后由 Authelia 校验账号密码并根据authorization_policy: two_factor要求二次因素再携带授权码换取令牌完成 1Password 的会话建立。配置后的验证要点发现端点可访问浏览器访问https://auth.example.com/.well-known/openid-configuration确认返回 JSON 中包含authorization_endpoint、token_endpoint等字段。回调白名单确认 1Password GUI 展示的全部 Redirect URIs 都已精确含大小写与路径写入redirect_uris否则授权请求会被 Authelia 拒绝。PKCE 生效在require_pkce: true与pkce_challenge_method: S256下1Password 的授权请求必须携带code_challenge否则 Token 换取失败——这也是公开客户端场景下的标准安全要求。日志排查若授权失败可结合 Authelia 日志中的错误信息核对client_id、redirect_uris与 Well-known URL 是否与 1Password 侧一致。延伸阅读OpenID Connect 1.0 集成介绍OIDC 基础概念、授权类型与响应类型说明。OpenID Connect 1.0 客户端配置完整文档本文所用全部客户端选项的权威参考含sector_identifier_uri、consent_mode、JARM、令牌加密等高级选项。OpenID Connect 1.0 Provider 配置identity_providers.oidc的必填与可选配置项。OpenID Connect 1.0 常见问题包含如何生成安全的 client identifier / client secret、哈希成本调优等实践建议。【免费下载链接】autheliaThe Single Sign-On Multi-Factor portal for web apps. OpenID Certified™ and Post-Quantum Cryptography Ready.项目地址: https://gitcode.com/GitHub_Trending/au/authelia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考