microsoft-agents-hosting-core 1.10.0.dev5__tar.gz → 1.10.0.dev6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents_hosting_core.egg-info → microsoft_agents_hosting_core-1.10.0.dev6}/PKG-INFO +20 -2
- microsoft_agents_hosting_core-1.10.0.dev6/VERSION.txt +1 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/__init__.py +14 -9
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/auth_handler.py +5 -2
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/authorization.py +11 -7
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/__init__.py +7 -3
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/_entra_issuers.py +3 -4
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/_helpers.py +1 -1
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/_log_config.py +36 -28
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/access_token_provider_base.py +20 -5
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/anonymous_token_provider.py +11 -5
- microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/authorization/connection_manager.py +6 -0
- microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/authorization/connections/__init__.py +16 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/authorization → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/authorization/connections}/agent_auth_configuration.py +47 -1
- microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/authorization/connections/connection_manager.py +293 -0
- microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/authorization/connections/connection_settings_base.py +98 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/authorization → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/authorization/connections}/connections.py +3 -3
- microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/authorization/connections/connections_map.py +76 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/jwt/_authorize_request.py +1 -1
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/jwt/jwt_connection_settings.py +8 -3
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/jwt/jwt_token_validator.py +7 -10
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/jwt/token_validation_configuration.py +15 -10
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/rest_channel_service_client_factory.py +1 -2
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents_hosting_core.egg-info}/PKG-INFO +20 -2
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents_hosting_core.egg-info/SOURCES.txt +6 -3
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents_hosting_core.egg-info/requires.txt +1 -1
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/readme.md +18 -0
- microsoft_agents_hosting_core-1.10.0.dev5/VERSION.txt +0 -1
- microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/authorization/connection_manager.py +0 -224
- microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/authorization/connection_settings_base.py +0 -204
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/LICENSE +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/MANIFEST.in +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/_http_adapter_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/_oauth/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/_oauth/_flow_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/_oauth/_flow_storage_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/_oauth/_oauth_flow.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/_utils/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/_utils/_service_set.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/_utils/_turn_context_wrapper.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/activity_handler.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/agent.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/_routes/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/_routes/_route.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/_routes/_route_list.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/_routes/route_rank.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/_selector.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/_type_defs.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/_utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/adaptive_card/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/adaptive_card/_type_defs.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/adaptive_card/adaptive_card.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/adaptive_card/factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/adaptive_card/models.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/agent_application.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/app_error.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/app_options.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/attachment_downloader.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/input_file.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/m365_attachment_downloader.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/_handlers/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/_handlers/_authorization_handler.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/_handlers/_user_authorization.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/_handlers/agentic_user_authorization.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/_handlers/connector_user_authorization.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/_sign_in_response.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/_sign_in_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/telemetry/turn_context → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/app/oauth/telemetry}/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/oauth/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/conversation.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/conversation_builder.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/conversation_reference_builder.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/create_conversation_options.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/proactive.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/proactive_options.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/telemetry/adapter → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/app/proactive/telemetry}/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/telemetry/_utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/proactive/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/query.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/state/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/state/conversation_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/state/state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/state/temp_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/state/turn_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/streaming/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/streaming/citation.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/streaming/citation_util.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/streaming/streaming_response.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/storage → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/app}/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/app/typing_indicator.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/auth_types.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/authentication_constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/claims_identity.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/jwt/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/connector → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/authorization}/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/authorization/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/card_factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/channel_adapter.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/channel_api_handler_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/channel_service_adapter.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/channel_service_client_factory_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/agent_conversation_reference.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/channel_factory_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/channel_host_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/channel_info_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/channel_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/channels_configuration.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/configuration_channel_host.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/conversation_constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/conversation_id_factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/conversation_id_factory_options.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/conversation_id_factory_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/http_agent_channel.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/client/http_agent_channel_factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/_utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/agent_sign_in_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/attachments_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/client/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/client/_base_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/client/agent_sign_in.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/client/connector_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/client/user_token.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/client/user_token_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/connector_client_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/conversations_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/get_product_info.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/mcs/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/teams/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/teams/teams_connector_client.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/authorization → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/connector}/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/telemetry/_request_span_wrapper.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/telemetry/connector_spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/telemetry/user_token_client_spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/user_token_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/connector/user_token_client_base.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/errors/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/errors/error_resources.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/header_propagation/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/header_propagation/agentic_header_provider.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/header_propagation/header_propagation_context.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/header_propagation/header_value_provider.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/http/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/http/_channel_service_routes.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/http/_http_request_protocol.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/http/_http_response.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/message_factory.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/middleware_set.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/py.typed +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/security/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/security/_connector.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/security/_middleware.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/security/_utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/security/_validator.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/security/outbound_host_validator.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/state/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/state/agent_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/state/state_property_accessor.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/state/user_state.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/_type_aliases.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/error_handling.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/memory_storage.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/storage.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/store_item.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/app → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/storage}/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/telemetry/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/telemetry/metrics.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/telemetry/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/transcript/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/transcript/transcript_file_store.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/transcript/transcript_info.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/transcript/transcript_logger.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/transcript/transcript_memory_store.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/storage/transcript/transcript_store.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/app/proactive/telemetry → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/telemetry/adapter}/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/adapter/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/adapter/metrics.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/adapter/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/attributes.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/core/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/core/_agents_telemetry.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/core/base_span_wrapper.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/core/resource.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/core/simple_span_wrapper.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/core/type_defs.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5/microsoft_agents/hosting/core/app/oauth/telemetry → microsoft_agents_hosting_core-1.10.0.dev6/microsoft_agents/hosting/core/telemetry/turn_context}/__init__.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/turn_context/constants.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/turn_context/spans.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/telemetry/utils.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents/hosting/core/turn_context.py +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents_hosting_core.egg-info/dependency_links.txt +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/microsoft_agents_hosting_core.egg-info/top_level.txt +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/pyproject.toml +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/setup.cfg +0 -0
- {microsoft_agents_hosting_core-1.10.0.dev5 → microsoft_agents_hosting_core-1.10.0.dev6}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: microsoft-agents-hosting-core
|
|
3
|
-
Version: 1.10.0.
|
|
3
|
+
Version: 1.10.0.dev6
|
|
4
4
|
Summary: Core library for Microsoft Agents
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License-Expression: MIT
|
|
@@ -15,7 +15,7 @@ Classifier: Operating System :: OS Independent
|
|
|
15
15
|
Requires-Python: >=3.10
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
|
-
Requires-Dist: microsoft-agents-activity==1.10.0.
|
|
18
|
+
Requires-Dist: microsoft-agents-activity==1.10.0.dev6
|
|
19
19
|
Requires-Dist: pyjwt>=2.10.1
|
|
20
20
|
Requires-Dist: isodate>=0.6.1
|
|
21
21
|
Requires-Dist: python-dotenv>=1.1.1
|
|
@@ -216,6 +216,24 @@ Additionally we provide a Copilot Studio Client, to interact with Agents created
|
|
|
216
216
|
| `microsoft-agents-copilotstudio-client` | [](https://pypi.org/project/microsoft-agents-copilotstudio-client/) | Direct to Engine client to interact with Agents created in CopilotStudio |
|
|
217
217
|
|
|
218
218
|
|
|
219
|
+
## Connection Configuration
|
|
220
|
+
|
|
221
|
+
`microsoft_agents.hosting.core.authorization.connections` contains `Connections`,
|
|
222
|
+
`ConnectionManager`, `ConnectionSettingsBase`, and the legacy `AgentAuthConfiguration`.
|
|
223
|
+
Existing top-level and legacy module imports remain supported.
|
|
224
|
+
|
|
225
|
+
Pass application settings as `ConnectionManager(provider_factory, config=configuration)`
|
|
226
|
+
to deliver each connection's settings to the provider as a `Configuration`. Read bound
|
|
227
|
+
provider settings through `provider.config`; provider-specific settings derive from
|
|
228
|
+
`ConnectionSettingsBase`. Connection maps accept ordered lists or named mappings with
|
|
229
|
+
`service_url`, `audience`, and `connection` fields, including environment-style aliases.
|
|
230
|
+
|
|
231
|
+
Existing `connections_configurations`, `connections_map`, and `**legacy_config`
|
|
232
|
+
constructor calls still pass `AgentAuthConfiguration` objects to the provider factory.
|
|
233
|
+
`get_default_connection_configuration()` remains available for those legacy calls;
|
|
234
|
+
configuration-based managers should use `get_default_connection().config`.
|
|
235
|
+
The environment loader is unchanged.
|
|
236
|
+
|
|
219
237
|
## Installation
|
|
220
238
|
|
|
221
239
|
```bash
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.10.0.dev6
|
|
@@ -53,15 +53,18 @@ from .app.state.temp_state import TempState
|
|
|
53
53
|
from .app.state.turn_state import TurnState
|
|
54
54
|
|
|
55
55
|
# Authorization
|
|
56
|
-
from .authorization
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
56
|
+
from .authorization import (
|
|
57
|
+
AccessTokenProviderBase,
|
|
58
|
+
AuthenticationConstants,
|
|
59
|
+
AnonymousTokenProvider,
|
|
60
|
+
Connections,
|
|
61
|
+
ConnectionManager,
|
|
62
|
+
AgentAuthConfiguration,
|
|
63
|
+
ClaimsIdentity,
|
|
64
|
+
JwtTokenValidator,
|
|
65
|
+
AuthTypes,
|
|
66
|
+
ConnectionSettingsBase,
|
|
67
|
+
)
|
|
65
68
|
|
|
66
69
|
# Client API
|
|
67
70
|
from .client.agent_conversation_reference import AgentConversationReference
|
|
@@ -114,8 +117,10 @@ from .errors import error_resources, ErrorMessage, ErrorResources
|
|
|
114
117
|
|
|
115
118
|
# Define the package's public interface
|
|
116
119
|
__all__ = [
|
|
120
|
+
"ConnectionSettingsBase",
|
|
117
121
|
"ActivityHandler",
|
|
118
122
|
"Agent",
|
|
123
|
+
"AuthTypes",
|
|
119
124
|
"CardFactory",
|
|
120
125
|
"ChannelAdapter",
|
|
121
126
|
"ChannelApiHandlerProtocol",
|
|
@@ -71,8 +71,11 @@ class AuthHandler:
|
|
|
71
71
|
self._alt_blueprint_name = kwargs.get("ALT_BLUEPRINT_NAME", None)
|
|
72
72
|
|
|
73
73
|
@staticmethod
|
|
74
|
-
def _format_scopes(scopes: str) -> list[str]:
|
|
75
|
-
|
|
74
|
+
def _format_scopes(scopes: str | list[str]) -> list[str]:
|
|
75
|
+
if isinstance(scopes, str):
|
|
76
|
+
lst = scopes.strip().split(" ")
|
|
77
|
+
else:
|
|
78
|
+
lst = scopes
|
|
76
79
|
return [s for s in lst if s]
|
|
77
80
|
|
|
78
81
|
@staticmethod
|
|
@@ -17,6 +17,7 @@ from microsoft_agents.activity import (
|
|
|
17
17
|
TokenResponse,
|
|
18
18
|
)
|
|
19
19
|
from microsoft_agents.activity.activity_types import ActivityTypes
|
|
20
|
+
from microsoft_agents.activity.config import Configuration, xpath, _get, _get_str
|
|
20
21
|
|
|
21
22
|
from microsoft_agents.hosting.core.authorization._helpers import (
|
|
22
23
|
_CallableTokenCredential,
|
|
@@ -68,7 +69,9 @@ class Authorization:
|
|
|
68
69
|
connection_manager: Connections,
|
|
69
70
|
auth_handlers: dict[str, AuthHandler] | None = None,
|
|
70
71
|
auto_sign_in: bool = False,
|
|
72
|
+
*,
|
|
71
73
|
use_cache: bool = False,
|
|
74
|
+
config: Configuration | None = None,
|
|
72
75
|
**kwargs,
|
|
73
76
|
):
|
|
74
77
|
"""
|
|
@@ -100,24 +103,25 @@ class Authorization:
|
|
|
100
103
|
|
|
101
104
|
self._handlers = {}
|
|
102
105
|
|
|
103
|
-
auth_configuration
|
|
104
|
-
"
|
|
106
|
+
auth_configuration = Configuration.from_mapping(config, **kwargs).get_section(
|
|
107
|
+
xpath("agent_application", "user_authorization"), default=Configuration()
|
|
105
108
|
)
|
|
109
|
+
|
|
106
110
|
if not auth_handlers:
|
|
107
111
|
# get from config
|
|
108
|
-
handlers_config
|
|
112
|
+
handlers_config = auth_configuration.get(xpath("handlers"), default={})
|
|
109
113
|
auth_handlers = {
|
|
110
114
|
handler_name: AuthHandler(
|
|
111
115
|
name=handler_name,
|
|
112
|
-
auth_type=config
|
|
113
|
-
**config
|
|
116
|
+
auth_type=_get_str(config, *xpath("type"), default=""),
|
|
117
|
+
**_get(config, *xpath("settings"), default={}),
|
|
114
118
|
)
|
|
115
119
|
for handler_name, config in handlers_config.items()
|
|
116
120
|
}
|
|
117
121
|
|
|
118
122
|
self._handler_settings = auth_handlers
|
|
119
|
-
self._auto_sign_in = auto_sign_in or
|
|
120
|
-
|
|
123
|
+
self._auto_sign_in = auto_sign_in or auth_configuration.get_bool(
|
|
124
|
+
xpath("auto_sign_in"), default=False
|
|
121
125
|
)
|
|
122
126
|
|
|
123
127
|
# operations default to the first handler if none specified
|
|
@@ -4,9 +4,12 @@
|
|
|
4
4
|
from .access_token_provider_base import AccessTokenProviderBase
|
|
5
5
|
from .authentication_constants import AuthenticationConstants
|
|
6
6
|
from .anonymous_token_provider import AnonymousTokenProvider
|
|
7
|
-
from .connections import
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
from .connections import (
|
|
8
|
+
AgentAuthConfiguration,
|
|
9
|
+
Connections,
|
|
10
|
+
ConnectionManager,
|
|
11
|
+
ConnectionSettingsBase,
|
|
12
|
+
)
|
|
10
13
|
from .claims_identity import ClaimsIdentity
|
|
11
14
|
from .jwt import JwtTokenValidator
|
|
12
15
|
from .auth_types import AuthTypes
|
|
@@ -21,4 +24,5 @@ __all__ = [
|
|
|
21
24
|
"ClaimsIdentity",
|
|
22
25
|
"JwtTokenValidator",
|
|
23
26
|
"AuthTypes",
|
|
27
|
+
"ConnectionSettingsBase",
|
|
24
28
|
]
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
"""Shared helpers for recognizing Microsoft Entra ID / Bot Framework token issuers.
|
|
5
5
|
|
|
6
|
-
Centralizes
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
binding, and JWKS routing) so the two stay consistent.
|
|
6
|
+
Centralizes cloud (public vs. US Government) and tenant-GUID parsing for
|
|
7
|
+
JwtTokenValidator's issuer validation, tenant binding, and JWKS routing.
|
|
8
|
+
Also provides default issuer construction for legacy configuration compatibility.
|
|
10
9
|
"""
|
|
11
10
|
|
|
12
11
|
from __future__ import annotations
|
|
@@ -6,9 +6,10 @@ import json
|
|
|
6
6
|
from logging import Logger
|
|
7
7
|
from urllib.parse import urlparse
|
|
8
8
|
|
|
9
|
+
from microsoft_agents.activity.config import Configuration, xpath
|
|
9
10
|
from microsoft_agents.activity._model_utils import pick_model_dict, SkipNone
|
|
10
11
|
|
|
11
|
-
from .
|
|
12
|
+
from .connections.connections_map import _ConnectionMap
|
|
12
13
|
|
|
13
14
|
_REDACTION_PEEK_LENGTH = 3
|
|
14
15
|
_REDACTION_THRESH = _REDACTION_PEEK_LENGTH + 6
|
|
@@ -90,53 +91,60 @@ def _redact_url_or_none(url: str | None) -> str | None:
|
|
|
90
91
|
return _redact_url(url)
|
|
91
92
|
|
|
92
93
|
|
|
93
|
-
def _summarize_auth_configs(config_map: dict[str,
|
|
94
|
+
def _summarize_auth_configs(config_map: dict[str, Configuration]) -> str:
|
|
94
95
|
"""
|
|
95
96
|
Summarize the authentication configuration for logging.
|
|
96
97
|
|
|
97
98
|
:arg config_map: A dictionary of connection configurations.
|
|
98
|
-
:type config_map: dict[str, :class:`microsoft_agents.
|
|
99
|
+
:type config_map: dict[str, :class:`microsoft_agents.activity.config.Configuration`]
|
|
99
100
|
:return: A string summarizing the authentication configuration.
|
|
100
101
|
:rtype: str
|
|
101
102
|
"""
|
|
103
|
+
get_strn = lambda key: config.get_strn(xpath(key))
|
|
102
104
|
summary = []
|
|
103
105
|
for connection_name, config in config_map.items():
|
|
104
106
|
summary.append(
|
|
105
107
|
pick_model_dict(
|
|
106
108
|
CONNECTION=connection_name,
|
|
107
|
-
CONNECTION_NAME=SkipNone(
|
|
108
|
-
CLIENTID=SkipNone(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
109
|
+
CONNECTION_NAME=SkipNone(get_strn("CONNECTION_NAME")),
|
|
110
|
+
CLIENTID=SkipNone(
|
|
111
|
+
_redact_str_or_none(get_strn("CLIENT_ID"), peek=True)
|
|
112
|
+
),
|
|
113
|
+
TENANTID=SkipNone(
|
|
114
|
+
_redact_str_or_none(get_strn("TENANT_ID"), peek=True)
|
|
115
|
+
),
|
|
116
|
+
CLIENTSECRET=SkipNone(_redact_str_or_none(get_strn("CLIENT_SECRET"))),
|
|
117
|
+
AUTHORITY=SkipNone(
|
|
118
|
+
_redact_url_or_none(
|
|
119
|
+
config.get_strn(xpath("authority"), xpath("authorityendpoint"))
|
|
120
|
+
)
|
|
121
|
+
),
|
|
122
|
+
SCOPES=SkipNone(_redact_scopes(config.get_scopes(xpath("SCOPES")))),
|
|
113
123
|
FEDERATED_CLIENT_ID=SkipNone(
|
|
114
|
-
_redact_str_or_none(
|
|
124
|
+
_redact_str_or_none(get_strn("FEDERATED_CLIENT_ID"), peek=True)
|
|
115
125
|
),
|
|
116
|
-
CERT_PFX_FILE=SkipNone(_redact_str_or_none(
|
|
126
|
+
CERT_PFX_FILE=SkipNone(_redact_str_or_none(get_strn("CERT_PFX_FILE"))),
|
|
117
127
|
ALT_BLUEPRINT_ID=SkipNone(
|
|
118
|
-
_redact_str_or_none(
|
|
128
|
+
_redact_str_or_none(get_strn("ALT_BLUEPRINT_ID"), peek=True)
|
|
119
129
|
),
|
|
120
|
-
IDPM_RESOURCE=SkipNone(_redact_url_or_none(
|
|
121
|
-
AZURE_REGION=SkipNone(_redact_url_or_none(
|
|
122
|
-
ANONYMOUS_ALLOWED=str(config.ANONYMOUS_ALLOWED),
|
|
130
|
+
IDPM_RESOURCE=SkipNone(_redact_url_or_none(get_strn("IDPM_RESOURCE"))),
|
|
131
|
+
AZURE_REGION=SkipNone(_redact_url_or_none(get_strn("AZURE_REGION"))),
|
|
132
|
+
ANONYMOUS_ALLOWED=str(config.get_booln(xpath("ANONYMOUS_ALLOWED"))),
|
|
123
133
|
)
|
|
124
134
|
)
|
|
125
135
|
return json.dumps(summary, indent=2)
|
|
126
136
|
|
|
127
137
|
|
|
128
|
-
def _summarize_connections_map(connections_map:
|
|
138
|
+
def _summarize_connections_map(connections_map: _ConnectionMap) -> str:
|
|
129
139
|
connections_map_output = []
|
|
130
140
|
for mapping in connections_map:
|
|
131
|
-
obj = {
|
|
132
|
-
"CONNECTION": mapping.get("CONNECTION", ""),
|
|
133
|
-
}
|
|
141
|
+
obj = {"CONNECTION": mapping.connection}
|
|
134
142
|
|
|
135
|
-
if
|
|
136
|
-
obj["AUDIENCE"] = mapping
|
|
143
|
+
if mapping.audience:
|
|
144
|
+
obj["AUDIENCE"] = mapping.audience
|
|
137
145
|
|
|
138
|
-
if
|
|
139
|
-
service_url = mapping.
|
|
146
|
+
if mapping.service_url:
|
|
147
|
+
service_url = mapping.service_url.strip()
|
|
140
148
|
if service_url != "*":
|
|
141
149
|
service_url = _redact_url(service_url)
|
|
142
150
|
obj["SERVICEURL"] = service_url
|
|
@@ -148,18 +156,18 @@ def _summarize_connections_map(connections_map: list[dict[str, str]]) -> str:
|
|
|
148
156
|
|
|
149
157
|
def _log_config(
|
|
150
158
|
logger: Logger,
|
|
151
|
-
config_map: dict[str,
|
|
152
|
-
connections_map:
|
|
159
|
+
config_map: dict[str, Configuration],
|
|
160
|
+
connections_map: _ConnectionMap,
|
|
153
161
|
) -> None:
|
|
154
162
|
"""
|
|
155
|
-
Log
|
|
163
|
+
Log redacted configuration for a provider-independent connection manager.
|
|
156
164
|
|
|
157
165
|
:arg logger: The logger to use for logging.
|
|
158
166
|
:type logger: :class:`logging.Logger`
|
|
159
167
|
:arg connections_map: A list of connection mappings.
|
|
160
|
-
:type connections_map:
|
|
168
|
+
:type connections_map: _ConnectionMap
|
|
161
169
|
:arg config_map: A dictionary of connection configurations.
|
|
162
|
-
:type config_map: dict[str,
|
|
170
|
+
:type config_map: dict[str, Configuration]
|
|
163
171
|
"""
|
|
164
172
|
|
|
165
173
|
connections_output = _summarize_auth_configs(config_map)
|
|
@@ -1,26 +1,41 @@
|
|
|
1
1
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
2
|
# Licensed under the MIT License.
|
|
3
3
|
|
|
4
|
-
from
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from typing import TYPE_CHECKING, Protocol
|
|
5
7
|
from abc import abstractmethod
|
|
6
8
|
|
|
7
9
|
from azure.core.credentials_async import AsyncTokenCredential
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from .connections import AgentAuthConfiguration, ConnectionSettingsBase
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
class AccessTokenProviderBase(Protocol):
|
|
13
16
|
|
|
14
17
|
@property
|
|
15
|
-
@abstractmethod
|
|
16
18
|
def configuration(self) -> AgentAuthConfiguration:
|
|
17
19
|
"""
|
|
18
|
-
|
|
20
|
+
Deprecated legacy configuration view. Prefer :attr:`config`.
|
|
19
21
|
|
|
20
|
-
:return:
|
|
22
|
+
:return: AgentAuthConfiguration retained for compatibility.
|
|
21
23
|
"""
|
|
24
|
+
# this property is deprecated and will be removed in future versions
|
|
22
25
|
raise NotImplementedError()
|
|
23
26
|
|
|
27
|
+
@property
|
|
28
|
+
def config(self) -> ConnectionSettingsBase:
|
|
29
|
+
"""
|
|
30
|
+
Bound provider-specific settings extending ConnectionSettingsBase.
|
|
31
|
+
|
|
32
|
+
:return: The provider's typed connection settings.
|
|
33
|
+
"""
|
|
34
|
+
# Convert the deprecated configuration to the new connection settings format.
|
|
35
|
+
from .connections.connection_settings_base import ConnectionSettingsBase
|
|
36
|
+
|
|
37
|
+
return ConnectionSettingsBase.from_mapping(**self.configuration._to_dict())
|
|
38
|
+
|
|
24
39
|
@abstractmethod
|
|
25
40
|
async def get_access_token(
|
|
26
41
|
self, resource_url: str, scopes: list[str], force_refresh: bool = False
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
2
|
# Licensed under the MIT License.
|
|
3
3
|
|
|
4
|
-
from typing import Optional
|
|
5
|
-
|
|
6
4
|
from azure.core.credentials import AccessToken
|
|
7
5
|
from azure.core.credentials_async import AsyncTokenCredential
|
|
8
6
|
|
|
9
7
|
from .access_token_provider_base import AccessTokenProviderBase
|
|
10
|
-
from .
|
|
8
|
+
from .connections import AgentAuthConfiguration, ConnectionSettingsBase
|
|
11
9
|
from ._helpers import _CallableTokenCredential
|
|
12
10
|
|
|
13
11
|
_ANONYMOUS_TOKEN_EXPIRATION = 2**31 - 1
|
|
@@ -27,6 +25,14 @@ class AnonymousTokenProvider(AccessTokenProviderBase):
|
|
|
27
25
|
"""
|
|
28
26
|
return AgentAuthConfiguration()
|
|
29
27
|
|
|
28
|
+
@property
|
|
29
|
+
def config(self) -> ConnectionSettingsBase:
|
|
30
|
+
"""
|
|
31
|
+
The configuration for the access token provider.
|
|
32
|
+
:return: The configuration for the access token provider.
|
|
33
|
+
"""
|
|
34
|
+
return ConnectionSettingsBase()
|
|
35
|
+
|
|
30
36
|
async def get_access_token(
|
|
31
37
|
self, resource_url: str, scopes: list[str], force_refresh: bool = False
|
|
32
38
|
) -> str:
|
|
@@ -45,7 +51,7 @@ class AnonymousTokenProvider(AccessTokenProviderBase):
|
|
|
45
51
|
|
|
46
52
|
async def get_agentic_application_token(
|
|
47
53
|
self, tenant_id: str, agent_app_instance_id: str
|
|
48
|
-
) ->
|
|
54
|
+
) -> str | None:
|
|
49
55
|
return ""
|
|
50
56
|
|
|
51
57
|
async def get_agentic_instance_token(
|
|
@@ -59,5 +65,5 @@ class AnonymousTokenProvider(AccessTokenProviderBase):
|
|
|
59
65
|
agent_app_instance_id: str,
|
|
60
66
|
agentic_user_id: str,
|
|
61
67
|
scopes: list[str],
|
|
62
|
-
) ->
|
|
68
|
+
) -> str | None:
|
|
63
69
|
return ""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
from .agent_auth_configuration import AgentAuthConfiguration
|
|
5
|
+
from .connection_settings_base import ConnectionSettingsBase
|
|
6
|
+
from .connections import Connections
|
|
7
|
+
from .connection_manager import ConnectionManager
|
|
8
|
+
from .connections_map import _ConnectionMap
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
"AgentAuthConfiguration",
|
|
12
|
+
"ConnectionSettingsBase",
|
|
13
|
+
"Connections",
|
|
14
|
+
"ConnectionManager",
|
|
15
|
+
"_ConnectionMap",
|
|
16
|
+
]
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
6
|
+
import warnings
|
|
7
|
+
|
|
6
8
|
from typing import Any
|
|
7
9
|
|
|
8
|
-
from microsoft_agents.activity.config
|
|
10
|
+
from microsoft_agents.activity.config import coerce_bool
|
|
9
11
|
|
|
10
12
|
from microsoft_agents.hosting.core.authorization.auth_types import AuthTypes
|
|
11
13
|
from microsoft_agents.hosting.core.authorization._entra_issuers import (
|
|
@@ -120,6 +122,10 @@ class AgentAuthConfiguration:
|
|
|
120
122
|
# not directly access _connections.
|
|
121
123
|
_connections: dict[str, AgentAuthConfiguration]
|
|
122
124
|
|
|
125
|
+
@staticmethod
|
|
126
|
+
def from_dict(config: dict[str, Any]) -> AgentAuthConfiguration:
|
|
127
|
+
return AgentAuthConfiguration(**config)
|
|
128
|
+
|
|
123
129
|
def __init__(
|
|
124
130
|
self,
|
|
125
131
|
auth_type: AuthTypes | None = None,
|
|
@@ -142,6 +148,12 @@ class AgentAuthConfiguration:
|
|
|
142
148
|
**kwargs: Any,
|
|
143
149
|
):
|
|
144
150
|
|
|
151
|
+
warnings.warn(
|
|
152
|
+
"AgentAuthConfiguration is deprecated and will be removed in a future version. Please use ConnectionSettings instead.",
|
|
153
|
+
DeprecationWarning,
|
|
154
|
+
stacklevel=2,
|
|
155
|
+
)
|
|
156
|
+
|
|
145
157
|
self.AUTH_TYPE = auth_type or kwargs.get("AUTHTYPE", AuthTypes.client_secret)
|
|
146
158
|
self.CLIENT_ID = client_id or kwargs.get("CLIENTID", None)
|
|
147
159
|
# .NET binds the authority from the "AuthorityEndpoint" configuration key;
|
|
@@ -257,6 +269,32 @@ class AgentAuthConfiguration:
|
|
|
257
269
|
"FEDERATED_TOKEN_FILE is required for workload_identity authentication."
|
|
258
270
|
)
|
|
259
271
|
|
|
272
|
+
def _to_dict(self) -> dict[str, Any]:
|
|
273
|
+
"""
|
|
274
|
+
Converts the agent auth configuration to a dictionary representation.
|
|
275
|
+
|
|
276
|
+
:return: A dictionary containing the configuration fields and their values.
|
|
277
|
+
"""
|
|
278
|
+
return {
|
|
279
|
+
"tenant_id": self.TENANT_ID,
|
|
280
|
+
"client_id": self.CLIENT_ID,
|
|
281
|
+
"authority": self.AUTHORITY,
|
|
282
|
+
"scopes": self.SCOPES,
|
|
283
|
+
"auth_type": self.AUTH_TYPE,
|
|
284
|
+
"cert_pfx_file": self.CERT_PFX_FILE,
|
|
285
|
+
"federated_client_id": self.FEDERATED_CLIENT_ID,
|
|
286
|
+
"federated_token_file": self.FEDERATED_TOKEN_FILE,
|
|
287
|
+
"alt_blueprint_id": self.ALT_BLUEPRINT_ID,
|
|
288
|
+
"alternate_blueprint_connection_name": self.ALT_BLUEPRINT_ID,
|
|
289
|
+
"idpm_resource": self.IDPM_RESOURCE,
|
|
290
|
+
"validate_issuer": self.VALIDATE_ISSUER,
|
|
291
|
+
"issuers": self._configured_issuers,
|
|
292
|
+
"anonymous_allowed": self.ANONYMOUS_ALLOWED,
|
|
293
|
+
"client_secret": self.CLIENT_SECRET,
|
|
294
|
+
"azure_region": self.AZURE_REGION,
|
|
295
|
+
**self.provider_settings,
|
|
296
|
+
}
|
|
297
|
+
|
|
260
298
|
@property
|
|
261
299
|
def ISSUERS(self) -> list[str]:
|
|
262
300
|
"""
|
|
@@ -300,6 +338,14 @@ class AgentAuthConfiguration:
|
|
|
300
338
|
"""Alias for :attr:`ALT_BLUEPRINT_ID` (.NET ``AlternateBlueprintConnectionName``)."""
|
|
301
339
|
return self.ALT_BLUEPRINT_ID
|
|
302
340
|
|
|
341
|
+
def _get_audiences(self) -> list[str]:
|
|
342
|
+
"""Returns a list of all audiences (CLIENT_IDs) for the configured connections."""
|
|
343
|
+
audiences = []
|
|
344
|
+
for conn in self._connections.values():
|
|
345
|
+
if conn.CLIENT_ID:
|
|
346
|
+
audiences.append(conn.CLIENT_ID)
|
|
347
|
+
return audiences
|
|
348
|
+
|
|
303
349
|
def _jwt_patch_is_valid_aud(self, aud: Any) -> bool:
|
|
304
350
|
"""
|
|
305
351
|
JWT-patch: Checks if the given audience is valid for any of the
|