APIをOAuth認証プロバイダとして利用する手順について確認しました。Socialiteを使いたいところです。Socialiteは非常に多くの認証プロバイダーに対応しています。Providersで確認できます。Graphについてももちろん対応しています。ADのアカウントで認証を実装する手順について確認します。middlewareを使って要認証のルーティングを保護する手順についても説明しています。ADに登録されたアカウントによる認証にのみフォーカスして説明しています。APIを利用したデータの取得については説明しません。よって、アクセストークンの更新についても言及していません。Homestead上でプロジェクトを動かしています。セットアップからhttpsによるアクセス手順まで」を参照ください。管理センターでアプリを登録する」の手順に従って、アプリケーションを作成してください。homestead.testで動作を確認する場合は、リダイレクトURIにhttps://homestead.test/authorizeを追加してください。Graph用Socialiteパッケージsocialiteproviders/microsoft-graphをインストールします。Socialite自体は依存関係でインストールされるので明示的にインストールする必要はありません。socialiteproviders/microsoft-graphprovidersに\SocialiteProviders\Manager\ServiceProvider::classを追加します。],続いて、イベント\SocialiteProviders\Manager\SocialiteWasCalled::classをリスナーSocialiteProviders\\Graph\\GraphExtendSocialite@handleを指定して追加します。略}アプリケーションID・シークレット・リダイレクトURIを設定config/services.phpに、以下の設定を追加します。],.envにアプリケーションID(クライアントID)、シークレット、リダイレクトURIを追加します。GRAPH_KEY=xxxxxxxxx-0000-0000-0000-xxxxxxxGRAPH_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXGRAPH_REDIRECT_URI=http://homestead.test/authorizeOAuth認証の実装LoginControllerを生成して、認証ロジックを追加していきます。}}一旦、Socialiteのuserメソッドから取得したインスタンスのダンプを表示して、ログインしたアカウント情報を確認するようにしています。'LoginController@handleProviderCallback')->name('authorize');Laravel標準のAuthミドルウェアは、未ログイン時にはloginというルーティング名にリダイレクトするので、ルーティング名を指定しておきます。アカウントでログインすると以下のように取得したユーザの情報を確認できます。ユーザレコードの追加とAuth::loginLoginControllerのhandleProviderCallbackに、Userモデルのレコード保存と生成して、LaravelのAuthのユーザとしてログインする処理を追加していきます。handleProviderCallbackを以下のように書き換えます。}マイグレーションを実行して、Userモデル用のテーブルを追加しておきます。パスワードは不要なので、とりあえず2014_10_12_000000_create_users_table.phpを開きnullableにしておきます。}マイグレーションを実行します。seconds)確認用に、resources/views/welcom.blade.phpを開き以下の箇所を修正します。アカウントでログインするとWelcomeページにリダイレクトされます。右上にログインしたユーザが表示されています。データベースのusersテーブルには、以下の通りレコードが追加されています。routes/web.phpを以下のように書き換えます。通常は、要認証のルーティングは複数あるはずはので、以下は1つですがRoute::groupを使っています。});});未認証でhttps://homestead.testにアクセスすると、自動的にMicrosoftアカウントの認証ページにリダイレクトするようになります。テナント)」を選択した場合、認証エンドポイントはテナントIdを指定したURL「https://login.microsoftonline.com/<テナントId>/oauth2/v2.0/authorize」になります。「https://login.microsoftonline.com/common/oauth2/v2.0/authorize」は使えません。Idに記載されている通りsetTenantIdでテナントIdをセットすればOKです。Directory管理センターのアプリケーションの概要で確認できます。環境変数ADD_TENANT_IDにテナントIDをセットするようにしてみます。.envADD_TENANT_ID=xxxxxxxxLoginController.phpの場合は以下のように修正します。