Note
macOS 認証ブローカーのサポートは、 msal バージョン 1.31.0 で導入されています。
macOS で認証ブローカーを使用すると、ユーザーがアプリケーションからMicrosoft Entra IDを使用して認証する方法を簡略化したり、Microsoft Entra ID更新トークンを流出や誤用から保護する将来の機能を利用したりできます。
認証ブローカーは macOS にはプレインストールされませんが、Microsoftによって開発されたアプリケーション (ポータル サイト など) です。 これらのアプリケーションは、通常、macOS コンピューターが、Microsoft Intuneなどのエンドポイント管理ソリューションを介して会社のデバイスフリートに登録されている場合にインストールされます。 Microsoft Identity Platform を使用して設定された Apple デバイスの詳細については、Apple デバイス用の Microsoft Enterprise SSO プラグインを参照してください。
使用方法
ブローカーを使用するには、PyPI のコア MSAL に加えて、ブローカー関連のパッケージをインストールする必要があります。
pip install msal[broker]>=1.31,<2
Important
ブローカー関連のパッケージがインストールされておらず、認証ブローカーを使用しようとすると、 ImportError: You need to install dependency by: pip install "msal[broker]>=1.31,<2"というエラーが表示されます。
通常、macOS では、パブリック クライアント Python アプリケーションはシステム ブラウザーを介してトークンを取得します。 代わりに macOS システムにインストールされている認証ブローカーを使用するには、 PublicClientApplication コンストラクターに追加の引数を渡す必要があります。 enable_broker_on_mac。
from msal import PublicClientApplication
app = PublicClientApplication(
"CLIENT_ID",
authority="https://login.microsoftonline.com/common",
enable_broker_on_mac =True)
コンストラクターの変更に加えて、アプリケーションではブローカー固有のリダイレクト URI をサポートする必要があります。 署名されていないアプリケーションの場合、URI は次のようになります。
msauth.com.msauth.unsignedapp://auth
署名されたアプリケーションの場合、リダイレクト URI は次のようになります。
msauth.BUNDLE_ID://auth
Entra ポータル内のアプリ構成でリダイレクト URI が正しく設定されていない場合は、次のようなエラーが表示されます。
Error detected...
tag=508170375
context=AADSTS50011 Description: (pii), Domain: MSAIMSIDOAuthErrorDomain.Error was thrown in location: Broker
errorCode=-51411
status=Response_Status.Status_Unexpected
構成したら、 acquire_token_interactive を呼び出してトークンを取得できます。
result = app.acquire_token_interactive(["User.ReadBasic.All"],
parent_window_handle=app.CONSOLE_WINDOW_HANDLE)
Note
macOS では使用されていない場合でも、 parent_window_handle パラメーターが必要です。 GUI アプリケーションの場合、ログイン プロンプトの場所はアドホックで決定され、現在は特定のウィンドウにバインドできません。 今後の更新では、このパラメーターを使用して 実際 の親ウィンドウが決定されます。
トークンのキャッシュ
認証ブローカーは、更新とアクセス トークンのキャッシュを処理します。 カスタム キャッシュを設定する必要はありません。
サポートされている macOS のバージョンとアーキテクチャ
macOS ブローカーでは、次の構成がサポートされています。
| コンポーネント | サポートされているバージョン |
|---|---|
| Architecture | ARM64 (Apple Silicon) と x64 (Intel) |
| macOS バージョン | macOS 10.15 (Catalina) 以降 |
Tip
最新のセキュリティ機能とブローカー機能との互換性を確保するために、最新の macOS バージョンに更新することをお勧めします。