Azureへユーザーを追加する方法

# 前置き

これは私の Azure 環境（リソース）に共同開発するユーザーを追加した際のエラー対応です。

###前提条件
・私はこのAzureアカウントの管理者です。
・このAzureアカウントにはサブスクリプションが１つ紐づけてあります。
　（サブスクリプションによって状況は違うかもしれません。）
・全ての作業をAzureポータルサイト上で行っています。
　（CLI は良く解ってなくてデプロイにしか使ってないもので）
・作成するユーザーには「共同作成者」というロールを割り当てます。
###今回の問題点
”Azureでユーザーの追加ができなかった” 事です。

Azureポータルでユーザーを追加する際ユーザー名に hoge といれると、
「ユーザー名の文字または構文が無効です」
というエラーが出ました。
ユーザー名ラベル横のインフォメーションマーク(i) をマウスオーバーすると、
「ユーザー名は、ユーザーが Azure AD にサインインする際に入力する識別子です (例: 'chris＠contoso.com')。」
との説明がでます。
ではこれでどうかと hoge＠hoge.co.jp とメールアドレスを指定してみました。
今度は「'hoge.co.jp'は、このディレクトリ内の確認済みドメイン名ではありません」と別のエラーが出てしまいました。
###そもそもテナント、ドメイン、ディレクトリって何？
調べてなんとなくわかったのは以下のような感じです。

　(1)テナントとは、組織そのもの表します。1組織に1テナントが基本。
　(2)ディレクトリとはサブスクリプションに紐づけられたワークスペースのような物らしい。
　(3)ドメインとはテナントに付けられているドメイン名らしい。
　(4)サブスクリプションとは契約の種類です（たぶん）。
　　 紐づけられたディレクトに作るリソースの料金はそのサブスクリプションが支払います。

つまりユーザーの名前にドメインを含める事でサブスクリプションのディレクトリにも紐づけされる。
それによってリソースの共有化が出来るようになるという事のようです。

余計に混乱したような気がしなくもないですが・・・
###以下３つを理解すればなんとかユーザーを追加できました！
####(1)ドメインと既定のディレクトリはアカウント作成時に自動的に作られます
私の場合は [mail address - @].onmicrosoft.com というドメイン名になっています。
これはAzureポータルの右上、自分のアカウント名上でマウスオーバーすると確認出来ます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/adf81ec7-99fd-e25a-fffe-b86b1d1286cd.jpeg" width=500>
またドメイン名をコピーしたい場合は「既定のディレクトリ - 概要」画面で出来ます。
以降で実際にユーザーを作成する手順の説明に画面イメージも入れていますのでそちらを参考にしてください。
####(2)作成するユーザー名は [ユーザー名] + @ + [ドメイン名]とします
例えばドメイン名が hoge.onmicrosoft.com、追加したいユーザー名が newuser の場合、
newuser＠hoge.onmicrosoft.com
をユーザー名に指定すれば Azureは文句を言いません。
####(3)サイドメニューの「Azure Active Directory」からユーザーの登録・削除などが行えます
　入り口は大事ですよね。(私には解りにくかった）

###ユーザーを追加する手順について
アクセス制御(IAM)ではユーザーにもロールを割り当てられてますが、グループに割り当ててユーザーをそのグループへ参加させる方が管理上良さそうです。
ですので、今回はグループを作ってロールを割り当て、そのグループにユーザーを登録する形で権限を付与します。

それでは実際にユーザーを追加していきましょう。
# １．グループを作り、ロールを割り当てましょう
####(1)Azureポータルサイトのサイドメニューから「Azure Active Directory」を選び、「既定のディレクトリ - 概要」画面を表示します
![NewUser01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/6394eee5-5a42-9f40-3e43-a0f3a0b1f442.jpeg)

####(2)既定のディレクトリ内のサイドメニューから「グループ」を選択します
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/d257d919-128d-9cb3-d559-da4acfb7c0f6.jpeg" width=200 >
####(3)グループ - すべてのグループ画面で「＋新しいグループ」を選択します
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/733a6a71-5cd0-435e-6e74-75e2e0b16f23.jpeg" width=520>
####(4)新しいグループの作成画面ではグループの種類は「セキュリティ」、グループ名と説明は適当に入れて下さい
今回は「Developer」という名前にしました。
また所有者には現在のユーザー（自分自身）を指定して「作成」をクリックして下さい。
![NewUser05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/92737446-8836-2e2c-45c5-41783f5b9b9c.jpeg)
####(5)作成されると、下記のようにグループリストに表示されます
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/2c206bd4-7859-8cc7-4025-1e26ec2ae8dc.jpeg" width=640>
####(6)作成したグループにロールを割り当てます
ロールとは各リソースへのアクセス権限をどの程度与えるかを決めるもので、デフォルトでは何も権限が無い状態になっています。
今回は「共同作成者」というロールをこのグループに割り当てます。（結構何でも弄れるはず）
下記のサイドメニューから①「サブスクリプション」を選択すると右側にサブスクリプション画面が出るので、②を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/3cc9abd0-c8ad-4883-a7a1-0f0142a1e61f.jpeg" width=720>
続いて、サブスクリプション用のメニューから①の「アクセス制御(IAM)」を選択します。
右側の画面が出たら「ロールの割り当てを追加する」枠内の②「追加」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/6d4859e1-96d2-e852-b129-132520dc6fbc.jpeg" width=800">
「ロールの割り当ての追加」画面が出るので、①のコンボから「共同作成者」を選び、②の作成したグループを選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/4908c0c3-9cd7-b4dd-7ff6-9e5f5416d3ab.jpeg" width=320>
下記のように設定されているの確認して、赤枠の「保存」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/35d96ace-f618-fadb-d056-d230d8866e5e.jpeg" width=320>
実際にロールの割り当てが行えたかは、「ロールの割り当て」タブで確認できます。
![NewUser22-Group03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/9fe6dd5d-e0d6-864f-de0e-93009e94298c.jpeg)
（上記キャプチャ画像では別途ユーザーにも割り当てていますが、これは無視して下さい）
これでグループの作成は終了です。
# ２．さぁユーザーを作りましょう
####(1)Azure のサイドメニューから「Azure Active Directopy」を選び「既定のディレクトリ - 概要」画面に戻ります
ここで自分のドメインを控えておきます。（文字列選択すればコピーも出来ます）
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/b28fc9b6-7cc1-e604-3736-fc991355e175.jpeg" width=520>
　(キャプチャ画像の hogehogehoge は例です、実際に書かれている文字列を控えて下さい）
####(2)既定のディレクトリのサイドメニューから「ユーザー」を選択します
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/98268770-ce28-920b-6eed-a21b28d801a1.jpeg" width=200>
####(3)「＋新しいユーザー」を選択してユーザー登録画面を表示させます
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/68bd4688-a7c8-1994-2dfa-8eec300a945c.jpeg" width=512">　
####(4)名前を入力し、ロールを付与したグループを指定します
![NewUser10-Group01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/e59d6d83-c449-e14d-8a40-6bda3bfa49b4.jpeg)
名前の部分は適当に入れて構いません。
**ユーザー名の部分は「指定したいユーザー名」＋＠＋「(1)で控えたドメイン名」で指定します。**
ログインの際のアカウントIDとして使うので解り易いものがよいと思われます。
ちなみにここが不正な場合はエディット右端の✔マークが！マークで枠が赤色になり、！マークをマウスオーバーするとエラー原因が表示されます。

続いて赤枠のグループをクリックし、先ほどロールを付与したグループを指定します。
####(5)パスワードを控えます
それと忘れてはいけないのが「パスワードを表示」にチェックを入れてパスワードを控えることです。
右側の青いアイコンをクリックすればクリップボードへコピーします。
初期ログイン時に必要なので必ず控えておきましょう。（忘れたらユーザーを作り直す事になるかも）
####(6)作成をクリックして、ユーザーを作成します
少し待つと作成され、下記のように追加したユーザーが表示されます。
（解りにくいですが、下側の Azure Active Directory となっている方が追加ユーザーです）
![NewUser12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/c0728465-05e7-fdbc-8113-e44f87a1dc44.jpeg)
#３．作ったユーザーでログインしてみましょう																															
####(1)必要な情報がそろってるか確認しましょう
・作ったユーザーのユーザー名
　ドメインが入ったこんな（hogehoge＠hogehoge.onmicrosoft.com）やつです。
・パスワード
　作成時にメモしておいたはず。
　もしメモって無ければ、ごめんなさい私は救済方法を知らないので探すか、いっそユーザーを作り直すか。
2つともそろってますね？
####(2)アカウントを切り替えます
Azure のポータル画面右上の自分のアカウントをクリックします(画像の①のところ）。
開いたアカウントウィンドウの一番下の「別のアカウントでサインインする」を選択します
（画像の②のところ）。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/0fd72bf8-20b4-17e2-ef03-bc2fb0f16705.jpeg" width=280>
####(3)サインイン画面に切り替わるので、「別のアカウントを使用する」を選択します
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/bc411813-83a0-6657-e900-d726912c556e.jpeg" width=300>
####(4)ユーザー名に作成したユーザー名を入れます
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/efc9f224-0acd-a14e-43c8-cc8a8bc74640.jpeg" width=300>
####(5)パスワードを入力して、「サインイン」をクリックします
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/5b85451d-d704-2be0-b988-60ea91f4c5fd.jpeg" width=300>
####(6)パスワードの更新画面で、新しいパスワードを入力します
後でこのパスワードはリセットするので、適当なもので構いません。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/88d8721a-9804-2fc5-febd-8e4696a450c3.jpeg" width=400>
####(7)下記のように、ようこそと出れば無事新ユーザーでログイン出来ています
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/3b056cf6-0b66-2c8c-4cea-5814cee6f91b.jpeg" width=640>
####(8)ロールの割り当てを確認します
下記のようにすべてのリソースに作成済みのリソースが表示されていればロールの割り当てもうまく行っています。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/e21026fa-29b0-a193-4d9b-fd83c6cb797a.jpeg" width=480>
####(9)サブスクリプションが有効か確認します
下記のように仮想マシンを作成する際にサブスクリプションが有効になっている事で確認できます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/9cc63066-4d15-c228-1536-a633090b44d2.jpeg" width=480>
#４．実際に使用する人に連絡する、前にする事																															
いよいよ実際に使って貰う人にこのユーザーアカウントを連絡して、サインイン出来るか確認して貰いましょう。
おっと、その前にパスワードをリセットしてサインイン時に再設定させるように変更しておきましょう。
管理者でサインインし直して「Azure Active Directory」「ユーザー」の順で「すべてのユーザー」画面を表示させます。
![NewUser25.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/01119871-dfc2-213c-d6dd-0a7ab1208b89.jpeg)
②の追加したユーザーの左側チェックボックスにチェックを入れると③の「パスワードのリセット」が有効になるので、クリックします。
下記のようにリセット画面が出るので、「パスワードのリセット」をクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/891ec2cc-a7b4-ce8e-c4e0-f94235699a34.jpeg" width=300>
リセットされると下記の画面が出ます。
この時下の方に出ている**一時パスワードを必ず控えて下さい**。
右下赤枠内のマークをクリックするとクリップボードにコピーされます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260738/fd9a2187-f8cd-d42d-6cf6-412af7036428.jpeg" width=300>
#５．実際に使って貰う人に伝えましょう
安全な方法でユーザー名と一時パスワードを伝えれば作業は完了です。
相手に出来るだけ速やかにサインインを行いパスワードを変更して貰えるよう、連絡するタイミングも考慮しましょう。

と言う事で、私の方は無事にユーザーの追加が出来ました。

#あとがき

最後までお付き合い頂きありがとうございました。
Azure に対する勉強も全然足りておらず、間違いや勘違いもあると思います。
また、他にもっと良いやり方があるかもしれません。
その辺りお気づきの際はコメント頂けるとすごく助かります。
これを読まれた皆さま方の問題が解消する事を願っています。
　
令和元年七月二十日（土）