次の方法で共有


Teams アプリのシングル サインオンを有効にする

Microsoft Teamsは、アプリがサインインしている Teams ユーザー トークンを取得して Microsoft Graph やその他の API にアクセスするためのシングル サインオン (SSO) 機能を提供します。 Microsoft Teams ツールキットは、特定のMicrosoft Entraワークフローと統合を簡単で高レベルの API に組み込むことで、プロセスを合理化します。 その結果、SSO 機能を Teams アプリに簡単に組み込むことができます。 詳細については、「Microsoft Teamsでのユーザーの認証」を参照してください。

キーの構成

SSO を有効にするには、次のように Teams アプリを構成します。

  • Microsoft Entraアプリ マニフェスト: Microsoft Entra認証アプリを識別する URI やトークンを返すリダイレクト URI など、URI を定義してください。

  • Teams アプリ マニフェスト: 正しい構成を組み込んで、SSO アプリを Teams アプリに接続します。

  • Teams Toolkit の構成と infra ファイル: Teams アプリの SSO を有効にするために必要な構成が整っていることを確認します。

  • Teams Toolkit 構成ファイルの SSO アプリ情報: 認証アプリがバックエンド サービスに登録されていることを確認し、Teams Toolkit が Teams アプリのデバッグまたはプレビュー中に開始します。

アプリ マニフェストMicrosoft Entra作成する

  1. Microsoft Entra アプリ マニフェスト テンプレートをダウンロードします

  2. ダウンロードしたアプリ マニフェスト テンプレート コードを ./aad.manifest.json ファイルに追加します。 これにより、アプリの登録のさまざまな側面をカスタマイズし、必要に応じてマニフェストを更新できます。 詳細については、「アプリ マニフェスト」を参照してください。

Teams アプリ マニフェストを更新する

./appPackages/manifest.json ファイルに、次のコードを追加します。

"webApplicationInfo": {
  "id": "${{AAD_APP_CLIENT_ID}}",
  "resource": "api://${{TAB_DOMAIN}}/${{AAD_APP_CLIENT_ID}}"
}

webApplicationInfoでは、ユーザーがアプリにサインインするのに役立つMicrosoft Entraアプリ ID と Microsoft Graph 情報が提供されます。

注:

{{ENV_NAME}}を使用して、env/.env.{TEAMSFX_ENV} ファイル内の変数を参照できます。

Teams Toolkit 構成ファイルを更新する

  1. ./teamsapp.yml./teamsapp.local.ymlなど、Teams Toolkit 構成ファイルを見つけます。 これらのファイル内のMicrosoft Entraに関連する必要な構成を更新します。

  2. ./teamsapp.yml の [provision] にaadApp/create アクションを追加し、./teamsapp.local.ymlして SSO に使用する新しいMicrosoft Entra アプリを作成します。

    - uses: aadApp/create
      with:
        name: "YOUR_AAD_APP_NAME"
        generateClientSecret: true
        signInAudience: "AzureADMyOrg"
      writeToEnvironmentFile:
          clientId: AAD_APP_CLIENT_ID
          clientSecret: SECRET_AAD_APP_CLIENT_SECRET
          objectId: AAD_APP_OBJECT_ID
          tenantId: AAD_APP_TENANT_ID
          authority: AAD_APP_OAUTH_AUTHORITY
    

    注:

    name値を Teams アプリの目的の名前に置き換えます。

    詳細については、「aadApp/create」を参照してください

  3. ./teamsapp.yml./teamsapp.local.ymlprovisionの下にaadApp/updateアクションを追加して、Microsoft Entra アプリを更新します。

    - uses: aadApp/update
      with:
        manifestPath: "./aad.manifest.json"
        outputFilePath: "./build/aad.manifest.${{TEAMSFX_ENV}}.json"
    

    注:

    • ファイルのパスを変更した場合は、Microsoft Entra アプリ マニフェスト テンプレート aad.manifest.jsonの相対パスにmanifestPath値を更新します。
    • ローカルセットアップで、file/createOrUpdateEnvironmentFileアクションの後にaad/updateを配置します。 これは、 aad/updatefile/createOrUpdateEnvironmentFileからの出力を使用するためです。

    詳細については、aadApp/update を参照してください

  4. React プロジェクトの場合は、[deploy] の下のcli/runNpmCommandを更新します。

  5. CLI で React フレームワークを使用してタブ アプリをビルドする場合は、teamsapp.yml ファイルで build app を使用したcli/runNpmCommand アクションを見つけて、次の環境変数を追加します。

    env:
      REACT_APP_CLIENT_ID: ${{AAD_APP_CLIENT_ID}}
      REACT_APP_START_LOGIN_PAGE_URL: ${{TAB_ENDPOINT}}/auth-start.html
    
  6. React フレームワークを使用してタブ アプリをビルドする場合は、teamsapp.local.yml ファイルでデプロイのfile/createOrUpdateEnvironmentFileアクションを見つけて、次の環境変数を追加します。

    envs:
      ...
      REACT_APP_CLIENT_ID: ${{AAD_APP_CLIENT_ID}}
      REACT_APP_START_LOGIN_PAGE_URL: ${{TAB_ENDPOINT}}/auth-start.html
    

ソース コードを更新する

上記の変更を実装すると、環境が準備されます。 コードを更新して、Teams アプリに SSO を組み込むことができます。

Vanilla JavaScript

Reactを使用しないタブ アプリの場合、SSO トークンを取得する基本的な例として次のコードを使用します。

function getSSOToken() {
  return new Promise((resolve, reject) => {
    microsoftTeams.authentication.getAuthToken()
      .then((token) => resolve(token))
      .catch((error) => reject("Error getting token: " + error));
  });
}

function getBasicUserInfo() {
  getSSOToken().then((ssoToken) => {
    const tokenObj = JSON.parse(window.atob(ssoToken.split(".")[1]));
    console.log(`username: ${tokenObj.name}`);
    console.log(`user email: ${tokenObj.preferred_username}`);
  });
}

React

React プロジェクトの場合は、デプロイ プロセスで次の環境変数が設定されていることを確認します。

ソース コードを更新するには、次の手順に従います。

  1. auth-start.htmlファイルとauth-end.html ファイルを auth/public フォルダーから public/ フォルダーに移動します。 これらの HTML ファイルは、認証リダイレクトを処理する目的で機能します。

  2. auth/の下ssoフォルダーをsrc/sso/に移動します。

    1. InitTeamsFx: このファイルは、TeamsFx SDK を初期化する関数を実行します。 SDK の初期化後、 GetUserProfile コンポーネントが開きます。
    2. GetUserProfile: このファイルは、Microsoft Graph APIを呼び出してユーザー情報を取得する関数を実行します。
  3. Welcome.*InitTeamsFxをインポートして追加します。

詳細については、「SSO が有効なタブ アプリ」を参照してください。


アプリのデバッグ

アプリをデバッグするには、 F5 キーを選択します。 Teams Toolkit では、Microsoft Entra マニフェストを使用して SSO 対応アプリを登録します。 詳細については、「Teams アプリをローカルでデバッグする」を参照してください。

Microsoft Entra アプリをカスタマイズする

Teams アプリ マニフェスト を使用すると、アプリの登録のさまざまな側面をカスタマイズできます。 マニフェストは必要に応じて更新できます。

目的の API にアクセスするための追加の API アクセス許可を含める場合は、「マニフェストMicrosoft Entra編集する」を参照してください。

Azure portalでMicrosoft Entra アプリを表示するには、「Microsoft Entra マニフェストの編集」を参照してください。

次の手順