クイック スタート: Python Web アプリに Microsoft でサインインを追加するQuickstart: Add sign-in with Microsoft to a Python web app

このクイックスタートでは、Python Web アプリを Microsoft ID プラットフォームと統合する方法を説明します。In this quickstart, you'll learn how to integrate a Python web application with the Microsoft identity platform. お使いのアプリによって、ユーザーがサインインされ、Microsoft Graph API を呼び出すためのアクセス トークンが取得されて、Microsoft Graph API への要求が行われます。Your app will sign in a user, get an access token to call the Microsoft Graph API, and make a request to the Microsoft Graph API.

このガイドを完了すると、アプリケーションは、個人用の Microsoft アカウント (outlook.com、live.com など) と、Azure Active Directory を使用する会社や組織の職場または学校アカウントのサインインを受け入れるようになります。When you've completed the guide, your application will accept sign-ins of personal Microsoft accounts (including outlook.com, live.com, and others) and work or school accounts from any company or organization that uses Azure Active Directory. (図については、「このサンプルのしくみ」を参照してください)。(See for an illustration.)

前提条件Prerequisites

このサンプルを実行するには、次のものが必要になります。To run this sample, you will need:

クイック スタート アプリを登録してダウンロードするRegister and download your quickstart app

クイックスタート アプリケーションを開始する方法としては、[簡易] (オプション 1) と [手動] (オプション 2) の 2 つの選択肢があります。You have two options to start your quickstart application: express (Option 1), and manual (Option 2)

オプション 1: アプリを登録して自動構成を行った後、コード サンプルをダウンロードするOption 1: Register and auto configure your app and then download your code sample

  1. Azure portal の [アプリの登録] に移動します。Go to the .
  2. アプリケーションの名前を入力し、 [登録] を選択します。Enter a name for your application and select .
  3. 指示に従って新しいアプリケーションをダウンロードし、自動構成します。Follow the instructions to download and automatically configure your new application.

オプション 2:アプリケーションを登録し、アプリケーションとコード サンプルを手動で構成するOption 2: Register and manually configure your application and code sample

手順 1:アプリケーションの登録Step 1: Register your application

アプリケーションを登録し、その登録情報をソリューションに手動で追加するには、次の手順を実行します。To register your application and add the app's registration information to your solution manually, follow these steps:

  1. 職場または学校アカウントか、個人の Microsoft アカウントを使用して、Azure portal にサインインします。Sign in to the using either a work or school account, or a personal Microsoft account.

  2. ご利用のアカウントで複数のテナントにアクセスできる場合は、右上隅でアカウントを選択し、ポータルのセッションを目的の Azure AD テナントに設定します。If your account gives you access to more than one tenant, select your account in the top right corner, and set your portal session to the desired Azure AD tenant.

  3. 開発者用の Microsoft ID プラットフォームの [アプリの登録] ページに移動します。Navigate to the Microsoft identity platform for developers page.

  4. [新規登録] を選択します。Select .

  5. [アプリケーションの登録] ページが表示されたら、以下のアプリケーションの登録情報を入力します。When the page appears, enter your application's registration information:

    • [名前] セクションに、アプリのユーザーに表示されるわかりやすいアプリケーション名を入力します (例: python-webapp)。In the section, enter a meaningful application name that will be displayed to users of the app, for example .
    • [サポートされているアカウントの種類] で、 [Accounts in any organizational directory and personal Microsoft accounts](任意の組織のディレクトリ内のアカウントと個人用の Microsoft アカウント) を選択します。Under , select .
    • [登録] を選択します。Select .
    • 後で使用するために、アプリの [概要] ページで、 [アプリケーション (クライアント) ID] の値を書き留めます。On the app page, note the value for later use.
  6. メニューから [認証] を選択し、次の情報を追加します。Select the from the menu, and then add the following information:

    • Web プラットフォーム構成を追加します。Add the platform configuration. リダイレクト URI として http://localhost:5000/getAToken を追加します。Add as .
    • [保存] を選択します。Select .
  7. 左側のメニューで [証明書とシークレット] を選択し、 [クライアント シークレット] セクションで [新しいクライアント シークレット] をクリックします。On the left hand menu, choose and click on in the section:

    • キーの説明 (インスタンス アプリ シークレットの) を入力します。Type a key description (of instance app secret).
    • キーの有効期間として [1 年] を選択します。Select a key duration of .
    • [追加] をクリックすると、キーの値が表示されます。When you click on , the key value will be displayed.
    • キーの値をコピーします。Copy the value of the key. この情報は後で必要になります。You will need it later.
  8. [API のアクセス許可] セクションを選択しますSelect the section

    • [アクセス許可の追加] をクリックします。さらに、Click the button and then,
    • [Microsoft API] タブが選択されていることを確認しますEnsure that the tab is selected
    • [よく使用される Microsoft API] セクションで、 [Microsoft Graph] をクリックしますIn the section, click on
    • [委任されたアクセス許可] セクションで、適切なアクセス許可がオンになっていることを確認します:User.ReadBasic.AllIn the section, ensure that the right permissions are checked: . 必要に応じて検索ボックスを使用します。Use the search box if necessary.
    • [アクセス許可の追加] ボタンを選択しますSelect the button

手順 2:プロジェクトのダウンロードStep 2: Download your project

手順 3: アプリケーションの構成Step 3: Configure the Application

  1. ルート フォルダーに近いローカル フォルダー (例: C:\Azure-Samples) に zip ファイルを展開します。Extract the zip file to a local folder closer to the root folder - for example,
  2. 統合開発環境を使用する場合は、その IDE でサンプルを開きます (オプション)。If you use an integrated development environment, open the sample in your favorite IDE (optional).
  3. app_config.py ファイルを開きます。このファイルはルート フォルダーにあり、次のコード スニペットに置き換えることができます。Open the file, which can be found in the root folder and replace with the following code snippet:
CLIENT_ID = "Enter_the_Application_Id_here"
CLIENT_SECRET = "Enter_the_Client_Secret_Here"
AUTHORITY = "https://login.microsoftonline.com/Enter_the_Tenant_Name_Here"

各値の説明:Where:

  • Enter_the_Application_Id_here - 登録したアプリケーションのアプリケーション ID。 - is the Application Id for the application you registered.
  • Enter_the_Client_Secret_Here - 登録済みアプリケーション用に [証明書とシークレット] で作成した [クライアント シークレット] です。 - is the you created in for the application you registered.
  • Enter_the_Tenant_Name_Here - 登録したアプリケーションのディレクトリ (テナント) ID 値です。 - is the value of the application you registered.

手順 4:コード サンプルの実行Step 4: Run the code sample

  1. MSAL Python ライブラリ、Flask フレームワーク、サーバー側のセッション管理用の Flask-Sessions、および requests を、次のように pip を使用してインストールする必要があります。You will need to install MSAL Python library, Flask framework, Flask-Sessions for server-side session management and requests using pip as follows:

    pip install -r requirements.txt
    
  2. シェルまたはコマンド ラインから app.py を実行する:Run app.py from shell or command line:

    python app.py
    

    重要

    このクイック スタート アプリケーションは、クライアント シークレットを使用して、それ自体を機密クライアントとして識別します。This quickstart application uses a client secret to identify itself as confidential client. クライアント シークレットはプロジェクト ファイルにプレーン テキストとして追加されるため、セキュリティ上の理由から、アプリケーションを運用アプリケーションと見なす前に、クライアント シークレットの代わりに証明書を使用することをお勧めします。Because the client secret is added as a plain-text to your project files, for security reasons, it is recommended that you use a certificate instead of a client secret before considering the application as production application. 証明書の使用方法の詳細については、これらの手順を参照してください。For more information on how to use a certificate, see .

詳細情報More information

このサンプルのしくみHow the sample works

このクイック スタートで生成されたサンプル アプリの動作の紹介

MSAL の取得Getting MSAL

MSAL は、ユーザーをサインインさせるために使用されたり、Microsoft ID プラットフォームによって保護されている API にアクセスするためのトークンを要求するために使用されたりするライブラリです。MSAL is the library used to sign in users and request tokens used to access an API protected by the Microsoft identity Platform. MSAL Python は、Pip を使用してアプリケーションに追加できます。You can add MSAL Python to your application using Pip.

pip install msal

MSAL の初期化MSAL initialization

MSAL を使用するファイルの先頭に次のコードを追加すると、MSAL Python への参照を追加できます。You can add the reference to MSAL Python by adding the following code to the top of the file where you will be using MSAL:

import msal

次のステップNext steps

ユーザーのサインインを行う Web API と、Web アプリの呼び出しの詳細を確認します。Learn more about web apps that sign in users, and then that calls web APIs:

ヘルプとサポートHelp and support

サポートが必要な場合、問題を報告する場合、またはサポート オプションについて知りたい場合は、開発者向けのヘルプとサポートに関するページを参照してください。If you need help, want to report an issue, or would like to learn about your support options, see .