PublicClientApplication 클래스
<xref:ClientApplication.__init__>이 매개 변수는 client_credential 그대로 유지None됩니다.
메모
브로커란 무엇이며 왜 사용합니까?
broker는 디바이스에 설치된 구성 요소입니다.
Broker는 암시적으로 디바이스에 ID를 제공합니다. broker를 사용하여
디바이스는 MFA(다단계 인증)를 충족할 수 있는 요소가 됩니다.
이 요소는 필수 요소가 됩니다.
테넌트의 관리자가 해당 CA(조건부 액세스) 정책을 사용하도록 설정하면 입니다.
브로커의 존재는 Microsoft ID 플랫폼 허용합니다.
토큰이 디바이스에 발급되고 있다는 더 높은 신뢰도를 갖기 위해
그리고 그것은 더 안전합니다.
브로커의 추가 이점은 다음과 입니다.
디바이스의 OS를 사용하여 수명이 긴 프로세스로 실행됩니다.
자체 캐시를 유지 관리합니다.
브로커 사용 앱(CLI도 포함)되도록 설정
는 이전에 설정된 로그인 세션에서 SSO를 자동으로 설정할 수 있습니다.
브로커를 사용하도록 옵트인하는 방법
다음 옵트인 매개 변수의 조합을 true로 설정할 수 있습니다.
옵트인 플래그
앱이 실행되는 경우
앱이 Azure Portal 데스크톱 플랫폼 리디렉션 URI로 등록했습니다.
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 (반드시 사용하도록 설정해야 함)
broker 종속성 설치,
예: pip install msal[broker]>=1.33,2<.
acquire_token_interactive() 및 acquire_token_silent()를 사용하여 테스트합니다.
MSAL Python broker 지원의 대체 동작
MSAL은 오류가 발생하거나 비 브로커 흐름으로 자동으로 대체됩니다.
MSAL은 enable_broker_ 무시합니다... 및 바이패스 브로커
broker에서 지원하지 않는 것으로 알려진 인증 흐름에 대해 설명합니다.
여기에는 ADFS, B2C 등이 포함됩니다.
다른 "could-use-broker" 시나리오는 아래를 참조하세요.
앱 개발자가 broker를 사용하도록 옵트인할 때 MSAL 오류 발생
그러나 직접 종속성 "중간 계층" 패키지가 설치되지 않았습니다.
앱 개발자가 올바른 종속성을 선언하도록 안내하는 오류 메시지
msal[broker].
오류가 앱 개발자에게 실행 가능하기 때문에 여기서 오류가 발생합니다.
MSAL은 broker를 자동으로 "비활성화"하고 비 브로커로 대체합니다.
옵트인 시 종속성이 설치되어 있지만 초기화하지 못했습니다.
OS가 너무 오래된 디바이스에서 이 작업이 발생할 것으로 예상합니다.
또는 기본 broker 구성 요소를 사용할 수 없습니다.
앱 개발자나 최종 사용자가 여기서 수행할 수 있는 작업은 많지 않습니다.
결국 조건부 액세스 정책은
사용자가 다른 디바이스로 전환하도록 강제합니다.
broker가 옵트인, 설치, 초기화될 때 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)
매개 변수
| Name | Description |
|---|---|
|
enable_broker_on_windows
필수
|
<xref:boolean>
이 설정은 앱이 Windows 10+에서 실행되는 경우에만 적용됩니다. 이 매개 변수는 기본적으로 None으로 설정됩니다. 즉, MSAL은 broker를 사용하지 않습니다. MSAL Python 1.25.0의 새로운 기능입니다. |
|
enable_broker_on_mac
필수
|
<xref:boolean>
이 설정은 앱이 Mac에서 실행되는 경우에만 적용됩니다. 이 매개 변수는 기본적으로 None으로 설정됩니다. 즉, MSAL은 broker를 사용하지 않습니다. MSAL Python 1.31.0의 새로운 기능입니다. |
|
enable_broker_on_linux
필수
|
<xref:boolean>
이 설정은 앱이 WSL을 포함하여 Linux에서 실행되는 경우에만 적용됩니다. 이 매개 변수는 기본적으로 None으로 설정됩니다. 즉, MSAL은 broker를 사용하지 않습니다. MSAL Python 1.33.0의 새로운 기능입니다. |
|
enable_broker_on_wsl
필수
|
<xref:boolean>
이 설정은 앱이 WSL에서 실행되는 경우에만 적용됩니다. 이 매개 변수는 기본적으로 None으로 설정됩니다. 즉, MSAL은 broker를 사용하지 않습니다. MSAL Python 1.33.0의 새로운 기능입니다. |
|
client_id
필수
|
|
|
client_credential
|
Default value: None
|
키워드 전용 매개 변수
| Name | Description |
|---|---|
|
enable_broker_on_windows
|
Default value: None
|
|
enable_broker_on_mac
|
Default value: None
|
|
enable_broker_on_linux
|
Default value: None
|
|
enable_broker_on_wsl
|
Default value: None
|
메서드
| acquire_token_by_device_flow |
사용자 지정 가능한 폴링 효과를 사용하여 디바이스 흐름 개체로 토큰을 가져옵니다. |
| acquire_token_interactive |
로컬 브라우저를 통해 대화형으로 토큰을 획득합니다. 필수 구성 요소: Azure Portal "모바일 및 데스크톱 애플리케이션"의 리디렉션 URI를 구성 |
| initiate_device_flow |
에서 사용할 디바이스 흐름 인스턴스를 시작합니다 acquire_token_by_device_flow. |
acquire_token_by_device_flow
사용자 지정 가능한 폴링 효과를 사용하여 디바이스 흐름 개체로 토큰을 가져옵니다.
acquire_token_by_device_flow(flow, claims_challenge=None, **kwargs)
매개 변수
| Name | Description |
|---|---|
|
flow
필수
|
에 의해 initiate_device_flow이전에 생성된 받아쓰기입니다. 기본적으로 이 메서드의 폴링 효과는 현재 스레드를 차단합니다. 흐름의 "expires_at" 키 값을 0으로 변경하여 언제든지 폴링 루프를 중단할 수 있습니다. |
|
claims_challenge
|
claims_challenge 매개 변수는 userInfo 엔드포인트 및/또는 ID 토큰 및/또는 액세스 토큰에서 반환될 www-authenticate 헤더의 claims_challenge 지시문 형식으로 리소스 공급자가 요청한 특정 클레임을 요청합니다. 이러한 위치에서 요청되는 클레임 목록을 포함하는 JSON 개체의 문자열입니다. Default value: None
|
반품
| 형식 | Description |
|---|---|
|
Microsoft Entra json 응답을 나타내는 받아쓰기입니다.
|
acquire_token_interactive
로컬 브라우저를 통해 대화형으로 토큰을 획득합니다.
필수 구성 요소: Azure Portal "모바일 및 데스크톱 애플리케이션"의 리디렉션 URI를 구성http://localhost합니다.
만드는 동안 PublicClientApplication broker를 사용하도록 옵트인하는 경우 앱에도 다음 리디렉션 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)
매개 변수
| Name | Description |
|---|---|
|
scopes
필수
|
대/소문자를 구분하는 문자열 목록입니다. |
|
prompt
|
기본적으로 프롬프트 값은 전송되지 않으며 문자열 Default value: None
|
|
login_hint
|
Optional. 사용자의 식별자입니다. 일반적으로 UPN(사용자 계정 이름)입니다. Default value: None
|
|
domain_hint
|
"소비자" 또는 "조직" 또는 테넌트 도메인 "contoso.com" 중 하나일 수 있습니다. 포함된 경우 사용자가 로그인 페이지에서 진행하는 이메일 기반 검색 프로세스를 건너뛰어 사용자 환경이 약간 더 간소화됩니다. 인증 코드 흐름 문서 및 domain_hint 문서에서 사용할 수 있는 가능한 값에 대한 자세한 정보입니다. Default value: None
|
|
claims_challenge
|
claims_challenge 매개 변수는 userInfo 엔드포인트 및/또는 ID 토큰 및/또는 액세스 토큰에서 반환될 www-authenticate 헤더의 claims_challenge 지시문 형식으로 리소스 공급자가 요청한 특정 클레임을 요청합니다. 이러한 위치에서 요청되는 클레임 목록을 포함하는 JSON 개체의 문자열입니다. Default value: None
|
|
timeout
|
이 메서드는 현재 스레드를 차단합니다.
이 매개 변수는 시간 제한 값을 초 단위로 지정합니다.
기본값 Default value: None
|
|
port
|
들어오는 인증 응답을 수신 대기하는 데 사용할 포트입니다.
기본적으로 시스템 할당 포트를 사용합니다.
(나머지 redirect_uri .로 Default value: None
|
|
extra_scopes_to_consent
|
"동의할 추가 범위"는 Microsoft Entra만 사용할 수 있는 개념입니다. 동일한 상호 작용에서 동의하라는 메시지를 표시할 수 있지만 이 특정 작업에 대한 토큰을 다시 가져오지 않는 다른 리소스를 참조합니다. Default value: None
|
|
max_age
|
선택 사항입니다. 최대 인증 기간입니다. End-User 마지막으로 인증된 이후 허용되는 경과 시간(초)을 지정합니다. 경과된 시간이 이 값보다 크면 Microsoft ID 플랫폼 최종 사용자를 적극적으로 다시 인증합니다. MSAL Python ID 토큰의 auth_time 자동으로 유효성을 검사합니다. 버전 1.15의 새로운 기능 Default value: None
|
|
parent_window_handle
|
선택 사항입니다.
대부분의 Python 스크립트는 콘솔 앱입니다. 버전 1.20.0의 새로운 기능 Default value: None
|
|
on_before_launching_ui
|
<xref:function>
형식이 버전 1.20.0의 새로운 기능 Default value: None
|
|
auth_scheme
|
MSAL이 버전 1.26.0의 새로운 기능 Default value: None
|
반품
| 형식 | Description |
|---|---|
|
initiate_device_flow
에서 사용할 디바이스 흐름 인스턴스를 시작합니다 acquire_token_by_device_flow.
initiate_device_flow(scopes=None, *, claims_challenge=None, **kwargs)
매개 변수
| Name | Description |
|---|---|
|
scopes
|
보호된 API(리소스)에 액세스하도록 요청된 범위입니다. Default value: None
|
키워드 전용 매개 변수
| Name | Description |
|---|---|
|
claims_challenge
|
Default value: None
|
반품
| 형식 | Description |
|---|---|
|
새로 만든 Device Flow 개체를 나타내는 받아쓰기입니다.
|
특성
CONSOLE_WINDOW_HANDLE
CONSOLE_WINDOW_HANDLE = <object object>
DEVICE_FLOW_CORRELATION_ID
DEVICE_FLOW_CORRELATION_ID = '_correlation_id'