2017-06-14 9 views
0

私はGrails REST Appを開発しています。私は3つのユーザー役割を持っています:BusinessOwner、User、Admin、Public(認証なし)REST APIとユーザーロール設計のベストプラクティスとは何ですか?

私はapi/business/1のようなエンドポイントを持っています。

BusinessOwnerロールを持つユーザーがそれを呼び出すと、ビジネスのすべての詳細が返されますが、パブリック(非認証)ロールを持つユーザーがそれを呼び出すと、その詳細のサブセットが返されます。 そこで問題は、エンドポイントを実装する方法です:

の1- api/business/1のような一つのエンドポイントを持って、ユーザロールが何であるかをチェックし、適切な値を返します(いくつかのif/else文、....)

OR

api/admin/business/1

:各々がそれ自身の固有のセキュリティ情報があり、特定のサブセットを返す場合、次のような別のAPI領域を有する

2- 1が優れている

api/public/business/1

?および

REST APIの設計とユーザー役割の適用に関するベストプラクティスは何ですか。

+0

オプションこの1.簡単に利用できる役割の変化を可能にしますオプション2と対比。 – bassmartin

答えて

0

認証と認可

私は、URLの認可に基づいて別のWebサービスを指示するか、そうでなければいけませんという意見です。整形式のRESTfulサービスの場合、トークンはHTTPヘッダーで送信する必要があります(OAuth 2.0の場合と同様)。

最も成熟したRESTfulなフレームワークは、内蔵の承認フローを持つことになります。私の知る限りではそれらのどれも認可メカニズムと同じサービスに異なるURLのを実装していない

関連する問題