class RiskyUserCollection
A collection class for managing RiskyUser entities in Microsoft Graph API, providing operations to confirm compromised users or dismiss risk assessments.
/tf/active/vicechatdev/SPFCsync/venv/lib64/python3.11/site-packages/office365/directory/protection/riskyusers/collection.py
7 - 32
moderate
Purpose
RiskyUserCollection extends EntityCollection to manage a collection of RiskyUser objects from Microsoft Graph's Identity Protection API. It provides specialized methods to perform bulk operations on risky users, such as confirming users as compromised (setting their risk level to high) or dismissing their risk (setting risk level to none). This class is used within the Office365 Python SDK to interact with Azure AD Identity Protection features for managing user risk states.
Source Code
class RiskyUserCollection(EntityCollection):
"""RiskyUser's collection"""
def __init__(self, context, resource_path=None):
super(RiskyUserCollection, self).__init__(context, RiskyUser, resource_path)
def confirm_compromised(self, user_ids=None):
"""Confirm one or more riskyUser objects as compromised. This action sets the targeted user's risk level
to high.
:param list[str] user_ids: Specify the risky user IDs to dismiss in the request body.
"""
payload = {"userIds": StringCollection(user_ids)}
qry = ServiceOperationQuery(self, "confirmCompromised", None, payload)
self.context.add_query(qry)
return self
def dismiss(self, user_ids=None):
"""Dismiss the risk of one or more riskyUser objects. This action sets the targeted user's risk level to none.
:param list[str] user_ids: Specify the risky user IDs to dismiss in the request body.
"""
payload = {"userIds": StringCollection(user_ids)}
qry = ServiceOperationQuery(self, "dismiss", None, payload)
self.context.add_query(qry)
return self
Parameters
| Name | Type | Default | Kind |
|---|---|---|---|
bases |
EntityCollection | - |
Parameter Details
context: The client context object that manages the connection and authentication to the Microsoft Graph API. This is required for making API requests and is passed to the parent EntityCollection class.
resource_path: Optional string representing the API endpoint path for this collection. If not provided, defaults to the standard path for risky users. This allows for custom resource paths when needed for specific API scenarios.
Return Value
The constructor returns an instance of RiskyUserCollection. Both confirm_compromised() and dismiss() methods return self (the RiskyUserCollection instance) to enable method chaining. These methods queue service operations that will be executed when the context processes queries, but don't return the operation results directly.
Class Interface
Methods
__init__(self, context, resource_path=None)
Purpose: Initializes a new RiskyUserCollection instance with the provided context and optional resource path
Parameters:
context: The client context object for API communicationresource_path: Optional custom API endpoint path for the collection
Returns: None (constructor)
confirm_compromised(self, user_ids=None) -> RiskyUserCollection
Purpose: Confirms one or more risky users as compromised, setting their risk level to high in Azure AD Identity Protection
Parameters:
user_ids: List of user ID strings (GUIDs) to mark as compromised. If None or empty, no operation is queued.
Returns: Returns self (the RiskyUserCollection instance) to enable method chaining
dismiss(self, user_ids=None) -> RiskyUserCollection
Purpose: Dismisses the risk assessment for one or more risky users, setting their risk level to none
Parameters:
user_ids: List of user ID strings (GUIDs) whose risk should be dismissed. If None or empty, no operation is queued.
Returns: Returns self (the RiskyUserCollection instance) to enable method chaining
Attributes
| Name | Type | Description | Scope |
|---|---|---|---|
context |
ClientContext | Inherited from EntityCollection. The client context managing API communication and authentication | instance |
resource_path |
str or None | Inherited from EntityCollection. The API endpoint path for this collection | instance |
Dependencies
office365
Required Imports
from office365.directory.protection.riskyusers.risky_user import RiskyUser
from office365.entity_collection import EntityCollection
from office365.runtime.queries.service_operation import ServiceOperationQuery
from office365.runtime.types.collections import StringCollection
Usage Example
from office365.graph_client import GraphClient
from office365.directory.protection.riskyusers.risky_user_collection import RiskyUserCollection
# Authenticate and create context
client = GraphClient(credentials)
# Get the risky users collection
risky_users = client.identity_protection.risky_users
# Confirm specific users as compromised
user_ids_to_confirm = ['user1-guid', 'user2-guid']
risky_users.confirm_compromised(user_ids=user_ids_to_confirm)
client.execute_query()
# Dismiss risk for specific users
user_ids_to_dismiss = ['user3-guid', 'user4-guid']
risky_users.dismiss(user_ids=user_ids_to_dismiss)
client.execute_query()
# Method chaining is supported
risky_users.confirm_compromised(['user5-guid']).dismiss(['user6-guid'])
client.execute_query()
Best Practices
- Always call context.execute_query() after queuing operations with confirm_compromised() or dismiss() to actually execute the API requests
- Ensure the authenticated context has sufficient permissions (IdentityRiskyUser.ReadWrite.All) before performing operations
- Use method chaining when performing multiple operations to improve code readability
- Validate user IDs before passing them to methods to avoid API errors
- Handle potential exceptions from execute_query() as API calls may fail due to permissions, network issues, or invalid user IDs
- Be aware that these operations modify user risk states in Azure AD Identity Protection, which may trigger security policies and alerts
- Consider the security implications of dismissing user risks - ensure proper authorization and audit logging
- The class inherits from EntityCollection, so standard collection operations (filtering, querying) are also available
Tags
Similar Components
AI-powered semantic similarity - components with related functionality:
-
class RiskyUser 76.9% similar
-
class RiskyUserHistoryItem 67.3% similar
-
class UserCollection 66.5% similar
-
class UserConsentRequestCollection 64.7% similar
-
class RiskUserActivity 64.2% similar