2016-04-05 7 views
0

に推測できないURLに基​​づいてアクセスを許可します。これは、REST APIを呼び出す角型クライアントを使用して構築されています。私は、推測できないURLの所有に基づいて、APIへのアクセスを承認する方法を知りたいと思います。のOAuth2:私たちのアプリケーションは<strong>のOAuth2 &のOpenIDは認証&認証のための</strong>を接続して使用する電子メール

もう少し説明します。アプリケーションでは、ユーザーは別のユーザーを招待できます。これが起こると、電子メールが第2のユーザに送られる。ユーザー2が電子メール内のリンクをクリックすると、そのユーザーは招待状の詳細をWebページに送信されます。

ユーザー2のみが招待状ページを表示することが許可される必要があります。私は電子メールの中で「疑わしいURL」を使ってこれを解決するつもりでした。 URLにアクセスすると、ユーザーは何らかの形でAPIから招待状の詳細を取得する権限を持っている必要があります。

質問:推測できないURLを知っていることに基づいて、どのようにユーザーを承認できますか?ページが読み込まれたときに申し立てを行うにはどうすればよいのですか?そのAPI呼び出しでこの申し立てを確認するにはどうすればよいですか?私が見る唯一の解決策は、トークンを含むクッキーを設定することです。しかし、これは既存の認証メカニズムと一致しません。私は独自のトークン検証コードを書いておらず、IDプロバイダにこれを処理させることを好みます。

追加情報:ユーザー2はシステムにアカウントを持っていてもいなくてもよく、ログインしていてもログインしていなくてもかまいません。ユーザーに招待の詳細が表示されないようにしてください。言い換えれば、全く知られていないユーザーがページを見ることができるはずです。 URLの知識が唯一の要件である必要があります。

この問題の解決方法を教えてください。または私はそれをすべて間違って扱っていますか?

答えて

0

尋ねた後、一般的なコンセンサスは、外部の認証メカニズムがこれを処理するのではなく、自分でリンクを検証することです。

解決策は、APIの呼び出し時に検証できる、ある種のトークンでURLの推測不能部分( 'リンクID')を有効にすることです。これは、Identity ServerではなくAPI自体によって行われます。

招待状に適用されます:招待状が作成されたときに、リンクIDにいくつかの情報、つまりどのような種類のアクセス(招待アクセス権)と招待状のIDを格納します。ユーザーが招待状を取得するためにAPIを呼び出すと、確認のためにリンクIDを渡します。招待状IDとリンクに格納されている招待状IDを一致させ、そうでない場合はエラーを投げます。

関連する問題