チュートリアル: Microsoft ID プラットフォームに Python Web アプリを登録する

このチュートリアル シリーズでは、ユーザーのサインインと、保護された Web API の呼び出しを行なう、Python Web アプリを構築する方法について説明します。 Microsoft Authentication Library for Python ライブラリを使用して、Microsoft Entra ID テナント内でユーザーを認証します。 最後に、サインインのためにアプリを実行して、保護された API を呼び出し、ユーザーをサインアウトします。

このチュートリアルでは、次の作業を行いました。

  • Web アプリを Microsoft Entra 管理センターに登録し、その識別子を記録する
  • プラットフォームと URL を定義する
  • Web アプリのクライアント シークレットを作成する
  • Microsoft Graph API にアクセスするためのアクセス許可を Web アプリに付与する

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 お持ちでない場合は、無料のアカウントを作成してください
  • 使用する Azure アカウントには、アプリケーションを管理するためのアクセス許可が必要です。 以下のいずれの Microsoft Entra ロールにも、必要なアクセス許可が含まれています。
    • アプリケーション管理者
    • アプリケーション開発者
    • クラウド アプリケーション管理者

Python Web アプリを登録し、識別子を記録する

ID およびアクセス管理機能をアプリケーションに統合するには、まず Microsoft ID プラットフォームにアプリを登録することから開始します。 Microsoft Entra 管理センターにアプリケーションを登録するには、次の手順に従います。

  1. Microsoft Entra 管理センターにサインインします。
  2. 複数のテナントにアクセスできる場合は、上部のメニューの [設定] アイコン を使い、[ディレクトリとサブスクリプション] メニューからアプリケーションを登録するテナントに切り替えます。
  3. [ID]>[アプリケーション]>[アプリの登録] に移動し、[新規登録] を選びます。
  4. アプリケーションの [名前] を入力します (例: python-flask-webapp)。 表示名は、サインイン時など、アプリケーションのユーザーがアプリを使用するときに表示されることがあります。 表示名はいつでも変更できます。
  5. [サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
  6. [登録] を選択して、初期のアプリ登録を完了します。

登録が完了すると、Microsoft Entra 管理センターが、アプリ登録の [概要] ウィンドウを表示します。 [概要] ウィンドウで、後の手順で使用するために、ディレクトリ (テナント) ID とアプリケーション (クライアント) ID を記録します。

リダイレクト URI を追加する

Python Flask Web アプリのリダイレクト URI を追加するには、次の手順のようにします。

  1. Microsoft Entra 管理センターの [アプリの登録] で、対象のアプリケーションを選択します。
  2. [管理] で、 [認証] を選択します。
  3. [プラットフォームの構成] の下で、[プラットフォームの追加] を選択し、次に [Web] を選択 します。
  4. アプリのプラットフォームとして Web を選択すると、リダイレクト URI を入力するように求められます。 Web アプリのリダイレクト URI として http://localhost:5000/getAToken を追加します。
  5. [構成] をクリックします。

資格情報を構成する

このチュートリアルでは、クライアント シークレット (つまりアプリケーション パスワード) を使用して、アプリを機密クライアントとして識別します。 アプリの登録にクライアント シークレットを追加するには、次の手順のようにします。

  1. Microsoft Entra 管理センターの [アプリの登録] で、対象のアプリケーションを選択します。
  2. [管理] で、[証明書とシークレット] を選択します。
  3. [クライアント シークレット] セクションで、 [新しいクライアント シークレット] を選択します。
  4. [クライアント シークレットの追加] ペインで、クライアント シークレットの説明を入力します。
  5. シークレットの有効期限を選択するか、カスタムの有効期間を指定します。
    • クライアント シークレットの有効期間は、2 年間 (24 か月) 以下に制限されています。 24 か月を超えるカスタムの有効期間を指定することはできません。 Microsoft では、有効期限の値は 12 か月未満に設定することをお勧めしています。
  6. [追加] を選択します。
  7. 後のステップで使うので、クライアント シークレットの値 (ID ではなく) を記録しておきます。 このシークレット値は、作成時に 1 回だけ表示され、このページを離れた後は表示されません。

このチュートリアルはクライアント シークレットを使用していますが、アプリケーションを運用環境に移行する際には、その前に証明書を使用することをお勧めします。 証明書の使用方法の詳細については、これらの手順を参照してください。

スコープを追加する

このアプリではユーザーがサインインを行うので、委任されたアクセス許可を追加する必要があります。

  1. [管理] で、 [API のアクセス許可]>[アクセス許可の追加] の順に選択します。
  2. [Microsoft API] タブが選択されていることを確認します。
  3. [よく使用される Microsoft API] セクションで、 [Microsoft Graph] を選択します。
  4. [委任されたアクセス許可] セクションで、User.Read が選択されていることを確認します。 必要に応じて検索ボックスを使用します。
  5. [アクセス許可の追加] を選択します.

次のステップ