请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 1047|回复: 0

[功能实施] [转]iTop集成SSO登录

[复制链接]
发表于 2020-3-18 17:25:52 | 显示全部楼层 |阅读模式
  1. https删除://www.删除annhe.net删除/article-3553.html
复制代码
优化登录
2016.7.20更新
由于绝大多数用户都通过sso登录,因此决定未认证用户之间重定向至sso以提高用户体验。只需要在model.authent-sso.php中class定义的外面判断是否登录,未登录的跳转去sso(注意请求uri为toolkit和setup时不要跳转到sso,否则将导致这两个功能不可用)。

[backcolor=rgb(248, 248, 255) !important]
[color=rgb(170, 170, 170) !important]1

[color=rgb(170, 170, 170) !important]2

[color=rgb(170, 170, 170) !important]3

[color=rgb(170, 170, 170) !important]4

[color=rgb(170, 170, 170) !important]5

[color=rgb(170, 170, 170) !important]6

[color=rgb(170, 170, 170) !important]7

[color=rgb(170, 170, 170) !important]8

[color=rgb(170, 170, 170) !important]9

[color=rgb(170, 170, 170) !important]10

[color=rgb(170, 170, 170) !important]11

[color=rgb(170, 170, 170) !important]12

[color=rgb(170, 170, 170) !important]13

[color=rgb(170, 170, 170) !important]14

[color=rgb(170, 170, 170) !important]15

[color=rgb(170, 170, 170) !important]16


[color=rgb(153, 153, 153) !important]//cron任务忽略sso认证
if[color=rgb(51, 51, 51) !important]([color=teal !important]isset
[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_SERVER[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'REQUEST_URI'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])
[color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]        [color=rgb(153, 153, 153) !important]//如果访问 toolkit 或者 setup 等工具页面,则不跳转到sso
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]isToolPage[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]false[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]        if[color=rgb(51, 51, 51) !important]([color=teal !important]preg_match[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'/^\/toolkit\/|^\/webservices\/|^\/setup\//i'[color=rgb(51, 51, 51) !important],[color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_SERVER[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'REQUEST_URI'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]                [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]isToolPage[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]true[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important]        if[color=rgb(51, 51, 51) !important]([color=rgb(0, 111, 224) !important]![color=teal !important]isset[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_SESSION[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'auth_user'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]&&[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]![color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]isToolPage[color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]                [color=rgb(0, 45, 122) !important]UserLeSSO[color=rgb(0, 111, 224) !important]::[color=teal !important]getM_TK[color=rgb(51, 51, 51) !important]([color=teal !important]base64_encode[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_SERVER[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'REQUEST_URI'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]}
[color=rgb(51, 51, 51) !important]}






其中参数 $_SERVER['REQUEST_URI'] 用于认证通过后重定向至登录前的链接。具体流程为记录用户登录前打开的request_uri, 作为url参数加到sso的next URL里,然后login.php就可以获取到这个uri,认证成功后直接重定向至该request_uri。
getM_TK()函数修改为:

[backcolor=rgb(248, 248, 255) !important]
[color=rgb(170, 170, 170) !important]1

[color=rgb(170, 170, 170) !important]2

[color=rgb(170, 170, 170) !important]3

[color=rgb(170, 170, 170) !important]4

[color=rgb(170, 170, 170) !important]5

[color=rgb(170, 170, 170) !important]6

[color=rgb(170, 170, 170) !important]7

[color=rgb(170, 170, 170) !important]8

[color=rgb(170, 170, 170) !important]9


[color=rgb(128, 0, 128) !important]static[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]public[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]function[color=rgb(0, 111, 224) !important] [color=teal !important]getM_TK[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]uri[color=rgb(0, 111, 224) !important]=[color=rgb(221, 17, 68) !important]""[color=rgb(51, 51, 51) !important])
[color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]sAppRootUrl[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=teal !important]trim[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]MetaModel[color=rgb(0, 111, 224) !important]::[color=teal !important]GetConfig[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]->[color=teal !important]Get[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'app_root_url'[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]loginPage[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"env-production/authent-sso/login.php"[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]sLoginURL[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=teal !important]trim[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]MetaModel[color=rgb(0, 111, 224) !important]::[color=teal !important]GetModuleSetting[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'authent-sso'[color=rgb(51, 51, 51) !important],[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'login_url'[color=rgb(51, 51, 51) !important],[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'http://localhost'[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]next[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$sAppRootUrl[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$loginPage[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"?uri="[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]uri[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]   
[color=rgb(0, 111, 224) !important]    [color=teal !important]header[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]"Location: "[color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$sLoginURL[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"?next="[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]next[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(51, 51, 51) !important]}




接下来在login中处理

[backcolor=rgb(248, 248, 255) !important]
[color=rgb(170, 170, 170) !important]1

[color=rgb(170, 170, 170) !important]2

[color=rgb(170, 170, 170) !important]3

[color=rgb(170, 170, 170) !important]4

[color=rgb(170, 170, 170) !important]5

[color=rgb(170, 170, 170) !important]6

[color=rgb(170, 170, 170) !important]7

[color=rgb(170, 170, 170) !important]8

[color=rgb(170, 170, 170) !important]9


[color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]appRootUrl[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UserLeSSO[color=rgb(0, 111, 224) !important]::[color=teal !important]getAppRootUrl[color=rgb(51, 51, 51) !important]([color=rgb(128, 0, 128) !important]false[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].
[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].[color=rgb(51, 51, 51) !important].

if[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]UserRights[color=rgb(0, 111, 224) !important]::[color=teal !important]CheckCredentials[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]SSOUSER[color=rgb(51, 51, 51) !important],[color=rgb(221, 17, 68) !important]''[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]===[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]true[color=rgb(51, 51, 51) !important])
[color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]location[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$appRootUrl[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=teal !important]base64_decode[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]_GET[color=rgb(51, 51, 51) !important][[color=rgb(221, 17, 68) !important]'uri'[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=teal !important]header[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]"Location: $location"[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(51, 51, 51) !important]}




为了取到不带URI的app_root_url,getAppRootUrl()函数修改为:

[backcolor=rgb(248, 248, 255) !important]
[color=rgb(170, 170, 170) !important]1

[color=rgb(170, 170, 170) !important]2

[color=rgb(170, 170, 170) !important]3

[color=rgb(170, 170, 170) !important]4

[color=rgb(170, 170, 170) !important]5

[color=rgb(170, 170, 170) !important]6

[color=rgb(170, 170, 170) !important]7

[color=rgb(170, 170, 170) !important]8

[color=rgb(170, 170, 170) !important]9

[color=rgb(170, 170, 170) !important]10

[color=rgb(170, 170, 170) !important]11

[color=rgb(170, 170, 170) !important]12


[color=rgb(128, 0, 128) !important]static[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]public[color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]function[color=rgb(0, 111, 224) !important] [color=teal !important]getAppRootUrl[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]with_uri[color=rgb(0, 111, 224) !important]=[color=rgb(128, 0, 128) !important]true[color=rgb(51, 51, 51) !important])
[color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]    if[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]with_uri[color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]        return[color=rgb(0, 111, 224) !important] [color=teal !important]trim[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]MetaModel[color=rgb(0, 111, 224) !important]::[color=teal !important]GetConfig[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]->[color=teal !important]Get[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'app_root_url'[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"pages/UI.php"[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important]    else
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important]        [color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]root_url[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=teal !important]trim[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]MetaModel[color=rgb(0, 111, 224) !important]::[color=teal !important]GetConfig[color=rgb(51, 51, 51) !important]([color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]->[color=teal !important]Get[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]'app_root_url'[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]        return[color=rgb(0, 111, 224) !important] [color=teal !important]preg_replace[color=rgb(51, 51, 51) !important]([color=rgb(221, 17, 68) !important]"/\/$/"[color=rgb(51, 51, 51) !important],[color=rgb(221, 17, 68) !important]""[color=rgb(51, 51, 51) !important],[color=rgb(51, 51, 51) !important]$[color=rgb(0, 45, 122) !important]root_url[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]}
[color=rgb(51, 51, 51) !important]}








上一篇:非常棒的扩展分享,感谢@得得地
下一篇:忘记密码功能无法使用,会报错,但是通知功能却可以使用

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、DevOps专家认证、ITSS服务经理认证报名

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2020-8-14 07:10 , Processed in 0.161109 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表