.NET Core 2.0を使用したAPIがあります。私はすでにJWTの役割を担当していますが、私は権限でそれを使用するように移動したいと思います。定義済みのアクセス許可リストがあり、そのアクセス許可に基づいて動的な役割を作成することです。.NET Core 2.0でJWTを使用したアクセス権に基づくリソースへのアクセス
ロールは動的なのでロールベースの認証を使用できないため、権限に基づいてユーザーを認証する必要があります。
静的なアクセス許可リストがあるとします。たとえば:
public class Role
{
public int Id { get; set; }
public string Name { get; set; }
public List<RolePermission> Permissions { get; set; }
public bool Status { get; set; }
}
次のことができます。
- は、すべての記事
- が
は、今度は私が役割を持っているとしましょう、私の記事を見るビュー
- はポスト
- 投稿を編集
- ビューの作成
私の考えは持っているすべての記事:
は、今私は、この権限を持つ「管理者」と呼ばれる役割を作成したいですこのようなJWT:
JWT例:
{
"iat": 1416929061,
"jti": "802057ff9b5b4eb7fbb8856b6eb2cc5b",
"role": "Administrator",
"permissions": {
"posts": {
"actions": ["readall", "create", "edit"]
}
}
}
ここで、APIのリソースにアクセスするためのアクセス許可を確認したいだけです。
唯一の解決策は、すべてのアクセス許可に対してポリシーを作成することですか?どうすればこれを達成できますか?
こんにちはマーティン。まず第一に、ブログの日付は非常に古いので、スコープレベルの承認を持つAPIに対する使用法は参考にならないと考えてください。 Auth0はこれを箱から出します。また、スコープをJWTアクセストークン(Idトークンではない)に適用する必要があります。まだ私があなたが達成しようとしていることを完全に理解しているか分からないのですか?特定のユーザー認証のために受け取ったJWTアクセストークンに一連のスコープを提供し、そのユーザーの一部の静的権限テーブルで発行されるスコープをベースにしたいとしますか? – arcseldon
こんにちはarcseldon!お返事をありがとうございます。私の考えは、いくつかの静的な権限を持つことです。選択した権限(静的リストから)で動的役割を作成できます。たとえば、いくつかのアクセス許可:すべての投稿を表示する、自分の投稿のみを表示する、投稿を追加する、投稿を削除する、などなど。 –
スコープを認証時にダイナミックに割り当てることは簡単です。スコープをキー入力することはまだ不明です。私はあなたが実際に "スコープ"を意味する "権限"を参照していると思います。動的ロールに関する意味はまだ不明です。ユーザーのロールが頻繁に変更されることを示唆していますか? – arcseldon