1.管理员控制台
部署完Syncope后,访问protocol://host:port/syncope-console
即可打开管理页面。比如使用docker部署如下
test@root:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
890432da5eec apache/syncope-console:2.1.8 "/sbin/startup.sh" 2 weeks ago Up 30 hours 0.0.0.0:28080->8080/tcp syncope_syncope-console_1
98770264f19f apache/syncope-enduser:2.1.8 "/sbin/startup.sh" 2 weeks ago Up 30 hours 0.0.0.0:38080->8080/tcp syncope_syncope-enduser_1
0bf035b6869e apache/syncope:2.1.8 "/sbin/startup.sh" 2 weeks ago Up 30 hours 0.0.0.0:18080->8080/tcp syncope_syncope_1
可以访问http://localhost:28080/syncope-console/
1.1.页面
仪表盘
仪表盘提供了syncope全局的总揽。
域
Realm页面为管理员提供了管理域以及用户、群组和对象的能力。
拓扑
Totology页面提供了连接对象和外部资源之间的映射视图。
点击不同的节点时,会有不同的操作。
报告
Reports页面展示了一系列报告的配置。也允许管理员创建和修改报告配置。
配置
配置页允许管理员根据组织需要定义配置项。
Audit
审计配置
Logs
可以动态调整日志级别
Notifications
管理通知。也允许创建或编辑通知模板
Parameters
展示一系列的配置参数,比如token.expireTime、password.cipher.algorithm等。也可以添加新的参数。
Policies
管理账户、密码以及拉取政策
Roles
展示、编辑角色功能
Security Questions
用于设置一系列的安全问题共用户选择,用于用户忘记密码的情况。
批准
下图展示了自主注册的批准样例以及典型的批准流程:
批准通知
批准申请
批准管理
批准表单
审查修改
批准修改
拓展
拓展配置动态的报告导航菜单:每项拓展生成一页或多页页面以及多个组件。
2.用户终端
访问protocol://host:port/syncope-enduser/
即可使用用户终端。
比如这里用docker部署,即可访问 http://192.168.50.113:38080/syncope-enduser/
。
终端用户应用提供基于web的自主注册、自主服务以及密码重置应用。
通常,组织会深度定制用户系统,不仅在外观上,而且往往在后端的实际机制上,以便最适合其流程和流程。
所以用户终端的前端采用AngularJS编写,便于拓展和定制。
3.命令行工具
略
4.RESTful 服务
Syncope所有的Core服务都可以同多RESTful服务访问。
基本路由:
protocol://host:port/syncope/rest/
4.1.REST认证和授权
Core 服务的认证和授权基于Spring Security。
初始化时,认证使用HTTP头部:X-Syncope-Token获取JSON Web Token用于后续的请求。
使用初始交换的Token即可基于权限认证请求。
用户可以通过X-Syncope-Entitlements头部值查看授权,通过X-Syncope-Privileges头查看权限。
SecurityContext.xml中定义了相关的安全配置。
默认可以使用HTTP Basic Authentication
JWTSSOProvider
除了可以接受和认证JWB,Syncope还提供了JWTSSOProvider接口以处理第三方生成的JWT。
4.2.REST 头部
除了常用的Accept\Contetn-Type等,Syncope支持一些额外的HTTP头部。
X-Syncope-Token:认证成功后,在响应头返回,返回值是全局唯一的JWT,用于标记认证的用户。
X-Syncope-Token的值必须在之后的请求作为标注的Bear Authorization请求头的一部分携带,用于请求的认证。
例:
curl -I -u admin:password -X POST http://localhost:9080/syncope/rest/accessTokens/login
returns
HTTP/1.1 204
X-Syncope-Token: eyJ0e..
which can then be used to make a call to the REST API
curl -I -H "Authorization: Bearer eyJ0e.." http://localhost:9080/syncope/rest/users/self
token的有效期可以通过jwt.lifetime.minutes配置。
X-Syncope-Domain:可以在请求头中携带,用于选择目标域名,如果没有则默认为Master。所有的响应中都会返回这一头部。
X-Syncope-Key and Location:创建实体(用户、群组、模型、外部资源…)时,这两个头部会分别返回,并标识新REST资源的绝对URI。
X-Application-Error-Code and X-Application-Error-Info:如果请求的操作有错,则会通过这两个头部返回错误码或错误详情。
X-Syncope-Null-Priority-Async:如果请求头中设置这个值为true,则,该请求在与未设置优先级的外部资源通信时,不会等待完成。
Prefer and Preference-Applied:某些REST终端允许通过Prefer头部请求明确的行为。当指定了Prefer头部,响应头将包含Preference-Applied,并把值设置为有效的首选项。
return-content/return-no-content:REST终端在创建、更新或删除用户、群组以及其他对象时默认在相应中返回实体信息。
如果不需要这些信息,可以设置Prefer请求头为return-no-content。
在需要避免响应非必要数据的场景中使用 Prefer: return-no-content请求头。
respond-async:Batch终端可以请求异步处理。
ETag, If-Match and If-None-Match:当响应中有用户、群组以及其他对象时,会包含ETag相应头,标记对象最后一次修改时间。
如果后续请求需要更新相同的实体,可以通过If-Match或If-None-Match头部携带ETag的值。
ETag和If-Match的组合使用可用于乐观并发。
X-Syncope-Entitlements:使用GET方法和/user/self端点交互时,会返回X-Syncope-Entitlements响应头展现当前用户所有的授权。
X-Syncope-Privileges:使用GET方法和/user/self端点交互时,会返回X-Syncope-Privileges响应头展现当前用户所有的权限。
4.3.Batch
Batch请求将多个操作组合在一个请求中。
批处理请求指 Multipart MIME v1.0 message,一种标准格式,允许在单个请求中表示多个部分,每个部分可能具有不同的内容类型(比如JSON、YAML或XML)。
批处理请求通过POST方法向/batch端点请求,通过GE