当前位置: 首页 > 知识库问答 >
问题:

Google SAML应用程序\u未\u为\u用户配置\u/相当于提示符=选择\u帐户SAML

臧增
2023-03-14

我使用GSuite作为一个Saml IDP在内部应用程序上验证我的组织的用户。

一切正常,但有一点除外:当我的一个用户仅使用他/她的个人帐户登录时,谷歌将失败:

403错误:未为用户配置应用程序

这是有道理的,因为该应用程序只供内部用户使用,但我希望能够强制Google saml身份验证显示帐户选择器,即使用户已经登录到一个帐户,因为这对于oauth2来说是可能的,提示=html" target="_blank">select_account。

有没有办法对SAML有同样的行为?

[编辑]我实际上通过使用

https://accounts.google.com/AccountChooser/?continue=$SAML_请求$

[编辑2]以下是ruby on rails(使用ruby-saml)中适配的代码片段

配置/初始化器/saml_覆盖。铷

module OneLogin
  module RubySaml
    class Authrequest < SamlMessage
      GOOGLE_ACCOUNT_CHOOSER_URL = "https://accounts.google.com/AccountChooser?continue="
      alias_method :old_create, :create
      def create(settings, params = {})
        self.old_create(settings, params)
        @login_url = GOOGLE_ACCOUNT_CHOOSER_URL + CGI.escape(@login_url)
      end
    end
  end
end

共有1个答案

潘宝
2023-03-14
class SamlController < ApplicationController

  def init
    request = OneLogin::RubySaml::Authrequest.new
    redirect = request.create(saml_settings)

    # google doesn't support ForceAuthn so we have to redirect requests to the account chooser first
    google_account_url_chooser = "https://accounts.google.com/AccountChooser?continue="
    if redirect.include?("https://accounts.google.com")
      encoded_redirect = CGI.escape(redirect)
      redirect = "#{google_account_url_chooser}#{encoded_redirect}"
    end

    redirect_to(redirect)
  end

  def saml_settings 
    ...
  end
end
 类似资料:
  • 我正在与CheckMarx漏洞之一作斗争。我需要一些指导来支持这一点。以下是我的代码: 这里con是(HttpurlConnection)新URL(“一些URL”)。openConnection()。 所以,checkmarx在《in》中强调了这个问题。readLine()。 我尝试的变通方法: 1: StringEscape eUtils.unescapeJson(in.readLine()),

  • 使用命令cmd包安装提交1846176067提交安装会话失败。错误:INSTALL_FAILED_OLDER_SDK:安装过程中解析失败PackageLI: /data/app/vmdl1846176067.tmp/base.apk(在二进制XML文件行#7):需要更新的sdk版本#28(当前版本为#25) 我的Gradle应用插件:“com.android.application” Androi

  • 我正在尝试用H2进行JUnit测试,我的应用程序配置为与PostgreSQL和ACL的Spring Boot一起使用。 因此,我必须在应用程序中添加以下两行: 创建AclService。 我有application.properties配置() 但它总是回报我: 组织。springframework。jdbc。未分类SQLException:StatementCallback;SQL的未分类SQL

  • 我写了一个应用程序。一切都很好,但后来我想在家里的电脑上处理它。问题是,当我想在模拟器中启动应用程序时,我收到错误消息“INSTALL\u FAILED\u DUPLICATE\u PERMISSION”。在工作中,我对模拟器使用相同的设置。当我尝试在两台不同的电脑上使用它时,其他应用程序没有问题。 对不起,如果我没有给你足够的信息,但我是新的编程。 也许有人有过类似的经历,可以帮助我。 提前感谢

  • 我正在开发一个应用程序,用于连接基于HFP(BluetoothHeadset)协议的蓝牙设备。 蓝牙耳机通过蓝牙HFP发送AT(ACTION\u VENDOR\u SPECIFIC\u headset\u EVENT)指令。我已经成功地建立了设备之间的连接。 我已经写了一个广播接收器,并在舱单上登记了它。 上述接收器适用于广播中提及的所有动作和触发器,但 “android.bluetooth.he

  • 我正在尝试使用谷歌地图、地点选择器,但地图并不仅仅显示在白色屏幕上,这是前两行错误。 MisSingPluginExcture(未找到通道com.baseflow.flutter/location_permissions上的方法检查服务状态的实现)E/flutter(6811):[ERROR: flutter/lib/ui/ui_dart_state.cc(157)]未处理的异常:平台异常(错误,