2

アプリでユーザー名/パスワードを使用する際のセキュリティ リスクを回避し、認証を簡素化するために、Windows Azure アクセス コントロールを使用しようとしています。ただし、これは、ユーザーを「事前認証」したい中規模または大規模の企業が使用できるサイトです。つまり、ユーザーが Azure ACS を介してサインインする前に、ユーザーの Windows Live ID を入力してユーザーを一括作成し、アカウントを自動的に作成したい場合があります。アカウントを作成するための 1 回限りのページへのリンクを記載したメールをそのユーザーに送信することで、これを実現できますが、もう少しシームレスなことをしたいと考えています。

私がやろうとしているのは、Team Foundation Service (*.visualstudio.com) を使用して、Windows Live ID を入力するだけでユーザーをチーム プロジェクトに追加できるようにする方法と同じです。一度入力すると、ユーザーはログインしてプロジェクトにアクセスできます。 、そのユーザーが以前に TFS にサインインしたことがない場合でも。

私が理解していないのは、ACS と System.IdentityModel を使用してそれを行う方法です。nameidentifier クレームを使用してユーザーを一意に識別できますが、特定のプロバイダーを介して別のユーザーの nameidentifier を取得するにはどうすればよいですか?

説明が下手で申し訳ありませんが、お気軽にご質問ください。

4

1 に答える 1

2

本当の答えではありませんが、この問題に関する私の考えを共有したかっただけです。

ACS と Windows Live 認証の問題は、ACS がユーザーの電子メール アドレスを返さないことです。ACS から返されるのは、ユーザーが認証されたことを示すトークンだけです。このトークンは、ACS レルムに基づいて作成されます (つまり、ACS レルムを変更すると、同じユーザーに対して新しいトークンが ACS によって作成されます)。ここでも、アプリケーションを使用している会社の管理者はユーザーの電子メール アドレスを入力できますが、ACS からその電子メール アドレスを取得する方法はありません。

大声で考えてみてください:)、あなたができることがいくつかあります:

  1. ACS を使用してユーザーを認証してから、Windows Live REST API を使用して、ACS から送信されたトークンを使用してユーザーの詳細を取得します。Windows Live REST API を使用すると、ユーザーに関する名前、電子メール アドレスなどの詳細を取得できます。または、ユーザーの認証に Windows Live API のみを使用することもできます。100% 確信はありませんが、これが Team Foundation Service の機能だと思います。http://zud.ioを参照してください。これは同じことを行うためです。つまり、Windows Live API を使用します。
  2. もう 1 つのアイデアは、ある種の招待トークンを作成することです。このアプローチでは、管理者は人々を「招待」します。ユーザーの名前と電子メール アドレスを提供することで招待レコードを作成し、アプリケーションは一意の招待トークンを作成します。その後、アプリケーションは招待リンクを作成し、それを使用してアプリケーションにアクセスして自分自身を認証するユーザーを作成できます。認証が完了すると、招待レコードを検索してデータベースからユーザー情報を取得し、ユーザー レコードを作成して認証トークンをユーザー レコードに関連付けることができます。このアプローチの問題点は、管理者が提供したものと同じ Live Id をユーザーが使用できない可能性があることです。たとえば、私は少なくとも 3 つのライブ ID を持っており、その招待リンクがあれば、それらのライブ ID のいずれかで署名でき、アプリケーションは「
  3. さらに別のアイデアは、ACS の代わりに Windows Azure Active Directory (WAAD) を使用することです。アプリケーションで Graph API を使用して、クライアントの新しいユーザーを作成できます。ユーザー名とパスワードは、WAAD によって管理されているため、まだ管理していません。私が考えることができる2つの問題は、a)エンドユーザーとして、ユーザー名とパスワードの組み合わせをもう1つ覚えておく必要があることと、b)ログイン時に資格情報を提供する必要がmyusername@yourtenantname.onmicrosoft.comあることです。面倒。

私たちも同じ痛みを経験しており、今のところアプローチ#2を使用することにしました.

お役に立てれば。

于 2013-09-07T04:24:21.297 に答える