委托身份验证的可接受使用策略问题

时间:2019-02-21 16:55:44

标签: java single-sign-on cas

我们已根据官方文档(aupdelegate authentication)配置了标题中所述的两个功能。

我们使用delagate身份验证与外部saml idp提供程序集成。因此,我们有两种认证方式。 idp身份验证和本地身份验证(cas内部数据库身份验证器)。

在进行内部和内部认证之后,我们需要在满足条件A时显示接受使用策略视图。

以上内容适用于本地登录,但是,当在外部idp中执行身份验证时,即使条件A为,也不会显示可接受的使用政策页面 。遇到,用户最终登录了最初请求的服务。

问题:为什么会发生这种情况,并且有任何可能的解决方法?

Cas服务器版本:5.3.7

1 个答案:

答案 0 :(得分:1)

如果您检查this block,您会发现对策略使用情况的验证已链接到class Dog attr_reader :name def initialize(name) @name = name end end class Game attr_reader :dogs def initialize load_dogs end def play puts "For tonights race we have:" dogs.each do |dog| puts dog.name end puts choose_your_dog end private def choose_your_dog puts "Which dog do you want" @choice = gets.to_s.strip puts "You choose #{@choice}; great choice!" end def load_dogs @dogs = [] @dogs << Dog.new('Joe') @dogs << Dog.new('Sally') @dogs << Dog.new('Steve') end end game = Game.new game.play 并作为输入动作创建:

STATE_ID_CREATE_TICKET_GRANTING_TICKET

这是AUP流程的局限性,因此,特别是在委托用例中,verify操作的结果会被忽略,即使最终指示,也不会考虑触发最终视图。

6.0.x分支对此逻辑进行了一些更改以改善此行为:

final ActionState ticketCreateState = getState(flow, CasWebflowConstants.STATE_ID_CREATE_TICKET_GRANTING_TICKET, ActionState.class);
ticketCreateState.getEntryActionList().add(createEvaluateAction("acceptableUsagePolicyVerifyAction"));
createTransitionForState(ticketCreateState, AcceptableUsagePolicyVerifyAction.EVENT_ID_MUST_ACCEPT, VIEW_ID_ACCEPTABLE_USAGE_POLICY_VIEW);

欢迎您在5.3.x部署中尝试相同的方法并进行报告。确保彻底测试这两种情况。如果一切正常,请回发,然后您可以向项目发布拉取请求以更改/修复此行为。

PS请注意,各种Webflow动作和状态的纠缠非常棘手,因为有许多模块希望将自己插入正确的Webflow状态以适应某些行为。这样的模块通常彼此之间一无所知,并试图在某种程度上不可知地增加流量。在这种情况下,将这些东西链接在一起可能会非常棘手。