# FAuth   Falcon认证服务器

## 实现目标： 

一. 网站功能：    
> 1. 用户注册，填写用户信息。如用户名、密码、身份证号码等。   
> 2. 维护用户信息。   

二. 接口功能：   
> 1. 完成对各应用提交的用户密码进行认证，返回认证用户票据。  
> 2. 根据应用提供的票据返回登录用户信息。   
> 3. 通过票据修改用户信息。   
> 4. 通过票据修改用户密码。  

三. 名词定义：   
> 1. 应用系统：用户使用业务系统时使用的应用程序（例如公共卫生系统、HIS系统、医生站等）。   
> 2. 认证服务器：完成用户用户名密码认证和提供认证用户资料的服务器。  
> 3. 登录凭据：用户完成登录提供的相关信息。例如：用户名、密码等。   
> 4. 票据：用户认证成功后由认证服务器生成信息，代表一个已经登录的用户。   

四. 认证流程：用户登录时候使用此流程   
> 1. 当用户使用用户系统需要登录的时候，应用系统显示登录页面，用户输入用户名密码等信息组成登陆凭据。   
> 2. 应用系统将登录凭据发送至认证服务器。   
> 3. 认证服务器根据提供的登录凭据验证用户，返回认证结果，如果认证成功也同时返回认证票据。   
> 4. 应用系统根据认证结果授权用户资源访问并保存票据。
   
五. 应用跳转流程：当用户从一个应用跳转到另一个应用时候使用此流程    
> 1. 加入用户需要从应用A跳转至应用B，需要首先在应用A进行认证并拥有票据。   
> 2. 应用访问应用B资源并同时传送票据。   
> 3. B应用收到票据后将凭据发送至认证服务器进行验证，验证成功返回登录的用户相关信息。例如用户名。   
> 4. B应用根据验证结果进行授权。对B/S程序打开特性页面，对C/S程序打开特定对话框。  