1. 登录接入(可选)

1.1. 为什么要登录接入

 AntDen默认会开启自己的用户登录功能,但是在生产环境中,公司内部会有单点登录系统(SSO)。
 对接SSO后可以用统一的登录来进入AntDen。

1.2. 对接步骤

重写 AntDen/dashboard/sso 和 AntDen/dashboard/ssoconfig 两个插件。
重写的插件可以不要覆盖默认的插件,可以放到新路径:
AntDen/dashboard/private/code/sso 和 AntDen/dashboard/private/code/ssoconfig 。 
系统判断有私有插件会首选使用私有插件。

1.2.1. ssoconfig 插件

#!# perl: code/ssoconfig
use strict;
use warnings;
return sub
{
    return +{
        ssocallback => 'http://sso.antden.cn/login?callback=',
        cookiekey => 'u',
        ssologout => 'http://sso.antden.cn/logout',
        chpasswd => 'http://sso.antden.cn/chpasswd',
    }
};
  • chpasswd 为修改密码的连接,可以为空,为空时用户在antden上点击修改密码会提示不支持
  • ssologout 为登出的连接,未定义情况下默认是清理key为cookiekey的cookie
  • ssocallback(必要) 访问antden判断到用户没有登录时跳转的地址,antdne当前访问的地址会带在callback之后 登录成功后sso系统需要跳转回来
  • cookiekey(必要) SSO系统使用的cookie的名称,这个cookie的值会给另一个插件进行验证

1.2.2. sso 插件

 #!# perl: code/sso
use strict;
use warnings;
return sub
{
    my $cookie = shift @_;
    #
    #通过$cookie 这个值去sso系统查询这个cookie的用户身份,获取用户的唯一标识,
    #如邮箱地址,用户名 (不要使用中文)
    #
    #如 获取到邮箱地址 $email
    #
    return $email;
};

1.3. 例: 对接(聚云立方:https://console.marshotspot.com/)

#!# perl: code/ssoconfig
use strict;
use warnings;
return sub
{
    return +{
        ssocallback => 'https://console.marshotspot.com/account/login?redirect=',
        cookiekey => 'token',
    }
};
#!# perl: code/sso
use strict;
use warnings;
use Mojo::JWT;
return sub
{
    my $claims = eval{ Mojo::JWT->new(secret => 'sercet123456' )->decode(shift); };
    return $@ ? undef : $claims->{email};
};
};
Copyright 2020 - 2020. all right reserved,powered by Gitbook该文件修订时间: 2020-07-26 20:00:02

results matching ""

    No results matching ""