以下对OIDC主要的术语进行说明,并与OAuth2作相关对比。
- EU End-User, 指用户(一般指有账号的个体,资源的拥有者)
- RP Relying Party, 信任方(一般是一个软件应用), 理解为OAuth2中的客户端(client)即可, 需要在OP中注册
- OP OpenID Provider, 能提供对EU进行认证的服务端(可理解为OAuth2中授权服务端),
提供RP的注册(或管理)能力,EU管理,ID Token的签发与管理等。OIDC中的核心组件。
OIDC-Server 就是一个OP的参考实现 - ID Token 格式为JSON Web Token(JWT),
包含EU认证授权信息等. 有关JWT请访问 https://jwt.io/除了JWT, 知道以下概念对掌握OIDC会很有帮助
JSON Web Key(JWK),
JSON Web Encryption(JWE),
JSON Web Algorithm(JWA),
JSON Web Signature(JWS) - UserInfo Endpoint EU信息接口(OAuth2保护), 在RP获取到
access_token
后,可调用此接口获取EU的详细信息.
OIDC要求此接口必须使用https访问(更安全);一般在OP中提供的Discovery中获取 - Claim EU信息的载体, 可在
id_token
中获取,主要包括认证信息与授权信息,可根据实际扩展 - 查看完整术语定义请访问 https://openid.net/specs/openid-connect-core-1_0.html#Terminology
OIDC协议中抽象了一个主要的操作步骤与流程示意图,如下:
下面以AWS提供的OIDC服务来举例说明。 假设你现在有一个应用A想集成使用AWS的OIDC服务,在实现OIDC之前需要先做几件事
- 应用A(RP)先去AWS(OP)中注册一个应用并获取对应的client_id, client_secret,public key等信息( 一般这步骤是开发者去完成)。注册时一般需要提供应用名称,redirect_uri等信息。
- 根据AWS提供的实现文档进行应用A(RP)的集成(也是开发者完成)。
OIDC流程在此示例中的关系图如下:
结束。
详细完整的使用请访问 MyOIDC: https://gitee.com/mkk/MyOIDC。