私は Office 365 を初めて使用し、Rest API へのアクセスに問題があります。Calendar と Mail APIの残りの API をテストしようとしているので、Postman を使用することにしました。ただし、これらの API をテストするには、Authorization ヘッダーにアクセス トークンが必要です。トークンを取得する方法を理解するために、ここでサンプル プロジェクトを取得し、このローカル サイトで構成、実行、およびサインインして、ローカル ストレージにキャッシュされたトークンを取得し、そのトークンを Postman での以降の要求に使用することにしました。ただし、テストしたすべてのリクエストで「401 無許可のリクエスト」が返されました。
私がしたこと:
- O365 アカウントに関連付けられた Azure ADD に新しいアプリを登録する
- アプリの完全なアクセス許可と委任されたアクセス許可を追加します。
- マニフェスト ファイルで「oauth2AllowImplicitFlow」を true に更新します。
- サンプル プロジェクトのクローンを作成する
app.js で、alter the content of config 関数を次のように変更します。
function config($routeProvider, $httpProvider, adalAuthenticationServiceProvider) { $routeProvider .when('/', { templateUrl: 'views/home.html', controller: 'HomeController', controllerAs: 'home', requireADLogin: true }) .otherwise({ redirectTo: '/' }); // The endpoints here are resources for ADAL to get tokens for. var endpoints = { 'https://outlook.office365.com': 'https://outlook.office365.com' }; // Initialize the ADAL provider with your tenant name and clientID (found in the Azure Management Portal). adalAuthenticationServiceProvider.init( { tenant: 'mytenantname.onmicrosoft.com', clientId: '<my cliend Id>', endpoints: endpoints, cacheLocation: 'localStorage' }, $httpProvider ); };
次に、アプリを実行しました。問題なくサインインし、トークンも取得できますが、そのトークンはリクエストに対しても承認されていません。トークンをデコードして「aud」の値を確認しましたが、「 https://outlook.office365.com/ 」は返されませんでした。このURLで、作成者は「これは、メール、カレンダー、または連絡先 API の場合は" https://outlook.office365.com/ " である必要があります」と述べています。
それで、私は何を逃したのですか?