【问题标题】:Correct way to implement automatic oauth SSO with marketplace app使用市场应用程序实施自动 oauth SSO 的正确方法
【发布时间】:2014-09-16 18:06:46
【问题描述】:

我有一个用 PHP 为谷歌市场开发的应用程序。尽管用户在域上安装了该应用程序,但它运行良好,当来自谷歌默认导航按钮时,它仍然要求访问联系人、驱动器等的权限。

根据谷歌的说法,在域上安装应用程序时应该是自动的,并且不应提示用户提供更多权限。使用新的 SDK 和 oauth 2.0 实现这一点的正确方法是什么?

最好的问候, 若昂·加林

【问题讨论】:

    标签: google-apps-marketplace


    【解决方案1】:

    看看这篇文章 - SSO with Oauth2.0 for Enterprice Google App (OpenId to Oauth2.0 migration)

    那个是面向 Python 的,但应该在 PHP 上使用类似的想法。

    【讨论】:

    • 感谢您的信息。从我得到的默认通用导航应该带有“代码”参数?当来自通用导航时,我没有要使用的“代码”参数,这样我就可以跳过对用户的授权。最好的问候,若昂·加林
    【解决方案2】:

    将所有范围放入 admin sdk 中,当用户被重定向到您的网址“http://www.example.com/?domain=somedomain.com”时,只需将用户再次重定向到谷歌,仅使用 scope="email+profile", "include_granted_scopes=true" 使其包含所有您在 admin sdk 中定义的范围,并尽量避免在请求中使用 https://www.googleapis.com/auth/plus.login 范围,因为它会导致确认弹出每个用户访问用户圈子的权限,并破坏无缝域范围的 sso。

    这是 vb.net 中的一个示例:

    sub page_load
      Dim loginUrl = "https://accounts.google.com/o/oauth2/auth?scope=" & _
                "email+profile&" & _
                "state=" & xState & "&" & _
                "redirect_uri=" & GoogleApiCredentialHelper.RedirectUri & "&" & _
                "response_type=code&" & _
                "client_id=" & GoogleApiCredentialHelper.ClientId & "&" & _
                "access_type=offline&" & _
                "approval_prompt=auto&" & _
                "include_granted_scopes=true"
    
    response.redirect(loginUrl)
    end sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多