質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

解決済

1回答

969閲覧

ASP.NET MVC:Azure Active Directoryとの連携でログインしていないユーザーの情報を取得したい

t.okuno

総合スコア10

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

0クリップ

投稿2020/04/27 07:46

編集2020/04/27 07:49

ASP.NET MVCで社内用のポータルサイトを作成しています。その際ポータルサイト内でログインフォームを用意する代わりにAzure Active Directory(以下AAD)と連携させて、仕事中に使用しているドメインでログインできるようにしています。ログインしているユーザーの情報も、ユーザーアカウントのメールアドレスだけですが取得できています。
今回お聞きしたいのは**「そのポータルサイトに新規ユーザーを登録しようとしたときに、ログインユーザーをではない別のアカウントのアドレスをAADに渡してそのアカウントの情報を取得できるような仕組みがあるのかどうか」**という事です。

開発環境

ツール:Visual Studio 2017
プロジェクト:ASP.NET Webアプリケーション (.NET Framework)

ポータルサイトの仕様

ポータルサイトと連携させているSQLデータベースにユーザーテーブルを用意し、以下のようなカラムを用意しています:

  • userid:社内ドメインとして使用されるメールアドレス
  • username:使用者の氏名

仮にAADのログイン認証を通過したとしても、このユーザーテーブルに登録がないアカウントの場合はエラーとなり使用できないようにしています。

ユーザー登録フォームは以下のような感じです(実際はcshtml形式ですが、分かりやすくするためにHTML形式に変換しています):

HTML

1<h1>新規ユーザー登録</h1> 2<form method="post" action="/Home/Insert" > 3 <div> 4 <label for="userid">ユーザーID</label> 5 <input type="text" id="userid" name="userid" /> 6 <input type="button" value="AADからアカウント情報を取得" /> 7 </div> 8 <div> 9 <label for="username">ユーザー名</label> 10 <input type="text" id="username" name="username" /> 11 </div> 12 <div> 13 <input type="submit" value="送信" /> 14 </div> 15</form>
実現したい事

ここではAADに「aaa@tera.com」「bbb@tera.com」「ccc@tera.com」の3つのアカウントが登録されており、そのうち「aaa@」だけが前述のユーザーテーブルにも登録済みでポータルサイトにログイン可能とします。
0. 「aaa@
」でポータルサイトにログイン
0. ポータルサイトで新規ユーザー登録のページを開き、useridの欄に「bbb@」のアドレスを入力
0. ユーザー登録フォームの中に「AADからアカウント情報を取得」ボタンがあり、押下するとAAD上で「bbb@
」アカウントに紐づけられている姓と名を取得してusernameの欄に表示させる**(今回方法を聞きたい箇所)**
0. 「登録」ボタン押下で「bbb@~」アカウントが登録されログイン可能になる

上記の手順にも記述があるように、3.の「AAD上で「bbb@~」アカウントに紐づけられている姓と名を取得」する方法を今回お聞きしたいと思っております。ログイン中ユーザーの情報を取得する方法であればJWTやGraph APIなどで実現できることが分かっていますが、そうではない別のユーザーの情報も取得できるかどうかをお聞きしたいです。

長文失礼いたしました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Graph API でログイン中ユーザーは取れるのに別のユーザーは取れない、ということでしょうか。Scope に User.Read だけがあって User.ReadBasic.All がないなら、そのせいかもしれません。

投稿2020/04/27 23:51

NakamuraYoichi

総合スコア374

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t.okuno

2020/04/28 00:04

早速のご回答ありがとうございます。 現状Graph APIは使用していないのですが、もし他のユーザー情報も取れるようであればそちらに切り替えようと考えておりました。早速試してみたいと思います。
t.okuno

2020/05/01 04:19

返答が遅くなり申し訳ございません。 自身の不器用な部分もあり、回答をいただいてからまだちゃんと動かせる状態にはないのですが、Graphの概要ページやエクスプローラーを見る限りこれを用いれば達成できると思います。 他の方の回答もありませんので、この回答をベストアンサーとさせて頂きます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問