Azure App Service WebアプリでOffice365操作 ~ユーザー操作編~

Azure App Service WebアプリでOffice365操作
↑こちらの記事でAzure App Service上のWebアプリケーションにてOffice365 API を使用してExchangeOnlineを操作する検証をしましたが、今回はAzure AD GraphAPIを使用してOffice365のユーザー操作をする方法について記載したいと思います。

Azure AD GraphAPIについて

Azure Active Directory (AD) Graph API を使用すると、OData REST API エンドポイントを介して Azure AD にプログラムによってアクセスすることができ、ディレクトリのデータとオブジェクトに対して、作成、読み取り、更新、削除 の各操作を実行することができます。

今回は、Office365のユーザー作成を行うアプリケーションを、Azure App Service上にPHPを使用して作成してみたいと思います。

 

クライアントID、キー、確認コードの取得

Office365とOAuthにより認証を行う為、アプリケーションを作成し、クライアントID、キー(クライアントシークレット)、確認コードを取得します。

【手順】
1.~15.
Azure App Service WebアプリでOffice365操作』に記載の「クライアントID、キー、確認コードの取得」の手順1~15を行い、クライアントID、キーを取得します。

16.画面下部にスクロールし、「アプリケーションの追加」をクリックします。

image004

17.「Microsoft Graph」をクリックします。

image005

18.「選択済み」に「Microsoft Graph」が表示されますので、画面下部の「✔」をクリックします。

image007

19.アプリケーションが操作できる権限を設定します。「デリゲートされたアクセス許可」のプルダウンより「Read and write directory data」にチェックを入れ、画面下部の「保存」をクリックします。

image008

20.上記でクライアントIDとキーが取得できました。次に確認コードを取得します。
ブラウザに以下のURLを入力します。

https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=<上記で取得したクライアントID>&resource=https%3A%2F%2Fgraph.windows.net %2f&redirect_uri=<リダイレクトURI>

例:https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=80a273c8-086f-44d3-978axxxxxxxxxxx&resource= https%3A%2F%2Fgraph. windows.net %2f&redirect_uri=http%3a%2f%2flocalhost%2ftest001

21.サインイン画面が表示されますので、上記1で管理ポータルにサインインしたユーザーでサインインします。

image009

認証に成功すると、ブラウザは、リダイレクトURI?code=確認コード のURLに遷移しますので、確認コードの部分をコピーしてメモ帳などに張り付けておきます。

 

Azure App Service Webアプリケーションの作成

Azure App Service にて、Office365のユーザーを操作するWebアプリケーションを作成します。
(以下の例では、Office365にユーザーを作成するアプリケーションを作成します。)

22.以下のURLよりAzureの管理ポータルにサインインします。
https://portal.azure.com/

23.画面左部のメニューから「参照」→「Marketplace」の順にクリックします。

image010

24.検索用のテキストボックスに「php」と入力してエンターを押します。

image011

25.「PHP Empty Web App」をクリックします。

image012

26.「作成」をクリックします。

image013

27.アプリ名に任意の値(Azure上で一意である必要があります)、リソースグループ名に任意の値を入力し、「作成」をクリックします。

image014

28.画面左部のメニューから「App Service」をクリックします。作成したApp Serviceが表示されますので、クリックします。

image015

29.作成したApp Serviceが選択されている状態で、画面中央の一覧を下部にスクロールし、「App Service Editor(プレビュー)」をクリックします。

image016

30.「移動→」をクリックします。

image017

31.App Service Editorが起動します。「WWWROOT」配下にある「index.php」をクリックします。

image018

32.「index.php」の編集画面が表示されます。

image019

33.「index.php」に以下のコードを記載します。

//Access Token 取得
$authreq = curl_init();
curl_setopt($authreq, CURLOPT_URL,
'https://login.microsoftonline.com/common/oauth2/token');
curl_setopt($authreq, CURLOPT_POST, true);
curl_setopt($authreq, CURLOPT_HTTPHEADER,
array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($authreq, CURLOPT_POSTFIELDS, http_build_query(array(
'grant_type' => 'authorization_code',
'code' => $_GET['code'],
'client_id' => 'クライアントIDを記載',
'client_secret' => 'キーを記載',
'redirect_uri' => 'リダイレクトURIを記載
(「クライアントID、キー、確認コードの取得」の手順8にて指定したアプリケーションを動かすURL
 例:http://localhost/test002)',
)));
curl_setopt($authreq, CURLOPT_RETURNTRANSFER, true);
curl_setopt($authreq, CURLOPT_SSL_VERIFYPEER, false);
$authres = json_decode(curl_exec($authreq));
curl_close($authreq);
$access_token = $authres->access_token;
//ユーザー作成 
$headers = array(
"Content-Type: application/json",
'Authorization: Bearer ' .$access_token
);
$datareq2 = curl_init();  
curl_setopt($datareq2, CURLOPT_URL,
'https://graph.windows.net/ドメイン名を記載/users?api-version=1.6');
curl_setopt($datareq2, CURLOPT_POST, true);  
curl_setopt($datareq2, CURLOPT_HTTPHEADER,$headers);
/**作成するユーザー情報**/
$json = '{
"accountEnabled": true,
"displayName": "テスト次郎",
"mailNickname": "testjiro",
"passwordProfile": {
"password": "XXXXXXXXX",
"forceChangePasswordNextLogin": false
},
"usageLocation": "JP",
"userPrincipalName": "testjiro@test.onmicrosoft.com"'
.'}';
curl_setopt($datareq2, CURLOPT_POSTFIELDS,$json);
curl_setopt($datareq2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($datareq2, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($datareq2);
curl_close($datareq2);

記載したコードの保存は自動で行われます。画面上部にSAVEDと表示されていれば、最新のコードが保存されている状態です。

image022

動作確認

【手順】

34.管理ポータルのトップ画面に戻り、画面左部のメニューから「App Service」をクリックし、作成したApp Serviceをクリックします。

image023

35.「URL」に表示されているURLが作成したApp Service のURLになります。

image024

ブラウザにて、
< App Service のURL>?code=<確認コード>
にアクセスすると該当のテナントにユーザーが作成されます。
Office365管理ポータルのユーザー一覧より作成されたユーザーが確認できます。

image025

 

Be the first to comment

コメント投稿

Your email address will not be published.


*