PublicClientApplication クラス
<xref:ClientApplication.__init__>と同じですが、パラメーターclient_credentialNone残る点が異なります。
Note
ブローカーとは何か、なぜそれを使用するのですか?
ブローカーは、デバイスにインストールされているコンポーネントです。
ブローカーは、デバイスに ID を暗黙的に付与します。 ブローカーを使用して、
デバイスが MFA (多要素認証) を満たすことができる要素になります。
この要素は必須になります
テナントの管理者が対応する条件付きアクセス (CA) ポリシーを有効にする場合は >。
ブローカーのプレゼンスにより、Microsoft ID プラットフォーム
トークンがデバイスに発行されているという信頼度を高めるために、
より安全です。
ブローカーの追加の利点は、
お使いのデバイスの OS で有効期間が長いプロセスとして実行されます。
独自のキャッシュを保持します。
ブローカー対応アプリ (CLI でも)
は、以前に確立されたサインイン セッションから自動的に SSO を実行できます。
ブローカーの使用をオプトインする方法
次のオプトイン パラメーターの任意の組み合わせを true に設定できます。
オプトイン フラグ
アプリが実行される場合
アプリでこれをデスクトップ プラットフォームリダイレクト URI として登録Azure portal
enable_broker_on_windows
Windows 10+
ms-appx-web://Microsoft。Aad。BrokerPlugin/your_client_id
enable_broker_on_wsl
WSL
ms-appx-web://Microsoft。Aad。BrokerPlugin/your_client_id
enable_broker_on_mac
ポータル サイトがインストールされている Mac
msauth.com.msauth.unsignedapp://auth
enable_broker_on_linux
Intune がインストールされている Linux
https://login.microsoftonline.com/common/oauth2/nativeclient (有効にする必要があります)
ブローカーの依存関係をインストールする
例: pip install msal[broker]>=1.33,<2.
acquire_token_interactive() と acquire_token_silent() を使用してテストします。
MSAL Pythonのブローカー サポートのフォールバック動作
MSAL はエラーアウトするか、非ブローカー フローにサイレント フォールバックします。
MSAL はenable_broker_を無視します...およびバイパス ブローカー
ブローカーでサポートされていないことがわかっている認証フローに対して行われます。
これには、ADFS、B2C などが含まれます。
その他の "could-use-broker" シナリオについては、以下を参照してください。
アプリ開発者がブローカーを使用することをオプトインしたときに MSAL エラーが発生する
ただし、直接依存関係 "中間層" パッケージはインストールされていません。
エラー メッセージは、アプリ開発者が正しい依存関係を宣言するようにガイドします
msal[broker].
エラーはアプリ開発者に対して実行可能であるため、ここでエラーが発生します。
MSAL は自動的にブローカーを "非アクティブ化" し、非ブローカーにフォールバックします。
オプトインすると、依存関係がインストールされたが初期化に失敗しました。
これは、OS が古すぎるデバイスで発生する可能性があります
または、基になるブローカー コンポーネントが何らかの理由で使用できません。
アプリ開発者やエンド ユーザーがここでできることはあまりありません。
最終的に、条件付きアクセス ポリシーは
ユーザーに別のデバイスへの切り替えを強制します。
ブローカーのオプトイン、インストール、初期化時に MSAL エラーが発生する
ただし、後続のトークン要求は失敗しました。
コンストラクター
PublicClientApplication(client_id, client_credential=None, *, enable_broker_on_windows=None, enable_broker_on_mac=None, enable_broker_on_linux=None, enable_broker_on_wsl=None, **kwargs)
パラメーター
| 名前 | 説明 |
|---|---|
|
enable_broker_on_windows
必須
|
<xref:boolean>
この設定は、アプリが Windows 10 以降で実行されている場合にのみ有効です。 このパラメーターの既定値は None です。つまり、MSAL はブローカーを使用しません。 MSAL Python 1.25.0 の新機能。 |
|
enable_broker_on_mac
必須
|
<xref:boolean>
この設定は、アプリが Mac で実行されている場合にのみ有効です。 このパラメーターの既定値は None です。つまり、MSAL はブローカーを使用しません。 MSAL Python 1.31.0 の新機能。 |
|
enable_broker_on_linux
必須
|
<xref:boolean>
この設定は、アプリが WSL を含む Linux で実行されている場合にのみ有効です。 このパラメーターの既定値は None です。つまり、MSAL はブローカーを使用しません。 MSAL Python 1.33.0 の新機能。 |
|
enable_broker_on_wsl
必須
|
<xref:boolean>
この設定は、アプリが WSL で実行されている場合にのみ有効です。 このパラメーターの既定値は None です。つまり、MSAL はブローカーを使用しません。 MSAL Python 1.33.0 の新機能。 |
|
client_id
必須
|
|
|
client_credential
|
規定値: None
|
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
enable_broker_on_windows
|
規定値: None
|
|
enable_broker_on_mac
|
規定値: None
|
|
enable_broker_on_linux
|
規定値: None
|
|
enable_broker_on_wsl
|
規定値: None
|
メソッド
| acquire_token_by_device_flow |
カスタマイズ可能なポーリング効果を使用して、デバイス フロー オブジェクトによってトークンを取得します。 |
| acquire_token_interactive |
ローカル ブラウザーを使用して、対話形式でトークンを取得します。 前提条件: Azure portalで、"モバイルおよびデスクトップ アプリケーション" のリダイレクト URI を |
| initiate_device_flow |
acquire_token_by_device_flowで使用される Device Flow インスタンスを開始します。 |
acquire_token_by_device_flow
カスタマイズ可能なポーリング効果を使用して、デバイス フロー オブジェクトによってトークンを取得します。
acquire_token_by_device_flow(flow, claims_challenge=None, **kwargs)
パラメーター
| 名前 | 説明 |
|---|---|
|
flow
必須
|
以前に initiate_device_flowによって生成されたディクテーション。 既定では、このメソッドのポーリング効果は現在のスレッドをブロックします。 フローの "expires_at" キーの値を 0 に変更することで、ポーリング ループはいつでも中止できます。 |
|
claims_challenge
|
claims_challenge パラメーターは、リソース プロバイダーによって要求された特定の要求を、www-authenticate ヘッダーの claims_challenge ディレクティブの形式で、UserInfo エンドポイントまたは ID トークンまたはアクセス トークンから返されるように要求します。 これは、これらの場所から要求される要求の一覧を含む JSON オブジェクトの文字列です。 規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
Microsoft Entraからの json 応答を表すディクテーション:
|
acquire_token_interactive
ローカル ブラウザーを使用して、対話形式でトークンを取得します。
前提条件: Azure portalで、"モバイルおよびデスクトップ アプリケーション" のリダイレクト URI をhttp://localhostとして構成します。
PublicClientApplicationの作成時にブローカーを使用することを選択した場合、アプリには次のリダイレクト URI も必要です。ms-appx-web://Microsoft.AAD.BrokerPlugin/YOUR_CLIENT_ID
acquire_token_interactive(scopes, prompt=None, login_hint=None, domain_hint=None, claims_challenge=None, timeout=None, port=None, extra_scopes_to_consent=None, max_age=None, parent_window_handle=None, on_before_launching_ui=None, auth_scheme=None, **kwargs)
パラメーター
| 名前 | 説明 |
|---|---|
|
scopes
必須
|
大文字と小文字を区別する文字列の一覧です。 |
|
prompt
|
既定では、プロンプト値は送信されず、文字列 規定値: None
|
|
login_hint
|
オプション。 ユーザーの識別子。 通常はユーザー プリンシパル名 (UPN) です。 規定値: None
|
|
domain_hint
|
"コンシューマー" または "組織" のいずれか、またはテナント ドメイン "contoso.com" のいずれかです。 含まれている場合、ユーザーがサインイン ページを通過する電子メール ベースの検出プロセスがスキップされ、ユーザー エクスペリエンスが少し簡素化されます。 認証コード フローのドキュメントとdomain_hintドキュメントで使用可能な値の詳細を確認します。 規定値: None
|
|
claims_challenge
|
claims_challenge パラメーターは、リソース プロバイダーによって要求された特定の要求を、www-authenticate ヘッダーの claims_challenge ディレクティブの形式で、UserInfo エンドポイントまたは ID トークンまたはアクセス トークンから返されるように要求します。 これは、これらの場所から要求される要求の一覧を含む JSON オブジェクトの文字列です。 規定値: None
|
|
timeout
|
このメソッドは、現在のスレッドをブロックします。
このパラメーターは、タイムアウト値を秒単位で指定します。
既定値 規定値: None
|
|
port
|
受信認証応答をリッスンするために使用されるポート。
既定では、システム割り当てポートを使用します。
(残りのredirect_uriは、 規定値: None
|
|
extra_scopes_to_consent
|
"同意する追加のスコープ" は、Microsoft Entraでのみ使用できる概念です。 これは、同じ操作で同意を求める他のリソースを指しますが、この特定の操作ではトークンを取得しません。 規定値: None
|
|
max_age
|
省略可能。 最大認証期間。 End-User がアクティブに認証された最後の時刻から許容される経過時間を秒単位で指定します。 経過時間がこの値を超える場合、Microsoft ID プラットフォームはエンド ユーザーをアクティブに再認証します。 MSAL Pythonでは、ID トークン内のauth_timeも自動的に検証されます。 バージョン 1.15 の新機能。 規定値: None
|
|
parent_window_handle
|
省略可能。
ほとんどのPythonスクリプトはコンソール アプリです。 バージョン 1.20.0 の新機能。 規定値: None
|
|
on_before_launching_ui
|
<xref:function>
バージョン 1.20.0 の新機能。 規定値: None
|
|
auth_scheme
|
MSAL が所有証明 (POP) トークンを取得できるように、 バージョン 1.26.0 の新機能。 規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
initiate_device_flow
acquire_token_by_device_flowで使用される Device Flow インスタンスを開始します。
initiate_device_flow(scopes=None, *, claims_challenge=None, **kwargs)
パラメーター
| 名前 | 説明 |
|---|---|
|
scopes
|
保護された API (リソース) へのアクセスを要求されたスコープ。 規定値: None
|
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
claims_challenge
|
規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
新しく作成された Device Flow オブジェクトを表すディクテーション。
|
属性
CONSOLE_WINDOW_HANDLE
CONSOLE_WINDOW_HANDLE = <object object>
DEVICE_FLOW_CORRELATION_ID
DEVICE_FLOW_CORRELATION_ID = '_correlation_id'