Guardian Federation Oauth2 function

内容纲要

概要描述


在guardian组件的使用过程中,经常遇到federation server中关于Oauth2相关的问题,如开关安全的时候Oauth2 client 注册失败;点击各个组件link跳转失败等错误。本文章就TDH平台中Federation server中的Oauth2鉴权功能做一段阐述。

详细说明


  1. 如上图中所示,TDH集群在开启的时候,各个组件会生成各自的Oauth2 client到federation server端注册;

  2. 注册请求到达federation server后,会默认往federation默认的TDH租户中注册各个组件的信息。ps:环境若改过realm,以实际环境中的值为准。

    在理解上述流程的基础上,分析一下下面的两个案例。

案例分析

案例1 :点击各组件角色的link,跳转失败,报错Whitelabel Error Page

客户点击Yarn组件的server角色中的link,想跳转至Yarn server的GUI端,但是跳转至如下错误页面;

  • 分析:
    从图中错误直观的看到未找到指定客户端,同时结合federation的日志也可以佐证,这一报错是由于开启安全时注册Oauth2 client异常导致

    根据以上的分析,去federation server页面去检查,发现并没有对应的TDH租户下的各个组件的client注册成功的记录。

    这个时候可以试着重新开关一下安全,确认一下Oauth2 client注册是否可以成功。

    开关安全过程中发现如下报错:对TDH下组件的Oauth2 client进行注册/去注册时报Unauthorized的错

    对于该错误则需要对federation server端的TDH租户检查是否正常。
    本次案例中检查TDH租户相关信息后发现,客户将原本的默认的TDH租户删除了,自己新建了一个tdh用,导致了开启安全时注册Oauth2 client失败。

  • 解决方案:
    对于这种客户操作不规范导致的错误,在客户允许的情况下删除guardian组件重新安装后解决;
    由于很难有客户会这么操作环境,除重新安装外,没有摸索出其他的解决修复方案。



案例2:注册 OAuth2 Client失败

  • 场景:
    集群在开启安全的过程中,某个服务卡在最后一步“ 注册 OAuth2 Client”

  • 分析:
    根据第一部分章节的阐述,每个组件开启安全的时候都会去federation端去注册client信息,但是每个组件的client注册信息只能有一个,所以这种场景下大部分是因为federation端TDH租户下已经存在了该组件的client的信息,这种情况下只需要在federation端删除相关组件的client信息即可。

  • 解决方案:

  • 登录 Guardian Federation Service
    进入Guardian页面

    进入任意一个 Guardian Federation Service 页面

    • 找到有问题服务的OAuth2 Client用户信息并删除
      进入TDH租户

    删除相关组件的OAuth2 client的信息

  • 去启动页面点击重试,即可成功

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。