次の方法で共有


OfficeRuntime.Auth interface

承認に関連する API を含むインターフェイス。

注釈

このインターフェイスのメソッドは、 Office.auth インターフェイスのメソッドと同じです。 今後新しい認証の種類が追加される場合は、 Office.auth インターフェイスにのみ追加されます。 わかりやすくするために、ドキュメント全体のコード例では、 Office.authを使用します。

// Get the auth context object and use it to get an
// access token.
const authContext = OfficeRuntime.context.auth;
const accessToken = authContext.getAccessTokenAsync();

メソッド

getAccessToken(options)

Azure Active Directory V 2.0 のエンドポイントを呼び出して、アドインの Web アプリケーションへのアクセス トークンを取得します。 アドインがユーザーを識別できるようにします。 サーバー側コードでは、このトークンを使用して、"代理" OAuth フローを使用して、アドインの Web アプリケーションの Microsoft Graph にアクセスできます。 この API では、アドインを Azure アプリケーションにブリッジするシングル サインオン構成が必要です。 Office ユーザーは、組織アカウントと Microsoft アカウントを使用してサインインします。 Microsoft Azure では、Microsoft Graph のリソースにアクセスするために、両方のユーザー アカウントの種類を対象にしたトークンを返します。

メソッドの詳細

getAccessToken(options)

Azure Active Directory V 2.0 のエンドポイントを呼び出して、アドインの Web アプリケーションへのアクセス トークンを取得します。 アドインがユーザーを識別できるようにします。 サーバー側コードでは、このトークンを使用して、"代理" OAuth フローを使用して、アドインの Web アプリケーションの Microsoft Graph にアクセスできます。 この API では、アドインを Azure アプリケーションにブリッジするシングル サインオン構成が必要です。 Office ユーザーは、組織アカウントと Microsoft アカウントを使用してサインインします。 Microsoft Azure では、Microsoft Graph のリソースにアクセスするために、両方のユーザー アカウントの種類を対象にしたトークンを返します。

getAccessToken(options?: AuthOptions): Promise<string>;

パラメーター

options
OfficeRuntime.AuthOptions

省略可能。 サインオン動作を定義するために、 AuthOptions オブジェクトを受け入れます。

戻り値

Promise<string>

アクセス トークンに対する約束。

注釈

アプリケーション: Excel、Outlook、PowerPoint、Word

重要:

  • Outlook では、Outlook.com または Gmail メールボックスにアドインを読み込む場合、この API はサポートされません。

  • Outlook on the webでは、Safari ブラウザーを使用する場合、この API はサポートされません。 これにより、エラー 13001 が発生します ("ユーザーが Office にサインインしていません")。

  • Outlook on the webでは、displayDialogAsync メソッドを使用してダイアログを開く場合は、getAccessTokenを呼び出す前にダイアログを閉じる必要があります。

async function getUserData() {
  try {
      let userTokenEncoded = await OfficeRuntime.auth.getAccessToken();
      let userToken = jwt_decode(userTokenEncoded); // Using the https://www.npmjs.com/package/jwt-decode library.
      console.log(userToken.name); // user name
      console.log(userToken.preferred_username); // email
      console.log(userToken.oid); // user id     
  }
  catch (exception) {
      if (exception.code === 13003) {
          // SSO is not supported for domain user accounts, only
          // Microsoft 365 Education or work account, or a Microsoft account.
      } else {
          // Handle error
      }
  }
}