ASTRO轻应用 ASTROZERO-如何集成第三方账号登录:单点登录(“CAS”协议)认证
单点登录(“CAS”协议)认证
单点登录认证是让AstroZero作为客户端,第三方进行cas鉴权作为服务端的认证方式。当AstroZero作为客户端时,第三方账号通过cas鉴权获得ticket,第三方账号携带ticket重定向到AstroZero,AstroZero后台获取ticket后到CAS Server校验ticket合法性,ticket合法性验证成功后AstroZero返回access-token给第三方账号供第三方账号访问AstroZero。
AstroZero作为客户端获取到ticket后,提供了sso快捷校验ticket合法性方法。使用sso对ticket进行验证样例代码如下:
import * as user from 'user'; import * as sys from 'sys'; import * as sso from 'sso'; //使用sso单点登录需要引用 //输入参数 @action.object({type: "param"}) export class MyObject { @action.param({type: 'String'}) ticket: string; //第三方进行cas鉴权时得到的ticket @action.param({type: 'string'}) service: string; //第三方提供的service } //输出参数 @action.object({type: "param"}) export class Output { @action.param({type: 'String'}) username: string; //返回的用户名 @action.param({type: 'String'}) token: string; //返回的Access-token } //sso登录逻辑 @action.object({type: "method"}) export class ActionDemo { @action.method({ label: 'greeting something', description: 'greeting something.', input: 'MyObject', output: 'Output' }) public greet(inarg: MyObject): Output { console.log(inarg.ticket); let ticket = inarg.ticket; let service = inarg.service; //cas服务的域名 let casUrl = "http://10.70.67.246:8899/cas" //根据传入的service和ticket使用sso去cas校验ticket的合法性并返回用户信息 let cli = sso.newClientWithCas(service, ticket, casUrl); let a = cli.validateTicket(); console.log(a); let out = new Output(); out.username = a; //检测user是否存在 createUser(out.username); //sso进行登录验证并返回 access-token let token = cli.login(); out.token = token; return out; } } //检测user是否存在逻辑 function createUser(username: string) { try{ let u = { "userName": username, "name": username, "email": username, "languageLocaleKey": "zh_CN", "timeZoneSidKey": "10", "profile": "000T0000000000000002", } let id = user.createInnerUser(u) console.log(id) }catch(e) { console.log(e) } }
- 应用身份管理服务用户登录二次认证配置_应用身份管理_OneAccess-华为云
- 授权IAM用户访问OneAccess实例管理门户_应用身份管理_OneAccess-华为云
- OneAccess是什么_OneAccess的特性_OneAccess的优势_OneAccess的应用场景
- 应用身份管理服务有哪些能力_应用身份管理_OneAccess-华为云
- 应用身份管理服务有哪些应用场景_应用身份管理_OneAccess-华为云
- 应用身份管理服务企业API使用_应用身份管理_OneAccess-华为云
- 什么是应用身份管理服务_应用身份管理_OneAccess-华为云
- 应用身份管理服务有哪些规格_应用身份管理_OneAccess-华为云
- 什么是Manager_Manager的功能_MRS运维管理
- Astro轻应用_Astro大屏应用_分钟级构建业务大屏