2016-11-21 16 views
0

私は、全面的にユーザーの認証を管理する集中IDプロバイダを持っています。SSOで電子メールの変更を実装する最良の方法

他のアプリはSSOを使用してIDサーバと統合します。 (彼らは "電子メール"を使用してSSOユーザーとローカルユーザーをマッピングします)

私は、ユーザーがアイデンティティプロバイダーで電子メールを変更するシナリオに対処する必要があります。 (今、この変更はすべてのシステムで伝播する必要があります)。私はこれを実装する2つの方法が与えられました。

  1. アイデンティティ・サーバーは、電子メールに変更があったときに他のアプリケーションが購読できるWebフックを公開します。
  2. SSOにローカルユーザをマッピングするためのユニークなuser_idを使用(メールでのこの方法の変更は認証には影響しません)

#2のアプローチはどのように良いのですか?電子メールが変更されたときに複数のテーブルを更新する必要があるかもしれないことを考慮してください。あなたが実際に両方のアプローチを実装することができます

答えて

0

、彼らは相互に排他的ではありません。

  • ユーザープロファイルの更新をサブスクライブするアプリケーションのためのウェブフックがそれらを常に再認証するユーザーを必要とせずに、最新のプロファイル情報を持っているか聞かせすることができます公開IDプロバイダに変更をポーリングする必要があります。
  • 電子メールなどのプロファイル情報に関連付けられていない一意で不変なユーザーIDを持つことは、一般的には良い方法です。これにより、電子メールから識別子を切り離すことができ、信頼できないサードパーティのアプリケーションに対してSSOを実行する際に特に重要な、ユーザーの電子メールをそれらの電子メールを持たないアプリケーションに漏らさずにSSOを実装できます。具体例として

は、Auth0(免責事項 - 私はAuth0のために働く)が内蔵されたアイデンティティ・ストアのための第二のアプローチを実装するだけでなく、ユーザ・プロファイルの変更の伝搬を単純化する最初のアプローチを実装することができました。

+0

両方のシステムが内部にあるので、電子メールは問題ではありません。識別子として電子メールを使用すると、既存のソリューションは簡素化されますが、問題はそのうちのどれかを実装できるということです。 webhooksなしで#2を使用すると、ログイン時に受動的に同期ジョブを実行する必要があります(変更された電子メールを持つユーザーがログインしたとき)webhooksを使用するのとは異なります。 –

関連する問題