0

私はしばらくの間見回してきましたが、これを自分で理解することはできません。実際、私はGoogle APIドキュメントで非常に混乱して迷っています:-)

私がしなければならないことが2つあります。

  1. Google Apps アカウントからユーザーを同期し、自分のデータベースに保存します。
  2. 既にデータベースに同期されている場合、ユーザーは Google Apps アカウントを使用してログインできます。

gdata python ライブラリを使用して、連絡先 API と oauth2 を使用して、これを機能させることができました。しかし問題は、これが機能するためには、Google API コンソール (リダイレクト URL、js オリジン) で多くの設定を行う必要があることです。ユーザー/クライアントが自分でこれを行う必要があるため、最も簡単な方法とは思えません。他のサイトは Google アプリのログインをどのように解決しますか? 私もopenidを見てきましたが、これを使用して(1)を解決できるかどうかはわかりません。

以前にこれを行ったことがあり、どのアプローチが好ましいか、または何か提案があることを知っている人はいますか?

ありがとう!

4

1 に答える 1

1

ユーザーのリストを事前に同期する必要があるのはなぜですか? ユーザーのログインを許可し、ログインするユーザーに基づいてDBにユーザーを動的に作成しないのはなぜですか?

本当にユーザーを同期する必要がある場合:

ユーザーの同期は、Contacts API ではなく 、 Google Apps Provisioning APIで行う必要があります。

インストールされたアプリケーション (サーバーのどこかに) を構築していますか? または、複数のサイトからドメイン管理者がアクセスしてアクセスを許可できるようにする Web アプリケーションを構築していますか?

それが (サーバーに) インストールされているアプリケーションである場合、Google Apps から別のシステムにユーザーを取得するための読み取り専用アクセスのみが必要である限り、それは非常に簡単です。

ドメイン管理者は次のことを行う必要があります。

1) 訪問:

https://www.google.com/a/cpanel/(YOUR DOMAIN NAME)/ManageOauthClients

(YOUR DOMAIN NAME) と同じクライアント名にスコープへのアクセスを許可します。

https://apps-apis.google.com/a/feeds/user/#readonly 

2) ドメイン コンシューマー キー/シークレットを取得し、有効になっていることを確認します。ここからつかみます:

https://www.google.com/a/cpanel/(YOUR DOMAIN NAME)/SetupOAuth

開発者は次のことを行う必要があります。

次に、そのコンシューマー キーとシークレットで 2-legged OAuth 1.0 を使用してアクセスする必要があります。OAuth 1.0 プレイグラウンドを使用して試すことができます。遊び場では、セクション 1 と 3 には何も触れないでください。セクション 2 を使用して署名方法として HMAC_SHA1 を選択し、それらのフィールドにキー (ドメイン名) とシークレットを指定します。セクション #6 で、リクエストする URL を指定します。これは次のようになります。

https://apps-apis.google.com/a/feeds/(YOUR DOMAIN NAME)/user/2.0

そして、実行を押します。OAuth 1.0 プレイグラウンドは SSL 対応の URL でホストされていないことに注意してください。そのため、試してみるときにテスト ドメインでこれを行い、テスト後にドメイン シークレットをリセットすることをお勧めします。

手順 1 と 2 は、適切な指示があれば、ドメイン管理者が従うのはかなり簡単です。簡単にする唯一の方法は、Google Apps Marketplaceでアプリケーションをホストすることです。これにより、アプリケーションに単一のキー/シークレットが与えられ、管理者がアプリをインストールしてアクセス許可を付与するだけで、アプリケーションのキー/シークレットにインストール中のドメインのデータにアクセスするためのアクセスを許可するのに十分です。手順 1 と 2 を手動で行う必要はありません。

: 管理者がドメイン ユーザー リストへのアクセスを許可する必要がある、またはプロビジョニング API への書き込みアクセスが必要な Web アプリケーションを構築している場合、ドメイン クライアント/シークレットは機能しません。他の承認メカニズムのいずれかを使用する必要があります。アプリケーションは、API コンソールでクライアント ID/クライアント シークレットをセットアップする必要がありますが、各ユーザーにこれを実行させる必要はありません。

ユーザーが自分の Apps アカウントでログインできるようにする:

ログインに OAuth 2.0 を使用します (OpenID Connect ベース): https://developers.google.com/accounts/docs/OAuth2Login

API コンソールでアプリケーションのクライアント情報をセットアップする必要がありますが、それは 1 回だけです。すべてのドメインなどに対して行う必要はありません。

于 2012-09-09T00:28:11.873 に答える