OpenID Connect应用集成
本文介绍OpenID Connect应用如何与MaxKey进行集成。
认证流程
请参照OAuth2认证流程
应用注册
应用在MaxKey管理系统进行注册,注册的配置信息如下
集成和接口
用户属性接口/api/connect/v10/userinfo
通过访问token 获取登录用户信息及签名信息,在程序中必须验证相关的签名信息。
接口名称 | OIDC授权用户信息查询接口 |
---|---|
url | https://sso.maxkey.org/sign/api/connect/v10/userinfo |
请求方式 | http get/post |
请求参数
参数 | 说明 |
---|---|
access_token | 调用sso/ token获得的token值。 |
实际请求如下:
| |
返回数据/ response data | |
成功返回JSON数据,如下:
zhangs是认证的用户ID |
OAuth认证接口属性列表
属性名(Attribute) | 描述 | 数据类型 |
---|---|---|
uid | uid | 字符串 |
其他请参照OAuth2
OIDC V1客户端集成
本文使用JAVA WEB程序为例
引入依赖包
gson-2.2.4.jar
maxkey-client-sdk.jar
nimbus-jose-jwt-8.10.jar
commons-codec-1.9.jar
commons-io-2.2.jar
commons-logging-1.1.1.jar
认证授权
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ page language="java" import="org.maxkey.client.oauth.oauth.*" %>
<%@ page language="java" import="org.maxkey.client.oauth.builder.*" %>
<%@ page language="java" import="org.maxkey.client.oauth.builder.api.MaxkeyApi20" %>
<%@ page language="java" import="org.maxkey.client.oauth.model.Token" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+path+"/";
String callback="http://oauth.demo.maxkey.top:8080/demo-oauth/oauth20callback.jsp";
OAuthService service = new ServiceBuilder()
.provider(MaxkeyApi20.class)
.apiKey("ae20330a-ef0b-4dad-9f10-d5e3485ca2ad")
.apiSecret("KQY4MDUwNjIwMjAxNTE3NTM1OTEYty")
.callback(callback)
.build();
Token EMPTY_TOKEN = null;
String authorizationUrl = service.getAuthorizationUrl(EMPTY_TOKEN);
request.getSession().setAttribute("oauthv20service", service);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>OIDC V1 SSO</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<a href="<%=authorizationUrl%>&approval_prompt=auto">OIDC V1 SSO</a>
</body>
</html>