2017-01-10 15 views
0

私はAuth0でアカウントを作成しました。私は、バックエンドAPIにAngular 2の簡単なログインをしようとしています。Auth0 - ルールとグループ&&ユーザー管理

1.私がしようとしているのは、ユーザーが正しいアクセス許可を持っているかどうかを確認するために、APIの役割にアクセスできるようにすることです。

Auth0認可の拡張機能を有効にして、1つのグループと1つのロールを作成しました。これを私が作成したテストユーザーに割り当てました。次に設定に行き、トークンのコンテンツのルールを公開しました持続性。

nodejsアプリケーションでJWTの権限/グループを表示するにはどうすればよいですか?私はexpress-jwtと、これを使用しています:私を与えている

const authenticate = jwt({ 
    secret: config.get('AUTH0_CLIENT_SECRET'), 
    audience: config.get('AUTH0_CLIENT_ID'), 
    credentialsRequired: false, 
}); 

はISS、サブ、AUDなどについて詳しく説明します。しかし、ユーザーのメタデータに関する詳細は、どのように私はこれを取得することができますか?また、私は明らかにAuth0を使用していないので、自分のデータベースにユーザーの詳細を格納することもベストプラクティスであるため、自分のIDを使用してユーザーのアクションに対して格納することも、Auth0でIDを使用することもできますデータベース内のユーザーアクションに対して保存することができます。私はあなたがスコープを渡すことができますロックするためのオプションパラメータがあります見ることができます

EDIT 1

OK、ログイン時にこれらを要求する悪い習慣ですか?今のところグループ/ロールはほんの一握りに過ぎません。または、APIがアクセス権などを表示するためにapp_metadataを取得するために提供されたトークンを使用してユーザーを検索できる方が良いですか。


2.どのようにユーザーを管理し、私は私たち自身の管理パネルに表示し、彼らが持っている権限を管理することができますので、それらを表示することができています。グループと役割の情報の場合については

答えて

0

groupsroles請求など)トークン自体の中に利用可能であり、あなたがexpress-jwtを使用していることを考えると、あなたがアクセスすることにより、サーバー側でこの情報にアクセスすることができます

req.user.groups 
req.user.roles 

express-jwtは、トークンに含まれるクレームをreq.userオブジェクトで利用できるようにします。

ユーザーを識別するために使用するIDに関して、ユーザートークンのsubクレームに含まれる値を使用することができます。この値はユニークで安定していることが保証されているため、まったく同じ方法で認証を使用する定期的なユーザーは、subのクレーム内で常に同じ値を持ちます。

グループとロールの情報を含める方法の1つは、scopeパラメータを使用してリクエストすることです。この情報をトークンに含めるよう要求するのは悪い習慣ではありませんが、SPAで使用される暗黙の許可によって配信されるトークンはコールバックURLの一部として含まれていることを考慮する必要があります。サイズはURLに課せられた制限によって制約されます。あなたの2番目の質問に関しては


、あなたはAuth0認可の拡張APIともAuth0管理APIの両方を統合することにより、独自の管理のバックエンドを実装できます。詳細は以下のリンクを参照してください。最初の部分に関して

+0

を、私は暗黙の補助金は、SPAで使用を考慮に入れる必要があると言います。私はこのauth0/oauthユーザー認証の方法に慣れていないのですか?別の方法はありますか?現在、Angular2アプリはauth0ロックを使用し、JWTを使用してAPIにリクエストを送信します。APIとAPIを使用してauth0にリクエストを送信する必要がありますか?また、auth0 issを使用してデータベースに格納することをお勧めしますか?ユーザーのためにユーザーを複製するのが最善でしょうか?ありがとう – mchaffe

+0

暗黙の許可では、トークンは 'https:// [yourdomain]/callback#[token_param_name] = [token_value]'のようなリダイレクトURLの一部として返されます。前の例では、URLの長さは '[token_value]'の内容に基づいて変わるため、トークン内にたくさんの情報が含まれていることを要求すると、URLサイズに問題が生じるかどうかを検討する必要があります。 Auth0ユーザ識別子 'サブ'クレームは、ユーザを一意に識別するため、データベースに格納することができます。 –

+0

ありがとうございます。私はAngular 2 Auth0のデモを実行しています。コールバックの設定場所や表示方法がわかりません。暗黙的な助成金に代わるものがあるのか​​、それとも最も単純な解決策なのでしょうか。 URLを大きくする可能性のある内容の限界を知っていますか?ありがとう – mchaffe

関連する問題