请描述在 .NET 平台上,集成 IdentityServer 来支持 OAuth 2.0 授权框架和 OpenID Connect 身份层的关键步骤与配置要点。
考察说明
考查对 IdentityServer 在 .NET 中实现 OAuth 2.0 与 OpenID Connect 的掌握程度,包括配置流程、核心概念与安全保障。
回答思路
- 【回答框架 1】IdentityServer 是一个中间件库,用于在 .NET 应用中添加认证与授权。它实现 OAuth 2.0 和 OpenID Connect,支持多种授权类型,如客户端凭证、密码、授权码等。
- 【回答框架 2】配置步骤:先安装 IdentityServer 包,在 Startup 中通过 AddIdentityServer 注册服务,配置客户端、资源和签名凭据,然后 UseIdentityServer 启用中间件。
- 【回答框架 3】需要定义客户端(Client)和 API 资源(ApiScope),以及身份资源(IdentityResource)如 Profile 或 OpenID。客户端需指定允许的授权类型和重定向 URI。
- 【回答框架 4】对于 OpenID Connect,需添加身份资源并设置客户端允许的 scope 包含 openid,以实现用户身份认证。使用授权码模式需配置重定向到登录页及回调。
- 【回答框架 5】安全要点:签名凭据必须用于生产,使用 AddDeveloperSigningCredential 仅限开发。强化 token 过期策略和 HTTPS 通信,防止 token 泄露。
- 【关键点 1】IdentityServer 支持 OAuth 2.0 与 OpenID Connect,通过配置客户端、资源和签名凭据实现。
- 【关键点 2】授权码流程需配置客户端重定向 URI 和用户登录页,结合身份资源提供用户身份信息。
- 【关键点 3】生产环境必须使用持久化签名凭据,并启用 HTTPS 保护 token 传输安全。
- 【易错点 1】不可将依赖注入生命周期的服务用于静态配置对象,避免状态冲突。
- 【易错点 2】授权码流程必须正确设置 redirect_uri,否则回调匹配失败。
- 【易错点 3】签名凭据若使用开发密钥,生产环境会引发安全风险。