魁!! ITブログ

比較的素人向けです。「扇風機、新しいの買っちゃおっかなっ」くらいのノリで「これからちょっと勉強してみようかなっ」くらいの方々向けです。玄人には無駄な時間を費やさせてしまうかもしれません。ご了承ください。

【2】MicrosoftGraphさわってみた。(PowerAppsとMicrosoftGraphと私と。) ~届け。MicrosoftGraphを始める人へ~

※この記事は3部作の第2話です。

第1話の記事はこちら。

nagoyaitadmin.hatenablog.com

第3話の記事はこちら。

nagoyaitadmin.hatenablog.com

 

やあやあ。

奇遇ですね。こんなに早い頻度でお会いできるなんて。

運命かもしれない。

 

 

これは。

 

 

そうだ。

運命に違いない。

 

これを読んでいるアナタが僕好みの

可愛い女の子であった場合、

僕と結婚しても良いんじゃないかと思う。

 

 

まあ、この残念ブログにはそんな可愛い子ちゃん読者は

存在しないはずだからいいんだけど。

 

逆にそんな可愛い子ちゃんが読んでいた場合、

今すぐ読むのをやめていただきたい。

 

 

 

恥ずかしすぎるから。

 

 

 

さて。

前回の MicrosoftGraph ブログでは簡単に MicrosoftGraph を使うと

どんな事が出来そうなのかをざっっっっっっくり書いたんだけど、

肝心の使い方も何も書いてなかったから、

肩透かしを食らった方々もいると思う。

 

でも、このブログは初心者向けなので

そこらへんは目線を低くして読んでもらいたい。

もっと。

そう。

もっと低くしてもらってかまわない。

 

アナタにもあったでしょう?

初めてパソコンを触った日。

 

コマンドプロンプトで初めてコマンドを入力して

期待通りに動作した時。

無難にdirコマンドだろうか?

少しだけ大人になった気分になったはずだ。

 

そう。その時の気持ちを思い出しながら

このブログは読んでいただきたい。

 

 

んで。

 

肝心のMicrosoftGraphについて

ブログを書きたいと思うのだが、

さっきまで初心者の気持ちで見守って欲しいと書いておきつつ

あえて言いたい。

 

 

MicrosoftGraphをバキバキに使いこなそうとしたら、

1言語を初めから学ぶようなレベルである。

と、いう事を。

 

 

 

 

 

 

あー待って待って待って。

 

 

待って。 

違う違う。

逃げ出さないで。

 

逃げ出さないでもう少しだけ読んでいかないかね?

 

 

そうだね。

怖かったね。

逃げ出したくなったよね。

 

わかるよ。

気持ちはよーくわかるんだ。

オジサンもそうだった。

なんならオジサンは今でも泣き出しそうなくらいなんだ。

 

 

公園の鳩にエサをあげて

たくさん集まってきたところに

大ーきなくしゃみをして

鳩達が一斉に飛んで逃げていく。

 

朝から夕方まで、それを何回も繰り返す。

 

・・・そんな仕事があれば、

僕はその職に就きたいとさえ思う。

 

わかってくれるかい?

え?

それはよくわからないって?

 

 

そうかい。

僕だけかい。

 

 

オジサンは今すごい孤独感を感じているよ。

 

と、まあMicrosoftGraphを完璧に習得するのは

難しいとはいえ、

そこまで身構えないでもらいたい。

 

そんな君の為の、

その為の初心者ブログなんだ、ここは。

 

何故身構えなくても良いかというと、だ。

 

そんなに常日頃から

1時間に1回以上

のペースで使いますか?

MicrosoftGraphを。

使わないよね?

ってこと。

 

なんなら1案件につき5回くらいしか

使わないんじゃないかと思うの。

 

だからね、良いの。

 

完璧にマスターなんてしなくても。

 

今回のブログを読み終わった時に読者の皆さんに

感じてもらいたいことは

 

「あー、変なブログだったな。つまらないし。」

「まったく勉強にならん。憤慨。」

「長い。時間を返せ。」

 

とかでもいいんだけど

「あー、MicrosoftGraphって、

 こんな事ができるんだね。へぇー。」

くらいのノリで良いと思っている。

 

その上で。

 

一度でいい。

 

一度でいいから、

 MicrosoftGraphで何が出来るのか

それだけ軽く流し読みをしておいて欲しい。

この↓Microsoftさんのリンク先で。

docs.microsoft.com

 

さて。

じゃあそろそろ本題にいくね。

 

このMicrosoftGraphの3部作の第一部では

「MicrosoftGraphって、こんなもんだぜ」

って感じの内容だったから、

今回の第二部では

 

Ⅰ. Teamsをトリガーにして

Ⅱ. MicrosoftGraphを使って、

Ⅲ. ユーザーのデータを取得して、

Ⅳ. PowerAutomateで、

Ⅴ. 特定のデータを抽出してみた

 

までを、書いていくね。

ただし、HTTP コネクタを使うから、

残念だけど無課金ユーザーに関しては

今回は読み流すだけになってしまう。

他にも、色々と権限がないと実装出来ないことだらけなので、

その点には以下の点を踏まえて、ご注意いただきたい。

※※※ 今回の作業に必要な持ち物 ※※※

・AzureActiveDirectoryへのアクセス権限

 とか、アプリの登録権限とか。

 

・MicrosoftGraphでアクセスするAzureActiveDirectoryユーザー情報へのアクセス権限

 (可能であればテナントの管理者アカウント情報)

 

・Teamsのチーム作成権限

 (既存チームでも所有者権限があればOK)

 

・メモ帳(Win+R → notepad → Enter で出てくるアレ)

 

・いとしさ

 

・せつなさ

 

・心強さ

 

 

本題の前に言っておきたい。

今回のブログは、かなりの長編大作なんだ。

そもそも3部作だしね。

だから、時間がない時は読まない事を推奨するし、

なんなら

時間があっても、読む時にある程度の覚悟をしてから

このブログに臨んで欲しい。

なんたって、

今回と次回のブログの手順をなぞるだけで

一つのシステムが出来上がってしまうからね。

 

~~~ 本題 ~~~

※注※
本内容は私個人の意見や見解等であり、大変恐縮ですが記載内容に関して
誤りがある可能性がございます。
そのような場合、御連絡いただけましたら早急に訂正いたしますので、
よろしくお願いいたします。

 

で、今回の記事の内容を実施する場合、

事前にMicrosoftTeamsで自分専用でもいいから

チームを一個作っておいていただきたい。

んで、できればチャネルも一つ追加しといてください。

チームもチャネルも既存のヤツでもかまわないけど、

自分がチームの所有者になってるものが好ましいね。

それと、AzurePortalにログインしといてもらって、

あとは、Microsoft365のホーム画面を開いた

ブラウザが何個かあるといいね。

3つくらいかな?

あとは。。。メモ帳とか開いておくといいかな。

 

 

さて。

じゃあどこから書こうか。

最初は、Teamsでチームを一つ作ってもらいたい。

そんな自由に作れるもんじゃないぜって方は、

別に既存のチームをつかってもらっても構わない。

 

チームの作り方は以下の過去記事リンク先からご覧ください。

nagoyaitadmin.hatenablog.com

 

「1.Teamsの新チーム作って」

のところに若干書いてあります。

本当に若干だけど。

 

さて、じゃあ一先ず

Ⅰ. Teamsをトリガーにして

は、もう終わり。

簡単だろう?

いや、ゼロじゃないけど今回のⅢで少し情報が必要になるだけ。

 

じゃ次さ。

最難関箇所。

 最 ・ 難 ・ 関 

ん。

Ⅱ. MicrosoftGraphを使って、

ここね。

前回で少しだけ触れてるけど、

まずは以下のリンクで必要なコマンドを実行しておきたい。

Graph エクスプローラー - Microsoft Graph

開いてくれただろうか。

 

開いてくれた後は、何も気にせず以下の文字列を

コピーして貼り付けて「クエリの実行」をしてほしい。

 ↓  コピペ文字列  ↓ 

https://graph.microsoft.com/v1.0/users/ほにゃほにゃ@ほにゃ.jp

f:id:NagoyaITAdmin:20201104150142p:plain

素直な人はちゃんとエラーが出たはずだ。

当然 ほにゃほにゃ@ほにゃ.jp なんてアドレスは存在しないだろうから、

エラーが起きるのである。

素直なアナタ、ありがとう。

しっかりと失敗する場合を確認した後、

自分のメールアドレスに変えて、改めて「クエリの実行」を実行してもらいたい。

 

どうだろうか。

f:id:NagoyaITAdmin:20201104150837p:plain

こんな感じで、自分の情報が取得できたかな?

AzureActiveDirectoryに登録されている情報が羅列されたと思う。

自分のメールアドレスにして実行してもエラーが表示されている場合、

以下を確認してもらいたい。

1つ目。「職場または学校アカウント」でサインインしていないのではないか。

f:id:NagoyaITAdmin:20201104151718p:plain

サインインしていないと、さすがにアナタの情報は取得できない。

 

2つ目。権限が与えられていないのかもしれない。

f:id:NagoyaITAdmin:20201104152051p:plain

サインインしてても権限が無いと情報を取得できない。

赤帯で「Forbidden - **. こちらの許可に同意する必要が**修正 タブ」

って出ている場合は、基本的にこの後の作業を実施するのはオススメ出来ません。

然るべき上長なり部門なりに対して許可をいただいた方が無難です。

というか、基本的には進めないと思う。

 

赤帯のメッセージの通りに、画面の「アクセス許可の修正」タブに移動して、

「同意」ボタンあるやん。

同意しちゃえばいいかー

なんて思って「同意」ボタンを押しても

f:id:NagoyaITAdmin:20201106194037p:plain

「管理者権限のアカウントでログインして承諾してくれ」って、

ダイアログが表示される。


なので、基本的にはシステム管理者の方へ連絡して

「MicrosoftGraphという技術を使って、
 社内システムを
より便利にできると思います。
 一時的でも構いませんから権限をください」

と、懇願してください。

許されるかどうか

評価されるか否か

それは神のみぞ知るということで、勘弁してください。

 

さて「エラーは起きているが権限がない」状態の方々に向けては、

上記でお伝えしているが、アクセス許可の修正タブの「同意」をしてもらいたい。

f:id:NagoyaITAdmin:20201104153456p:plain

「アクセス許可の修正」タブに表示されている、権限の「同意」ボタン

上の画像で一番右にある青い「同意」ボタンを押してもらいたい。

すると、下の様なダイアログが表示されたと思う。

f:id:NagoyaITAdmin:20201104161452p:plain

アクセス許可を付与するダイアログ

上の画面では既に「組織の代理として同意する」にチェックがついているが

皆さんのダイアログにはチェックされていないだろうから

チェックを付けて「承諾」を押すと、権限が付与されたことになる。

f:id:NagoyaITAdmin:20201104162239p:plain

権限が付与されると、こんな感じ。「同意済み」

さて、そんな感じで必要な項目に対して権限が付与されたら、

さすがにもうさっきのコマンドを実行してもエラーが表示されることは無いと思う。

どうだい?

うまくいったかい?

戻ってコマンドを探すのがめんどくさいアナタには、

特別にこちらにも用意してあげたよ。

 ↓  コピペ文字列  ↓ 

https://graph.microsoft.com/v1.0/users/自分の@メアド.jp

f:id:NagoyaITAdmin:20201104162604p:plain

☑ OK ***** って一行が表示されたかな?

はい、よく出来ました。

頑張ったね。

大丈夫だよ。

僕はここまで出来る様になるまで10年は要したから。

それに比べればアナタは天才だ。

 

 

じゃ、次いこうか。

 

 

Ⅲ. ユーザーのデータを取得して、

・・・?

ん?

 

 

あぁー。

 

 

なるほどねー。

 

 

マジかー。

 

 

もう出来ちゃってるわ。

 

 

アナタ。

 

 

取得出来てる。

 

 

さっきのコマンドで、出来ちゃってるの。

 

ユーザー情報取得。

 

 

そ・こ・で

 

 

ここでは

アプリの登録

を行いたいと思う。

 

いやいやあれよ?

 

アプリっつっても、

 

パズ〇ラとか、モン〇タース〇ライクみたいな

携帯アプリを作ろうってことじゃないよ?

 

 

 

今回作ろうとしているシステムを実現するために、

AzureActiveDirectoryで「アプリを登録」する必要があるんだ。

ここで作るアプリというのは、

前の手順で行った ユーザー情報の取得 に必要な

権限を予めそのアプリに付与してあげる手順なの。

 

じゃあ早速だけど、Microsoft Azure の画面を開いてくれるかな。

f:id:NagoyaITAdmin:20201104163841p:plain

AzurePortalのホーム画面。AzureActiveDirctoryを選択してほしい。

 

残念ながら、Azureに関しては

私はそこまで強くないので、

今回はサラッと説明して、質問は受け付けません。

すまねぇ。

 

ただ、僕よりも

しっかりしたMVPの方々が

しっかりとしたブログとか

書いてらっしゃるから、

そちらを御参考ください。

 

 

まずは手始めにAzureActiveDirectory の画面、

左っ側に羅列してあるメニューの中から「アプリの登録」を押す。

f:id:NagoyaITAdmin:20201104165353p:plain

AzureActiveDirectory の画面。左っ側にある「アプリの登録」を押してくれい。

 

「アプリの登録」画面から「+新規登録」ボタンを押す。

f:id:NagoyaITAdmin:20201104165937p:plain

「アプリの登録」画面。「+新規登録」を押すんだ。

するとこんな感じの登録画面が表示されるんだ。

f:id:NagoyaITAdmin:20201104171212p:plain

「アプリケーションの登録」画面。適当に好きな感じで入力してもらいたい。

名前の入力は適当でかまわない。

後で見返した時にすぐわかる名前にしてあげるといいかもしれないね。

 GraghTEST1-<年月日>-ユーザー情報取得用

みたいな?

そんな感じで。

でまあ、特に外部とやりとりさせる必要もないでしょうから、

「シングルテナント」

を選択してあげて、

「登録」ボタンを押してくださいな。

 

じゃ次ね。

アプリの登録が終わったら、

左側に「APIのアクセス許可」ってあっから。

それ押して?

ありがとう。

んじゃ、さらに

「+アクセス許可の追加」ってあるから

それを押してくれるかい?

ねえ、押してよ。

押してってば!

何なの?反抗期なの?

f:id:NagoyaITAdmin:20201105120324p:plain

左っ側の「APIのアクセス許可」から「アクセス許可の追加」ボタンを押せぇっ!

ちなみに、キリよく前の手順の「アプリを登録」の手順の後、

この作業を翌日に持ち越しちゃったって人がいた場合は、

「アプリの登録」を押せば、

作ったアプリが表示されてるから、

それを選択すれば、この画面に来るよ。

おはよう。

今日も一日頑張ろうね。

 

さて、みんなちゃんとついて来れたかい?

「+アクセス許可の追加」ボタンを押せたかな?

よーし良い子だ。

後でちゃんと御褒美をあげようね。

 

f:id:NagoyaITAdmin:20201105121319p:plain

下にスクロールしよう。画面が大きい人はスクロールいらないかもだけど。

 

そしたらすぐに横長にでかい「Microsoft Graph」って出てきたよね?

f:id:NagoyaITAdmin:20201105121427p:plain

でっかくMicrosoft Graph って表示されるね。そうだよ。これを押すんだよ。

だよね。

良かった。

じゃ押して。

 

そしたらさらにこんな画面が出てくるね?

f:id:NagoyaITAdmin:20201105121850p:plain

どっちだと思う?そうだよ右だよ。赤枠で囲っておいてあげてるからね。

そう、パッと

「右を選べばいいんだな」

って思ったでしょ?

天才かよ。

当たりだよ。

すげえな君。

 

でさ、次に何をするかっていうと

 

このアプリに対して、

どんな権限を与えますか?

 

って設定してあげるのね。

今回は、

User.Read.All

って権限を付与してあげたいと思う。

「アプリケーションの追加」を押したら

アクセス許可を選択するの検索欄に

「User」

って打ってみよう。

そしたら表示された中に「User」ってのが見つかるかな?

f:id:NagoyaITAdmin:20201105125655p:plain

右の「アプリケーションの許可」を選んだら「User」って手入力してみよう。

 

そうだね。

Userだね。

じゃあ、展開して広げてみてみようか。

f:id:NagoyaITAdmin:20201105130530p:plain

展開したら目的の「User.Read.All」ってあるから、チェックだね。

よく出来ました。

そのまま「アクセス許可の追加」を押せば、権限の付与完了だよ。

 

 

で。

 

じゃあどんな権限を付与してあげれば良いのか

 

ってことだよね。

それはね、やりたいことについて調べる必要があるわけ。

今回は、一番簡単そうな

「自分のプロフィール情報」

を取得するので、このページを見てもらえればいいんだ。

docs.microsoft.com

 

さて、じゃあ違うこと(自分のプロフィールなんか見たいわけじゃない)

したい場合はどうしたら良いの?

そうだよね。

わかるよ。

お気持ちは察する。

 

どえりゃあめんどくせぇでね。

ちなみに、名古屋の人間でも別に

 

 えびふりゃあ

 

って言いませんから。

 

おっと失礼、ついうっかり名古屋魂に火がついちまったぜ。

べらんめえ。

 

そうだよね。

どの権限が必要なのかは、ここから調べてみるのがいいんじゃないかと思う。

f:id:NagoyaITAdmin:20201105124542p:plain

どの権限を与えればよいのか、ここでそれっぽいのを探す。

 

もしくは、さっきの手順Ⅱ.でやった

Graph エクスプローラ

のところで実行したいコマンドを打てば、

必要な権限が「アクセス許可の修正」のタブに表示されてるから、

それに対して権限を付与してあげるのがいいかもしれないね。

f:id:NagoyaITAdmin:20201105125136p:plain

手順Ⅱ.のとこでも出てきた画像。

左側に、User.Readとか書いてるよね。

 

大丈夫かな?

皆んな、ついて来てくれているかな?

ついて来れてるかな?

もう少しだから安心して。

最後「✔**に管理者の同意を与えます」ってボタンを押してほしい。

 

f:id:NagoyaITAdmin:20201105131618p:plain

権限の付与を許可してあげる必要がある。

おめでとう。

これでアプリを作成して、

アプリに対して権限を与えることが出来た。

あとはトドメの一発だけメモして欲しい事がある。

 

今度は画面左っ側「証明書とシークレット」から

「新しいクライアントシークレット」

を押してもらいたい。

f:id:NagoyaITAdmin:20201105132225p:plain

「証明書とシークレット」から「新しいクライアントシークレット」を押そう。

 

 

するとどうだろうか。

f:id:NagoyaITAdmin:20201105132609p:plain

クライアントシークレットの追加 のダイアログ。

1年 2年 なし

を選択して追加できる。

好きに設定してもらえば良いと思うけど、

昨今のセキュリティやら何やらの事情を鑑みると、

考えなしに「なし」と設定するのは危ういかもしれないね。

 

どうだい?追加したかい?

追加したら、まずは手を止めて欲しい。

というのも、この画面でしか取得できない情報が存在するのだ。

 

このクライアントシークレットというのは、

設定した今まさにその画面でしか取得できない代物なのである。

なので、

止めた手を動かして、

慎重にコピーして、

メモ帳に張り付けて、

保存して欲しい。

 

出来たかな?

メモを取り忘れたお茶目な君に朗報だ。

正直な話、もう一回取得し直せばそれで良いと思われる。

 

そうしたら、せっかくなので追加でメモをしてもらいたい。

以下の2点だ。

 ・アプリケーション(クライアント)ID

 ・ディレクトリ(テナント)ID

さっきのシークレットクライアントをメモしたメモ帳に、

追記しておくといいね。

情報の記載場所は、ここ。

f:id:NagoyaITAdmin:20201105143741p:plain

AzureActiveDirectory→アプリの登録→作ったアプリ名をクリックすると

 

作ったアプリを開くと、アプリケーションIDとディレクトリIDが記載されてるね。

f:id:NagoyaITAdmin:20201105142817p:plain

アプリケーション(クライアント)IDと、ディレクトリ(テナント)IDだ

 

いやー申し訳ない。

ちょっとばかし長くなっちゃったね。

じゃ、改めて次の手順に進もうか。

ん?

ちょっと休憩するかい?

OK、休んでおいで。

僕もちょっと準備しておくから。

 

え?休憩しなさいよ。

 

なんだよヤル気満々かよ。

しょうがねぇなあ。

ついてこいよオラァッ!

 

Ⅳ. PowerAutomateで、

遂に出てきたね。

PowerAutomate。

 

以前は Flow って製品名だったものが

PowerAutomateとしてPowerPlatformに仲間入りしたんだね。

(名前が変わっただけで正直中身はかわってないんだけど)

 

で、このままの流れで最後まで書ききっちゃっても

僕は一向に構わないんだけど、

さすがに皆んながお疲れじゃんね?

 

そうでしょ?

 

ねえ、疲れたって言ってよ。

 

 

ちょっと情報量多すぎて疲れたーって言ってよ。

 

 

 

疲れたよ。

僕は。

 

だから、続きは次のブログ記事へ続くよ!

リンクを貼っておくね!

今回は2記事同時リリースだよ!

 

 

次回はそこらへんについて、

実装してみた!を書くね。

~~~ 本 題 終 了 ~~~

 

いやー、疲れた。

 

マジ、サンキューな。 

 

第三部 は今回の続きをするよ。
「MicrosoftGraphをPowerAutomateでデータ分析?」
 

みたいな感じかなー。

 

乞うご期待!

同時リリースだから、

そのままリンク先へ行ってくれればいいんだけどさ。

 

また見てくれよな! 

 

本ブログを御覧になった御意見や御感想は専用ハガキに

 お名前・住所・メールアドレス・欲しい商品

を御記入の上、ポストに投函・・・しないでください。

コメントをお待ちしております。