ConfidentialClientApplication クラス
<xref:ClientApplication.__init__>と同じですが、パラメーターallow_brokerNone残る点が異なります。
アプリケーションのインスタンスを作成します。
コンストラクター
ConfidentialClientApplication(client_id, client_credential=None, authority=None, validate_authority=True, token_cache=None, http_client=None, verify=True, proxies=None, timeout=None, client_claims=None, app_name=None, app_version=None, client_capabilities=None, azure_region=None, exclude_scopes=None, http_cache=None, instance_discovery=None, allow_broker=None, enable_pii_log=None, oidc_authority=None)
パラメーター
| 名前 | 説明 |
|---|---|
|
client_id
必須
|
アプリをMicrosoft Entra 管理センターに登録した後、アプリにclient_idがあります。 |
|
client_credential
|
PublicClientApplicationでは、ここでは None を使用します。 ConfidentialClientApplicationでは、さまざまなシナリオでさまざまな入力形式がサポートされます。 クライアント シークレットの使用をサポートします。
|
|
client_claims
|
バージョン 0.5.0 で追加: この ConfidentialClientApplication の秘密キーによって署名される追加の要求のディクショナリです。 たとえば、{"client_ip": "x.x.x.x"} を使用できます。 次の既定の要求のいずれかをオーバーライドすることもできます。
規定値: None
|
|
authority
|
トークン機関を識別する URL。 形式にする必要があります
バージョン 1.17 で変更: 定義済みの定数と次のようなビルダーを使用することもできます。
規定値: None
|
|
validate_authority
|
(省略可能)権限の検証をオンまたはオフにします。 このパラメーターの既定値は true です。 規定値: True
|
|
token_cache
|
この ClientApplication インスタンスによって使用されるトークン キャッシュを設定します。 既定では、メモリ内キャッシュが作成され、使用されます。 規定値: None
|
|
http_client
|
(省略可能)抽象クラス HttpClient の実装 <msal.oauth2cli.http.http_client> 要求セッション インスタンスの既定値です。 MSAL 1.11.0 以降では、接続エラー時に 1 回の再試行を試行するように既定のセッションが構成されます。 独自のhttp_clientを提供する場合、再試行を実行するかどうかを決定するのはhttp_clientの義務です。 規定値: None
|
|
verify
|
(省略可能) これは、基になる要求ライブラリの verify パラメーターに 渡されます。これは、独自の Http クライアントを渡すように選択した場合は適用されません。 規定値: True
|
|
proxies
|
(省略可能) 基になる要求ライブラリのプロキシ パラメーター に渡されます。これは、独自の Http クライアントを渡すように選択した場合は適用されません。 規定値: None
|
|
timeout
|
(省略可能) 基になる要求ライブラリのタイムアウト パラメーター に渡されます。これは、独自の Http クライアントを渡すように選択した場合は適用されません。 規定値: None
|
|
app_name
|
(省略可能)Microsoftテレメトリの目的でアプリケーション名を指定できます。 既定値は None で、Microsoftに渡されないことを意味します。 規定値: None
|
|
app_version
|
(省略可能)アプリケーションのバージョンは、Microsoftテレメトリの目的で提供できます。 既定値は None で、Microsoftに渡されないことを意味します。 規定値: None
|
|
client_capabilities
|
(省略可能)1 つ以上のクライアント機能 (例: [CP1") の構成を許可します。 クライアント機能は、このクライアントが何に対応できるかをMicrosoft ID プラットフォーム (STS) に通知することを目的としているため、STS は特定の機能を有効にすることを決定できます。 たとえば、クライアントが 要求チャレンジを処理できる場合、STS はリソース に対して継続的アクセス評価 (CAE) アクセス トークンを発行し、リソースが 要求チャレンジ を出力するときにクライアントがそれらのチャレンジを処理できることを認識できます。 実装の詳細: クライアント機能は、現時点では、ネットワーク上の "claims" パラメーターを使用して実装されています。 MSAL は、それらを 要求パラメーター に結合します。このパラメーターは、後で取得トークン要求の 1 つを介して指定します。 規定値: None
|
|
azure_region
|
(省略可能)Entra リージョン トークン サービスを使用するように MSAL に指示します。 このレガシ機能は、ファースト パーティのアプリケーションでのみ使用できます。
4 つの値をサポートします。
Note リージョンの自動検出は、VM とAzure Functionsでテストされています。 信頼性が低い。 このオプションを使用するアプリケーションでは、短いタイムアウトを構成する必要があります。 詳細とリージョン文字列の値については、 見る https://learn.microsoft.com/entra/msal/dotnet/resources/region-discovery-troubleshooting バージョン 1.12.0 の新機能。 規定値: None
|
|
exclude_scopes
|
(省略可能)これまで、MSAL は スコープoffline_access ハードコードします。これにより、アプリがユーザーのデータに長時間アクセスできるようになります。
アプリで不要または望ましくない場合は、このパラメーターを使用して、 規定値: None
|
|
http_cache
|
MSAL は長い間、 この アプリがコマンド ライン アプリ (CLI) の場合は、異なる CLI の実行間でhttp_cacheを保持する必要があります。 永続化されたファイルの形式は、 不安定なプロトコルが原因で変更される可能性があります。そのため、実装では予期しない読み込みエラーが許容されます。 次のレシピは、これを行う方法を示しています。
バージョン 1.16.0 の新機能。 規定値: None
|
|
instance_discovery
|
<xref:boolean>
これまで、MSAL は、特に未知の機関を使用する場合に、 このパラメーターの既定値は None で、インスタンス検出を有効にします。 MSAL が as-isで動作することを許可する一部の機関がわかっている場合は、インスタンスの検出を必要とせずに、次のパターンをお勧めします。
一部の機関を事前に把握していないが、提供する機関を MSAL が引き続き受け入れることを望んでいる場合は、 バージョン 1.19.0 の新機能。 規定値: None
|
|
allow_broker
|
<xref:boolean>
Deprecated. 代わりに、 規定値: None
|
|
enable_pii_log
|
<xref:boolean>
有効にすると、ログに PII (個人を特定できる情報) が含まれる場合があります。 これは、ブローカーの動作のトラブルシューティングに役立ちます。 既定の動作は False です。 バージョン 1.24.0 の新機能。 規定値: None
|
|
oidc_authority
|
バージョン 1.28.0 で追加: 注: ブローカーは OIDC 権限には使用されません。 規定値: None
|
メソッド
| acquire_token_for_client |
エンド ユーザーではなく、現在の機密クライアントのトークンを取得します。 MSAL Python 1.23 であるため、キャッシュからトークンが自動的に検索され、キャッシュミス時にのみ ID プロバイダーに要求が送信されます。 |
| acquire_token_on_behalf_of |
代理 (OBO) フローを使用してトークンを取得します。 現在のアプリは、エンド ユーザーを表すトークンを使用して呼び出された中間層サービスです。 現在のアプリでは、このようなトークン (ユーザー アサーションなど) を使用して、そのユーザーの代わりにダウンストリーム Web API にアクセスするための別のトークンを要求できます。 詳細なドキュメントについては、こちらを参照してください。 現在の中間層アプリには、同意を得るためのユーザー操作がありません。 この記事では、中間層アプリの事前の同意を得る方法を参照してください。 https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow#gaining-consent-for-the-middle-tier-application |
| remove_tokens_for_client |
現在のクライアントの acquire_token_for_client を使用して以前に取得したすべてのトークンを削除します。 |
acquire_token_for_client
エンド ユーザーではなく、現在の機密クライアントのトークンを取得します。
MSAL Python 1.23 であるため、キャッシュからトークンが自動的に検索され、キャッシュミス時にのみ ID プロバイダーに要求が送信されます。
acquire_token_for_client(scopes, claims_challenge=None, fmi_path=None, **kwargs)
パラメーター
| 名前 | 説明 |
|---|---|
|
scopes
必須
|
(必須)保護された API (リソース) へのアクセスを要求されたスコープ。 |
|
claims_challenge
|
claims_challenge パラメーターは、リソース プロバイダーによって要求された特定の要求を、www-authenticate ヘッダーの claims_challenge ディレクティブの形式で、UserInfo エンドポイントまたは ID トークンまたはアクセス トークンから返されるように要求します。 これは、これらの場所から要求される要求の一覧を含む JSON オブジェクトの文字列です。 規定値: None
|
|
fmi_path
|
オプション。 フェデレーション マネージド ID (FMI) 資格情報パス。
指定すると、トークン要求本文で
規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
Microsoft Entraからの json 応答を表すディクテーション:
|
acquire_token_on_behalf_of
代理 (OBO) フローを使用してトークンを取得します。
現在のアプリは、エンド ユーザーを表すトークンを使用して呼び出された中間層サービスです。 現在のアプリでは、このようなトークン (ユーザー アサーションなど) を使用して、そのユーザーの代わりにダウンストリーム Web API にアクセスするための別のトークンを要求できます。 詳細なドキュメントについては、こちらを参照してください。
現在の中間層アプリには、同意を得るためのユーザー操作がありません。 この記事では、中間層アプリの事前の同意を得る方法を参照してください。 https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow#gaining-consent-for-the-middle-tier-application
acquire_token_on_behalf_of(user_assertion, scopes, claims_challenge=None, **kwargs)
パラメーター
| 名前 | 説明 |
|---|---|
|
user_assertion
必須
|
このアプリで既に受信した受信トークン |
|
scopes
必須
|
ダウンストリーム API (リソース) で必要なスコープ。 |
|
claims_challenge
|
claims_challenge パラメーターは、リソース プロバイダーによって要求された特定の要求を、www-authenticate ヘッダーの claims_challenge ディレクティブの形式で、UserInfo エンドポイントまたは ID トークンまたはアクセス トークンから返されるように要求します。 これは、これらの場所から要求される要求の一覧を含む JSON オブジェクトの文字列です。 規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
Microsoft Entraからの json 応答を表すディクテーション:
|
remove_tokens_for_client
現在のクライアントの acquire_token_for_client を使用して以前に取得したすべてのトークンを削除します。
remove_tokens_for_client()