使用marketplace app实现自动oauth SSO的正确方法

时间:2014-01-02 08:55:08

标签: google-apps-marketplace

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

根据谷歌的说法,在域上安装应用程序时应该是自动的,不应再提示用户提供任何权限。使用新的SDK和oauth 2.0实现此目的的正确方法是什么?

祝你好运, Joao Garin

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

将所有范围放入admin sdk,当用户重定向到您的网址“http://www.example.com/?domain=somedomain.com”时,只需将用户重定向到Google再次使用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