2016-03-29 16 views
1

私たちは組織にロールアウトする学習管理システム(LMS)を持っています。すべてのユーザーは、システム上に数千の「組織アカウント」が存在する「組織アカウント」の下に存在します。認証済みGoogleユーザーの「ワークアカウントを」特定

私たちのクライアントの一人はGoogleをメインアカウント/認証システムとして使用しており、そのためにOAuth2を実装しています。

Googleのプラットフォーム用のGoogleプロジェクトを作成しました。openid email profileスコープを使用して、標準的な方法でユーザーを認証するためにGoogleを使用することができます(https://accounts.google.com/o/oauth2/auth)。ユーザーがGoogleで認証されたと仮定すると、私はアクセストークンを返すことができます。

私の問題は、しかし戻ってくるの特許請求の範囲のリストは、私はGoogleアカウントが属する組織を決定するために十分ではないということです。私は、「ホストされたドメイン」の主張がGoogleのアカウントをクライアントの仕事アカウントとして特定するかもしれないと考えましたが、ユーザーが仕事の「プライマリEメール」アドレスではなくエイリアスEメールアドレスを使用してログインした場合、ホストされたドメインは正しくありません。

認証されたGoogleアカウントが属する「仕事用アカウント」が自分のプラットフォーム上の適切な組織にマップできるようにするための手段が必要です。

の例では、私が思うに役立ちます。

  1. 当社のクライアントは、「ABC株式会社」
  2. と呼ばれているすべての人の主のメールアドレス(ドメイン)がABC @ ...「となる彼らは、Googleの作業アカウントを持っています.com "また、ユーザーは(「... @ anotherdomain.com」、「... @ gmail.com」など)
  3. ユーザが 『[email protected]』として認証した場合は、 『ドメインをホストされた』請求メールエイリアスを持っています「abc.com」として戻ってくると、このような「[email protected]」など、彼らが持っている電子メールエイリアスを使用して認証がホストされたドメインが来れば、私たちは、しかし、ユーザーや作業アカウント(イェーイ)
  4. の両方を識別することができます「abc.com」ではなく「blank」または「gmail.com」と表示されます。私のプライマリ電子メールアドレス "[email protected]"にアクセスすることもできません(失敗)。

認証されたユーザーの「仕事用アカウント」をどのように検出する必要がありますかに関するご意見はありますか?要求する他の「範囲」?または別のAPIですか?

ありがとうございました。

答えて

0

ユーザが「[email protected]」として認証する場合は、「ドメインをホストされている」請求 は「abc.com」として戻ってくると、私たちはユーザーと作業 アカウント(イェーイ)

の両方を識別することができます

が「[email protected]」である電子メールエイリアスで認証すると、ホステッドドメインは(空白)または「abc.com」ではなく 「gmail.com」に戻ります。 のプライマリ電子メールアドレス "[email protected]"にアクセスできないようです(失敗)。

"仕事勘定"の場合、ユーザーはgmail.comアドレスをエイリアスとして取得できません。 Gmailはこれをサポートしていません。 [email protected][email protected]は別々のアカウントです。その機能は設計通りに機能しています。 「エイリアス」情報がどこにあるのかはわかりませんが、何が起こるかはマルチログインをサポートしていることです。ユーザーは同時に複数のアカウントにログインし、簡単に切り替えることができます。彼らが最初にOauthの承認を通過すると、彼らは彼らが望むアカウントを選択することができます。次回は、oauthリクエストのパラメータに依存します。

ユーザーがサインインしようとしているサイトのホストされているドメインを知っている場合は、hd = abc.comをgoogle認証リクエストに渡すと正しいアカウントが選択されます。

関連する問題