サービス内の識別情報は、データベースに格納されたトークンに基づいています。これは、ユーザ名とパスワードでログインしてクライアントが取得します。トークンベースの認証サーバー要求/応答の設計
リソースが要求されるたびに、トークンを検証し、そのリソースにアクセスする権限があるかどうかを判断します。
私たちのサービスは別々に配備され、HTTP経由で認証サーバーにアクセスできます。
要求を承認する際のベストプラクティス/一般的な方法は何ですか?
私は役割にトークンを渡すことを考えてと認証サーバにトークン検証要求にユーザーの許可を要求された、要求された権限と役割
でトークンを送信します。
{
token: 'xyz',
role: 'ROLE_ADMIN',
permission: 'SAVE_USER'
}
成功した場合は200、無効なトークンの場合は401、許可を使用する権限がない場合は403で応答します。
を念頭に置い
別のアプローチは、認証サーバにトークン検証要求にトークンにだけトークンを送信して認証要求にのみトークンを送信します。
{
token: 'xyz'
}
し、すべての権限とロールをユーザに応じるがあります
{
roles: ['ROLE_ADMIN', 'ROLE_USER'],
permissions: ['SAVE_USER', 'DELETE_USER', 'SHOW_USER']
}
より賢明であるこれらのどれ? 他に/パターンのアプローチがありますか?
Spring MVCを使用している場合は、Spring OAuthを使用する方が良いと思います。実際の情報がデータベースに格納されている間は、ランダムなuuid(トークンとして)を送信するだけで、トークンベースの認証を処理しています。したがって、そのトークンを使用してリソースにアクセスしようとすると、springはそのトークンに対して役割/権限をチェックし、それに応じてユーザーを検証します。 – Afridi
@Afridi私は現在OAuthを使用していません。 OAuth以外の認証/承認にSpring OAuthを使用することをお勧めしますか? – froi