Microsoft Authentication Library (MSAL) Pythonでは、パブリック クライアント アプリケーションと機密クライアント アプリケーションの 2 種類のクライアント アプリケーションがサポートされています。 クライアントの種類は、承認サーバーで安全に認証し、機密性の高い ID 証明情報を保持して、アクセスのスコープ内でユーザーにアクセスまたは認識できないようにする機能によって区別されます。 この記事では、MSAL Pythonを使用してこれらのアプリケーションを初期化する方法について説明します。
Prerequisites
パブリック クライアント アプリケーションと機密クライアント アプリケーションの基本的な概念について説明します。
アプリケーションをインスタンス化する
アプリを開始するには、アプリの登録が必要です。 Microsoft Entra 管理センターにアプリを登録します。 登録ページでは、次のものが必要です。
- アプリケーション クライアントの識別子。 これは GUID の形式の文字列です。
- アプリケーションの ID プロバイダー URL (インスタンス) とサインイン対象ユーザー。 これら 2 つのパラメーターは、総称して機関と呼 ばれます。
- 必要に応じて、組織 (シングルテナント アプリケーションとも呼ばれます) のみを対象とした基幹業務アプリケーションを作成する場合のテナント識別子 (GUID) です。
- 機密クライアント アプリを構築する場合は、文字列または証明書の形式でアプリケーション シークレットを作成します。
- Web アプリケーションの場合は、コードを返すために使用Microsoft Entra IDリダイレクト URL を設定します。 デスクトップ アプリケーションの場合は、認証ブローカーに依存していない場合は、
http://localhostを追加します。
パブリック クライアント アプリケーションをインスタンス化する
パブリック クライアント アプリケーションは、 PublicClientApplication クラスを使用します。
import msal
app = msal.PublicClientApplication(
"client_id",
authority="authority",
)
機密クライアント アプリケーションをインスタンス化する
機密クライアント アプリケーションは、 ConfidentialClientApplication クラスを使用します。
import msal
app = msal.ConfidentialClientApplication(
"client_id",
authority="authority",
client_credential="client_secret",
)
Caching
クライアント アプリケーションをインスタンス化するときに、キャッシュ設定を定義するために使用できるパラメーターが 2 つあります。 これらのパラメーターは 、token_cache と http_cacheです。
- token_cache は、クライアント アプリケーション インスタンスによって使用されるトークン キャッシュを設定します。 既定では、メモリ内キャッシュが作成され、使用されます。 詳細については、「MSAL Pythonでのトークン キャッシュ」を参照してください。
- http_cacheは、MSAL Python バージョン 1.16 以降で使用できます。 これにより、一部の有限数の非トークン http 応答が自動的にキャッシュされるため、一部の状況では有効期間の長い PublicClientApplication インスタンスと ConfidentialClientApplication インスタンスのパフォーマンスと応答性が向上します。 http_cache パラメーターが指定されていない場合、MSAL はメモリ内の dict を使用します。 アプリがコマンド ライン アプリ (CLI) の場合は、異なる CLI の実行間 でhttp_cache を保持する必要があります。 詳細については、 リファレンス ガイドを参照してください。
次のステップ
アプリのトークンを取得します。