2016-04-04 2 views
0

OpenID Connectを使用して、ユーザーが2つのサービスを使いながら、1つの場所でユーザーのパスワードを維持できるようにします。RPはどのようにしてユーザーの名前で不正な操作を実行できないのですか?

セイバンキングサービスAは、自分の口座残高

    1. 見にWebブラウザを持つユーザーは、銀行振込を行うことができます。

    上記のアクションの場合、サービスAは常にサービスBによって提供されるAPIを経由する必要があります。Bはすべてのパスワードも保持します。

    セイBはAを信用できず、すべての銀行振込がユーザーによってOKです。ただし、アカウントの残高を読み取ることは、セッションが実行されている限り、任意に可能でなければなりません。

    これはOpenID Connectでどのように行うことができますか?

    最も安全な方法は、そのサービスAので、銀行振込の全体の内容に署名ユーザーは、特定の銀行振込の詳細とユーザーのブラウザを受け入れる持っているだろう唯一の前方、そのサービスB.

    別にすることができますより安全性の低い方法では、サービスAがユーザーの(ブランク・チェック)許可から期限切れになるまでの時間枠内でトランザクションを実行することを可能にする時間制限付きの「トランザクション」スコープ/クレームを持つことです。

    上記のいずれかをOpenID Connectを使用して簡単に実装できますか?

  • 答えて

    1

    トランザクションスコープを含むOpenID Connect認証要求を使用して、サービスAがユーザーをサービスBにリダイレクトする必要があるため、トランザクションに対するユーザーの同意を得ることができます。プロバイダから返されたアクセストークンは、その取引のみを許可します。これは、アカウント、合計、有効期限ウィンドウなどを参照するトランザクションIDによって識別されます。

    +0

    あなたが言及したトランザクションID ? 「ワンタイムスコープ」? –

    +0

    はい、こちらの提案は「ワンタイムスコープ」 –

    +0

    です。また、サービスBは、トランザクション情報をユーザが容易に読むことができる方法で表示するようにプログラムされている可能性があります。だから、私がやろうとしていることは、安全な方法で簡単に可能であるように思えます。なぜ、Googleは「openid connect」または「openid connect」と関連して「one-time scope」と「one- oauth "である。これは、多くの企業のユースケースと思われます... –

    関連する問題