チュートリアル: 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 管理センターにアプリケーションを登録するには、次の手順に従います。
- Microsoft Entra 管理センターにサインインします。
- 複数のテナントにアクセスできる場合は、上部のメニューの [設定] アイコン を使い、[ディレクトリとサブスクリプション] メニューからアプリケーションを登録するテナントに切り替えます。
- [ID]>[アプリケーション]>[アプリの登録] に移動し、[新規登録] を選びます。
- アプリケーションの [名前] を入力します (例: python-flask-webapp)。 表示名は、サインイン時など、アプリケーションのユーザーがアプリを使用するときに表示されることがあります。 表示名はいつでも変更できます。
- [サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
- [登録] を選択して、初期のアプリ登録を完了します。
登録が完了すると、Microsoft Entra 管理センターにアプリの登録の [概要] ペインが表示されます。 [概要] ウィンドウで、後の手順で使用するために、ディレクトリ (テナント) ID とアプリケーション (クライアント) ID を記録します。
リダイレクト URI を追加する
Python Flask Web アプリのリダイレクト URI を追加するには、次の手順のようにします。
- Microsoft Entra 管理センターの [アプリの登録] でアプリケーションを選びます。
- [管理] で、 [認証] を選択します。
- [プラットフォームの構成] の下で、[プラットフォームの追加] を選択し、次に [Web] を選択 します。
- アプリのプラットフォームとして Web を選択すると、リダイレクト URI を入力するように求められます。 Web アプリのリダイレクト URI として
http://localhost:5000/getAToken
を追加します。 - [構成] をクリックします。
資格情報を構成する
このチュートリアルでは、クライアント シークレット (つまりアプリケーション パスワード) を使用して、アプリを機密クライアントとして識別します。 アプリの登録にクライアント シークレットを追加するには、次の手順のようにします。
- Microsoft Entra 管理センターの [アプリの登録] でアプリケーションを選びます。
- [管理] で、[証明書とシークレット] を選択します。
- [クライアント シークレット] セクションで、 [新しいクライアント シークレット] を選択します。
- [クライアント シークレットの追加] ペインで、クライアント シークレットの説明を入力します。
- シークレットの有効期限を選択するか、カスタムの有効期間を指定します。
- クライアント シークレットの有効期間は、2 年間 (24 か月) 以下に制限されています。 24 か月を超えるカスタムの有効期間を指定することはできません。 Microsoft では、有効期限の値は 12 か月未満に設定することをお勧めしています。
- [追加] を選択します。
- 後のステップで使うので、クライアント シークレットの値 (ID ではなく) を記録しておきます。 このシークレット値は、作成時に 1 回だけ表示され、このページを離れた後は表示されません。
このチュートリアルはクライアント シークレットを使用していますが、アプリケーションを運用環境に移行する際には、その前に証明書を使用することをお勧めします。 証明書の使用方法の詳細については、これらの手順を参照してください。
スコープを追加する
このアプリではユーザーがサインインを行うので、委任されたアクセス許可を追加する必要があります。
- [管理] で、 [API のアクセス許可]>[アクセス許可の追加] の順に選択します。
- [Microsoft API] タブが選択されていることを確認します。
- [よく使用される Microsoft API] セクションで、 [Microsoft Graph] を選択します。
- [委任されたアクセス許可] セクションで、User.Read が選択されていることを確認します。 必要に応じて検索ボックスを使用します。
- [アクセス許可の追加] を選択します.