OpenID と DotNetOpenID を使用して ASP.NET サイトで管理者を認証する安全な方法

StackOverflow https://stackoverflow.com/questions/56944

  •  09-06-2019
  •  | 
  •  

質問

SO に勧められて、ユーザー認証に OpenID を使用する ASP.NET サイトを作成しようとしています。これは (MVC.NET ではなく) 通常の WinForms サイトであり、 ドットネットオープンID 認証用のライブラリです。

現在のセッションの "ClaimedID" (OpenIdLogin_LoggedIn イベントでメンバー DotNetOpenId.RelyingParty,OpenIdEventArgs.Response.ClaimedIdentifier として返される) を既知の管理者の OpenID (つまり、私の)?

そうである場合、この ID が表示されても安全ですか (例:オープンソースコード内)、それとも設定ファイルまたはデータベース行に「隠す」必要がありますか?(構成可能にした方が良い設計であることはわかっていますが、私の質問は安全性についてだけです。)

役に立ちましたか?

解決

Jarrett は、データベース テーブルの使用についていくつか良いコメントをしています。

もう 1 つの質問に答えるために、いいえ、OpenID をコードに入れることは一般的に機密事項ではありません。サイトにとってロールの設定がやりすぎだと思われる場合は、ClaimedIdentifier に対する単純な同等性チェックが最適です。

他のヒント

私の解決策は、Roles テーブルと同じ考え方に従うことです。ユーザーを認証したら、そのユーザーのロールを検索します。ユーザーが UserRoles テーブルで「管理者」ロールを持っている場合、管理者が実行できることはすべて実行できます。

私のアプリではオープン ID をブロードキャストしません。それらはテーブルに保存されます。さまざまなユーザー状態情報を保存するようにテーブルも変更しているため、アクションの結果ごとに Users テーブルにアクセスします。ホーム ページを除いて、そのテーブルから必要なユーザー情報がいくつかあります。LINQ を使用しているので、シリアル化時にロールのリストをユーザーにロードするために .LoadWith() を組み込みます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top