Esri / Esri/arcgis-python-api

Using notebook tasks for integration

Ouverte
#2,240 2 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement under consideration
Langage dominant
Python
Étoiles
2.2k
Forks
1.1k
Merge moyen
2 h 40 min
PR mergées (30 j)
2

Description

I want to use notebook tasks to integrate ArcGIS Enterprise with other non-GIS systems, but I’m encountering challenges when they use security to determine access. A notebook task runs as it’s Portal owner and is governed by sharing group permissions within Portal, which is ok, but this security context has no meaning when accessing external systems using other authentication methods like usernames and passwords, shared secrets, multi-factor authentication, token-based authentication and so on.

The reason I want to use a notebook is the flexibility of using python for ETL processing. On the occasions where I’m willing to trade off data freshness for performance gains with read-heavy workloads, I like copying data into hosted feature layers and tables. Offloading computation to a one-time or periodic refresh, or pre-aggregating data can eliminate the need to scan massive tables repeatedly.

If an ArcGIS Enterprise Portal is configured to use Security Assertion Markup Language (SAML) only, with built-in accounts disabled, and MFA is required, the implication is notebooks can only belong to and be run by actual Portal users. Real user accounts designed for humans have broader permissions that might not align with the limited scope needed for service-to-service interaction. Having notebook tasks assigned to portal users may not be the best.

Microsoft Azure provides several solutions to access resources within their ecosystem using Microsoft Entra. A Managed identity is a feature that allows Azure services to authenticate and access other Azure resources securely without needing to manage credentials like secrets or keys. If you do need store and manage sensitive information like secrets, keys and certificates there are Azure Key Vaults.

The only example I could find in the sample notebooks shows a technique of keeping secrets in a comma separated values (csv) file stored as a portal item. I would like to have something more sophisticated and following the principle of least privilege I want this permission to be assigned to a specific notebook. I don’t know if it would be better to have something that integrates with Microsoft Azure and runs on the cloud (ArcGIS Enterprise) or be the cloud (ArcGIS Online) with something more agnostic.

What is a way I can access secure non-GIS resources from Notebook Server running on Linux within Microsoft Azure?

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par examiner les notebooks d’exemple, en particulier l’exemple qui stocke des secrets dans un élément de portail CSV, et étudiez comment les tâches de notebook s’exécutent sous la propriété de Portal. L’issue n’identifie aucun point d’entrée d’implémentation, aucun fichier ni test spécifique, et ne définit aucun critère concret d’achèvement au-delà de la recherche d’un moyen appliquant le principe du moindre privilège pour accéder à des ressources sécurisées non-GIS depuis Notebook Server sur Azure.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
azure, jupyter, python
Domaine
cloud, security
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.