Laravel Socialite でMicrosoft Graph (Office 365アカウント)認証する

前回の記事 「Laravel 5.8からMicrosoft Graph APIを利用する (公式ドキュメント編)」では、Micsoroft公式のチュートリアル ドキュメントに沿って、LaravelアプリケーションからMicrosoft Graph APIをOAuth認証プロバイダとして利用する手順について確認しました。

このチュートリアルは、OAuthの認証ロジックをleague/oauth2-clientを使って独自に実装していましたが、実際はLaravel公式のOAuth認証パッケージLaravel Socialiteを使いたいところです。

Laravel Socialiteは非常に多くの認証プロバイダーに対応しています。対応プロバイダーは、Socialite Providersで確認できます。
Microsoft Graphについてももちろん対応しています。

この記事では、Laravel Socialiteを利用してAzure ADのアカウントで認証を実装する手順について確認します。
Auth Scaffoldは使わず、つまりデータベース認証は使わずに、OAuth認証後にLaravel標準のAuthユーザとしてログインし、Auth middlewareを使って要認証のルーティングを保護する手順についても説明しています。

この記事に含まないこと

Azure ADに登録されたアカウントによる認証にのみフォーカスして説明しています。
Microsoft Graph APIを利用したデータの取得については説明しません。
よって、アクセストークンの更新についても言及していません。
“Laravel Socialite でMicrosoft Graph (Office 365アカウント)認証する” の続きを読む

Laravel 5.8からMicrosoft Graph APIを利用する (公式ドキュメント編)

LaravelアプリでOffice 365アカウントによるOAuth認証を実装するにあたって、公式ドキュメント PHP アプリで Outlook REST API を使用する方法 – Outlook Developer | Microsoft Docs の手順を確認してみたメモになります。

このブログの以前の記事「Office 365 REST APIを利用したRuby on Railsアプリの作成」でRuby on Rails版の確認をしていますが、そのPHP版になります。

公式ドキュメントでは、チュートリアル形式でAuthorization Code Flowの処理を一つ一つ実装し、詳細に解説していますが、実際には、これらの手順はLaravel Socialiteを利用すると簡単に実装できます。
そこで、この記事では、Azure ADにアプリケーションを登録し、チュートリアル サンプルを手元で動かし、手っ取り早くAzure ADに登録されたアカウントのアクセストークンをLaravelアプリから取得する流れを体感することができるようにまとめてみました。

Azure Active Directory 管理センター

Rails版の記事を書いていたのは2016年でしたが、その後新しいAzure ADの管理ポータル Azure Active Directory 管理センターがリリースされていました。

The new Azure AD Admin Console is GA!

2017年なのですでにだいぶ前ですね。

Azure Active Directory 管理センターには、直接 https://aad.portal.azure.com/ を開くか、Office 365の管理センターでAzure Active Directoryを選択して開くことができます。


“Laravel 5.8からMicrosoft Graph APIを利用する (公式ドキュメント編)” の続きを読む

MS Teams のbot開発の始め方

Get started on the Microsoft Teams platform with Node.jsを参考に、MS Teams用のbot作成に必要な手順のみを確認したメモになります。

概要

MS TeamsのBotは、Botの他にTabなどを含むアプリケーションとして定義し、アプリケーションをMS Teamsにデプロイすることで利用可能になります。
また、MS Teamsのbotは、MS Bot frameworkに登録し、それをアプリケーションのmanifestに指定する必要があります。

Botのホストはどこでも可能で、エンドポイントはBot frameworkのBotの設定で指定します。
Botの認証は、Bot frameworkで発行したパスワードにより行います。

(Bot Frameworkは、Azure Bot Serviceに移行されました。以下の記事のBot Frameworkの記述はAzure Bot Serviceに置き換えて参照ください)

事前準備

Office 365のテナントを用意する

Office 365 Developer Programに登録すると1年間利用可能な開発用のオフィス365テナントを入手できます。

“MS Teams のbot開発の始め方” の続きを読む

Azure ADに登録されているAPI用のアクセストークンをJWTで取得するには

Office 365 Rest APIに対してJWT Bearer Tokenフローで利用するアプリケーションを作るにあたって、まずは、ADAL(Active Directory Authentication Library)を利用したチュートリアルAuthenticating to Azure AD in daemon apps with certificatesを試してみました。

このチュートリアルは、Azure ADの認証シナリオのうち、「クライアント資格情報を使用したサービス間の呼び出し」を実装しています。
このシナリオでは、Azure ADは、OAuthの以下の仕様をサポートします。

ADALを利用すると、設定と秘密鍵を指定するだけで、JWT(Json Web Token)を使ってAPIのアクセストークンを取得するリクエストの実装はライブラリにおまかせできますが、ライブラリが内部でやっていることを図にしてみると以下のようになります。
authenticating-to-azure-ad-with-certificates
(クライアント資格情報を使用したサービス間の呼び出しの図と同じです)
“Azure ADに登録されているAPI用のアクセストークンをJWTで取得するには” の続きを読む

Office 365 REST APIを利用したRuby on Railsアプリの作成

Office 365は、Outlook(Exchagne)、OneDriveおよびVideoにREST APIが用意されています。
この記事では、Office 365 REST APIを利用してOutlookのリソースにアクセスする手順について確認した内容をまとめてみました。

API関連の情報ソース

APIを利用を始めるにあたって、以下のようなドキュメントを参考にしました。

REST API全体のリファレンスについては、Office 365 API reference、利用可能なOutlookのリソースについては、Resource reference for the Mail, Calendar, Contacts, and Task REST APIsで確認できます。

日本語版は、Office 365 API リファレンスがあります。

その他の参考情報としては

以下の公式ブログなどが参考になります。

“Office 365 REST APIを利用したRuby on Railsアプリの作成” の続きを読む

Office 365のExchangeをリモートPower Shellで管理する

Office 365のExchange OnlineはExchange Server 2013ベースのため、Exchangeの管理はWebの管理者センターおよびExchange管理シェルが利用できます

Exchange管理シェルをOffice 365のExchange Onlineに対して実行する手順について、リモート PowerShell による Exchange への接続のドキュメントの内容を確認したのでメモしておきます

動作はWindows 8.1で試しています

Windows PowerShellは管理者としてを実行します

事前準備

Windows PowerShellで署名付きスクリプトを許可するように実行ポリシーを変更する必要があります
以下のコマンドを実行します

PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policie
s のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y

実行ポリシーについての参考記事: WindowsでPowerShellスクリプトの実行セキュリティポリシーを変更する
“Office 365のExchangeをリモートPower Shellで管理する” の続きを読む

Office 365 カスタムドメインを追加しRoute 53に各種レコードを設定する

Office 365にカスタムドメインを追加して、AWS Route 53にDNS設定を追加する手順をまとめてみました

Office 365へのドメインの追加については、公式ドキュメント「Office 365 にユーザーとドメインを追加する」に記載されています

メモは、ドメインを取得後、Route 53のHosted Zoneを作成し、ドメインの移管は済んでいるところからになります
お名前.comで取得したドメインの移管については、前回の記事「お名前.comで取得したドメインをRoute 53に移管」を参考にしてください

ドメイン周りの設定に若干苦労したので、そこを中心に説明しています
説明で追加するドメインは、適当に取得した”trial365.xyz”というドメインを使っています

  1. [Office 365 管理者センター]を開き、左のメニューより[ドメイン]を開く
  2. [ドメインの追加]をクリックすると[手順1 ドメインの確認]が始まる

  3. [ドメインと DNS について理解しておくべきこと]で[始めましょう]をクリック

  4. [どのドメインを使用しますか?] テキストボックスにドメインを入力して [次へ]をクリック

  5. [独自の trial365.xyz を表示するためにこの TXT レコードを追加します] のページでは、TXTレコードをDNSサーバーに追加することを要求されます

Office365_AddCustomDomain_ConfirmOwnDomainTXTRecord
“Office 365 カスタムドメインを追加しRoute 53に各種レコードを設定する” の続きを読む