Überarbeitung der Benutzerzugriffsebenen mithilfe von Power BI am Beispiel von Bitrix CMS (BUS)

Bild

Der Artikel zeigt ein Beispiel für die Verwendung von Power BI zur Analyse des Benutzerzugriffs auf einer Site, auf der 1C-Bitrix ausgeführt wird.

Das Problem


Im Laufe der Zeit sind immer mehr Benutzer auf die eine oder andere Weise mit der Entwicklung von Internetressourcen verbunden, mit erweiterten Rechten als der durchschnittliche Benutzer der Website.

In dieser Hinsicht wird es immer schwieriger, den Zugang zu vertraulichen Funktionen zu kontrollieren. Nun, wenn Regeln geschrieben werden, die helfen, den Zugriff auf einer mehr oder weniger sicheren Ebene zu kontrollieren. Aber es kommt oft vor, dass Kollegen zu anderen Einheiten ziehen, Dekrete erlassen :) oder gehen und der Zugang bleibt.

Dies birgt natürlich verschiedene Bedrohungen: das Auslaufen des Kundenstamms, bis hin zur Sabotage usw.
Das Alter der Projekte, mit denen ich arbeite, beträgt bereits 10 Jahre. Die Datenbank hat Hunderttausende von Benutzern, darunter Hunderte mit privilegierten Rechten.

Dieser Artikel zeigt ein Beispiel dafür, wie Sie die Prüfung von Benutzern auf verschiedene Site-Objekte unter der Kontrolle von Bitrix CMS (BUS) vereinfachen können.

Das Problem ist, dass das Bitrix Admin-Panel keine Möglichkeit bietet, ein vollständiges Bild mit Zugriffen zu erhalten. Es ist auch unangenehm, auf eine Reihe von Links zu klicken und darauf zu warten, dass die Administrationsseiten geladen werden.

Power BI wird als Hauptwerkzeug dafür verwendet (ein wenig außerhalb seines Hauptzwecks :)

Es wird davon ausgegangen, dass der Leser bereits auf einer grundlegenden Ebene mit Power BI vertraut ist, die Grundlagen von SQL kennt und auch weiß, wie das Bitrix Admin-Panel verwendet wird. Die Standardfunktionen für Barrierefreiheit von Bitrix werden berücksichtigt.

Nachteile des Bitrix Admin Panels


Es ist unmöglich, ein Audit im Standard-Admin-Panel für eine akzeptable Zeit durchzuführen, da kein kohärentes Bild mit Zugriffen vorhanden ist - zusammenfassende Daten für alle Module / Abschnitte / Infoblöcke usw., auf die Zugriff gewährt wird.

Administratorleistung:

  1. Im Abschnitt "Benutzergruppen" des Bitrix-Verwaltungsbereichs gibt es eine Funktion, die eine SQL-Abfrage generiert, um alle Gruppen mit einer Anzahl von Benutzern auszuwählen. Alles ist gut, wenn die Basis klein ist. Bei einer Datenbank mit Hunderttausenden von Benutzern und Hunderten von Benutzergruppen auf einem dedizierten Server mit 128 GB RAM dauert das einfache Öffnen dieses Abschnitts 8 Sekunden.
  2. Es gibt auch eine Anfrage in der Gruppenkarte, die aus irgendeinem Grund alle Benutzergruppen auswählt, anstatt nur Daten für die ausgewählte zu empfangen. Verlust in der Warteschleife 3 Sek.

Lösungen


Normalerweise gibt es mehrere Lösungen für das Problem.

  1. Schreiben Sie die Regeln für den Zugriff auf Websites auf und befolgen Sie diese klar.
  2. Führen Sie regelmäßig Zugangsprüfungen durch.
  3. Wir hoffen auf das Beste und verschwenden keine begrenzten Unternehmensressourcen.

In diesem Artikel wird nur die zweite Methode betrachtet.

Die Aufgaben


  1. Wählen Sie Tools aus, mit denen Sie schnell Daten zu den Zugriffsebenen jedes Benutzers mit erweiterten Rechten abrufen können.
  2. Richten Sie die Tools so ein, dass sie das Bild mit den Zugriffen als Ganzes mit den erforderlichen Details und Interaktivität klar darstellen.
  3. Führen Sie Zugriffsprüfungen durch.

Zugriff auf Speicher in Bitrix


Mit Bitrix können Sie Rechte über Benutzergruppen sehr flexibel konfigurieren.
Zugriffseinstellungen werden hauptsächlich in MySQL-Tabellen gespeichert. Einige Einstellungen werden in Dateien gespeichert. Beispielsweise werden Datei- und Ordnerzugriffe in .access.php-Dateien gespeichert.

Die Analyse des Benutzer- und Benutzergruppenzugriffs auf:

  • Infoblöcke
  • Webformulare mit Zugriffsebene
  • Webformularstatus mit Zugriffsebene
  • Abschnitte der Website
  • Bitrix-Module mit Zugriffsebenen

Die Werkzeuge


  1. Mit Power BI Desktop, mit dem Sie Daten gut visualisieren können, werden Daten aus zahlreichen Quellen (fast) sofort abgerufen. Tatsächlich kann Power BI durch das übliche Excel 2016 und höher ersetzt werden - PowerQuery ist bereits in der Lieferung enthalten, über die Sie alle Daten für die Analyse auswählen können. Mit Power BI können Sie jedoch Daten basierend auf ihren Beziehungen interaktiv anzeigen und so versteckte Abhängigkeiten schnell finden.
  2. Der MySQL Connector ist erforderlich, um über Power BI eine Abfrage an den MySQL-Webserver erstellen zu können.
  3. Kitty oder Putty zum Tunneln zu MySql, wenn der Zugriff auf die Datenbank nur über SSH geöffnet ist.

Das folgende Zugriffsschema wird erhalten: Power BI → MySQL Connector → Kitty → MySQL.

Power BI


Power BI Desktop - ermöglicht es Ihnen, Daten gut zu visualisieren und Daten aus zahlreichen Quellen (fast) sofort abzurufen. Tatsächlich kann Power BI durch das übliche Excel 2016 und höher ersetzt werden - PowerQuery ist bereits in der Lieferung enthalten, über die Sie alle Daten für die Analyse auswählen können. Mit Power BI können Sie jedoch Daten basierend auf ihren Beziehungen interaktiv anzeigen. Auf diese Weise können Sie schnell versteckte Abhängigkeiten finden, die wir für Zugriffsrevisionen benötigen.

Sie können es auf der offiziellen Seite herunterladen.

MySQL Connector


Gehen Sie zur Seite . Herunterladen und installieren. Manchmal müssen Sie Ihren PC nach der Installation neu starten.

Kitty / Kitt


Um SQL-Abfragen an die Bitrix-Datenbank auszuführen, müssen Sie den Tunnel konfigurieren.

  1. Geben Sie die Server-IP und den Port ein

    Bild
  2. Wir hämmern Benutzername und Passwort auf SSH

    Bild
  3. Wir machen Portweiterleitung:

    Bild
  4. Wir speichern die vorgenommenen Einstellungen für die zukünftige Verwendung im Profil:

    Bild
  5. Wir fangen an.

Sie können Putty auch einfach herunterladen und mit dem folgenden Befehl ausführen:

putty.exe -ssh "USER@HOST" -pw "PASSWORD" -2 -v -P 22 -L 3306:127.0.0.1:3306 

Natürlich muss Kitty / Putty ausgeführt werden, bevor Daten in Power BI aktualisiert werden.

Benutzer und Benutzergruppen


Wie in vielen CMS implementiert Bitrix einen Mechanismus zum Abgrenzen von Zugriffsrechten durch Benutzergruppen.

Entladen Sie Entitäten aus der Datenbank in das Power BI-Datenmodell:

  • Gruppen
  • Benutzer

... sowie Beziehungen zwischen Gruppen und Benutzern.

Gruppen


Wir beschränken uns nur auf aktive Gruppen.

Die Liste der Gruppen wird in der Tabelle b_group gespeichert.

  1. Verbindung herstellen:

    Bild
  2. Geben Sie ein:

    1. im Feld Server: localhost: 3306
    2. im Feld Datenbank: bitrix_db (Name der Datenbank, mit der Bitrix arbeitet)
    3. SQL-Abfrage:

       SELECT id, timestamp_x, active, name, description, anonymous FROM b_group WHERE active = 'Y'; 

      Bild

  3. Geben Sie den Login und das Passwort in die Datenbank ein und senden Sie eine Anfrage:

    Bild

    Bild

    Bild
  4. Geben Sie der Anfrage sofort einen freundlichen Namen:

    Bild
  5. Wir listen die Gruppen auf einem separaten Blatt in Tabellenform auf:

    Bild

Diese Methode zum Extrahieren und Präsentieren von Daten ist für andere Abfragen im Zusammenhang mit der Bitrix-Datenbank ähnlich.

Benutzer


Entladen Sie jetzt alle Benutzer mit erweiterten Rechten. Sie sollten jedoch keine Benutzer entladen, die nur in Gruppen enthalten sind, die ihnen keine zusätzlichen Rechte gewähren, z. B. "Alle Benutzer, einschließlich nicht registrierter" (es ist zu beachten, dass die Verbindung dieser Gruppe mit Benutzern für alle Benutzer gespeichert ist, die vor Version 12 registriert wurden. In neueren Versionen In Versionen wird die Gruppe als systemisch betrachtet und speichert keine Daten zur Kommunikation mit Datenbankbenutzern.

Wir beschränken uns nur auf aktivierte Benutzer.

Dazu benötigen Sie:

  1. Wählen Sie alle IDs von Gruppen aus, die erweiterte Rechte gewähren. Dies ist notwendig, um Verkehr zu sparen, weil Die Anzahl der Einträge in b_user_group kann je nach Komplexität des Projekts Millionen erreichen.
  2. Erstellen Sie eine dynamische Anforderung zum Entladen von Links Benutzergruppe
  3. Entladen Sie Benutzer mit einem Link aus Abschnitt 2.

Fangen wir an:

  1. Rufen Sie den Abfrageeditor auf: Start → Abfragen bearbeiten
  2. Erstellen wir einen Link zur ersten Anfrage von "Group":

    Bild
  3. Benennen Sie die neue Anforderung in "Gruppen-ID" um und wählen Sie nur die Gruppen aus, die aus Sicherheitsgründen interessant sind.

    Bild
  4. Jetzt erhalten wir eine Zeile mit den durch Kommas getrennten Gruppen-IDs:
    • Fügen Sie eine benutzerdefinierte Spalte hinzu: AddColumn → General → Custom Column

      Bild
    • Löschen Sie alle Spalten außer ID und Gruppierung:

      Bild
    • Gruppieren nach der Spalte "Gruppierung":

      Bild

      Bild
    • Fügen Sie eine weitere Spalte wie folgt hinzu:

      Bild
    • Erweitern wir die Liste so, dass die Werte durch Kommas getrennt werden:

      Bild
    • Und fallen in die resultierende Zelle:

      Bild
    • Power BI konvertiert die Abfrage dann in eine Variable, die in dynamischen SQL-Abfragen verwendet werden kann:

      Bild
  5. Erstellen wir die Anforderung "Benutzergruppe", die die Beziehung des Benutzers zur Gruppe enthält, ähnlich wie im Abschnitt "Gruppen".

    SQL-Abfrage:

     SELECT ug.user_id, ug.group_id FROM b_user_group ug JOIN b_group g ON g.id = ug.group_id JOIN b_user u ON u.id = ug.user_id WHERE g.ACTIVE = 'Y' AND u.ACTIVE = 'Y' AND ug.group_id IN (); 

    XXX muss durch durch Kommas getrennte Gruppen-IDs ersetzt werden.
  6. Wir werden die Quelle der Anfrage zur Bearbeitung aufrufen und durch folgende ersetzen:

     let sql = "SELECT ug.user_id, ug.group_id #(lf)FROM b_user_group ug #(lf)JOIN b_group g ON g.id = ug.group_id #(lf)JOIN b_user u ON u.id = ug.user_id #(lf)WHERE g.ACTIVE = 'Y' #(lf) AND u.ACTIVE = 'Y' #(lf) AND ug.group_id IN ("&#"ID "&");", Source = MySQL.Database("localhost:3306", "bitrix_db", [ReturnSingleDatabase=true, Query=sql, CreateNavigationProperties=false]) in Source 

  7. Danach können Sie die folgende Warnung erhalten:

     Formula.Firewall: Query '-' (step 'Source') references other queries or steps, so it may not directly access a data source. Please rebuild this data combination. 

    Um es loszuwerden, müssen Sie die Datenschutzstufe ändern:

    Bild

    Bild

    Aktualisieren Sie danach die Abfragen.
  8. Wir machen die Variable "Benutzer-ID" auf die gleiche Weise wie für "Gruppen-ID" (dh wir stellen einen Link aus der Benutzeranforderung usw. her). Damit generieren wir eine SQL-Abfrage, mit der wir nur die Benutzer auswählen können, die wir für die Analyse benötigen. Entfernen Sie zuerst die doppelte Benutzer-ID:

    Bild
  9. Wir erstellen eine Anfrage für eine Auswahl von Benutzern, ähnlich wie dies für "Benutzergruppe" gemacht wird.

     SQL: SELECT id, last_name, NAME, email, date_register, last_login FROM b_user WHERE active = 'Y' AND id IN ( ); 

    XXX muss Benutzer-IDs ersetzen.

Einrichten von Beziehungen zwischen Anforderungen


Damit Power BI Daten in verschiedenen Ansichten interaktiv filtern kann, müssen Sie Beziehungen zwischen Abfragen definieren. In unserem Fall müssen wir die Felder verbinden:

  • "Benutzergruppe" [Gruppen-ID] → "Gruppen" [ID]
  • "Benutzergruppe" [Benutzer-ID] → "Benutzer" [ID]

Bild

Ebenso werden wir andere Abfragen binden.

Benutzer- und Benutzergruppenbericht


Auf der Registerkarte Berichte wird eine Liste der Benutzer und Gruppen angezeigt, die Tabelle als Visualisierungselement verwenden.

Wählen Sie in der Anforderung "Benutzer" die Felder aus: Nachname, Name, Nachmeldung, E-Mail.
Wählen Sie in der Anforderung "Benutzergruppe" das Feld group_id aus.
Weil Da wir Verbindungen zwischen Anforderungen zugewiesen haben, kann Power BI die Aggregationsfunktion Count korrekt verwenden, um die Anzahl der Gruppen zu zählen, zu denen jeder einzelne Benutzer gehört.

Bild

Fügen Sie eine weitere Tabelle daneben hinzu und wählen Sie das Namensfeld aus der Gruppenanforderung und das Feld user_id aus der Benutzergruppenanforderung aus. Legen Sie die Aggregation "Count (Distinct)" fest, um die Anzahl der Benutzer in der Gruppe anzuzeigen.

Weil "Gruppen" - und "Benutzer" -Anforderungen werden über eine assoziative Anforderung "Benutzergruppe" verbunden. Wenn Sie dann auf einen Benutzer in der Tabelle mit einer Liste von Gruppen klicken, werden nur die Gruppen angezeigt, zu denen der ausgewählte Benutzer gehört. Umgekehrt.

Bild

Auf diese Weise können Sie entweder auf jeden Benutzer klicken und sehen, zu welchen Gruppen er gehört, oder auf die Gruppen klicken und sehen, welche Benutzer Teil einer Gruppe sind. Treffen Sie dann Entscheidungen über die Änderung des Zugriffs für den Benutzer.

Im Folgenden wird beschrieben, wie Sie die verbleibenden Tabellen im allgemeinen Power BI-Bericht platzieren, da Dies geschieht auf ähnliche Weise.

.access.php


In Bitrix können Sie den Zugriff auf Ordner und Dateien festlegen, indem Sie Gruppennummern und die erforderliche Zugriffsebene in .access.php-Dateien angeben.

Unsere Aufgabe ist es, die Daten aus allen auf dem Projektserver verteilten .access.php-Dateien in eine tabellarische Ansicht zu reduzieren.

Dafür:

  1. Wir suchen und archivieren alle .access.php-Dateien vom Server und speichern die Pfade zu diesen Dateien.
    Ich habe terminalka verwendet, um gefundene Dateien zu suchen, zu kopieren und zu archivieren. Befehlsbeispiel:

     find “BITRIX_PROJECT_DIR” -name '.access.php' -type f > “OUTPUT_DIR/.access.php.files.txt”&&tar cvfpz “OUTPUT_DIR/.access.php.files.tar” -T “OUTPUT_DIR/.access.php.files.txt”&&find “OUTPUT_DIR” -type d -exec chmod 775 {} \; && find “OUTPUT_DIR” -type f -exec chmod 775 {} \;&&find “OUTPUT_DIR” -type d -exec chown bitrix:bitrix {} \; && find “OUTPUT_DIR”/ -type f -exec chown bitrix:bitrix {} \; 

    Hier:

    • BITRIX_PROJECT_DIR - Ordner mit dem Projekt unter Bitrix.
    • OUTPUT_DIR - Pfad zu dem Ordner, in dem die Datei .access.php.files.txt mit einer Liste der gefundenen .access.php abgelegt wird, sowie das Archiv .access.php.files.tar, das Kopien aller gefundenen .access.php enthält.

    Wenn es viele Projekte gibt (Multisite wird verwendet), wählen wir natürlich einen Ordner aus, der alle Projekte enthält.
  2. Laden Sie das Archiv .access.php herunter und entpacken Sie es irgendwo neben dem Power BI-Projekt.
    Ich habe eine Batch-Datei geschrieben, die dies automatisch erledigt: Der Download wird über wget implementiert; durch 7zip - entpacken.

    Beispiel für eine Batchdatei:

    Bild

    Datei mit Einstellungen für die Batchdatei:

    Bild

Erstellen Sie nun eine Abfrage, die den Inhalt aller .access.php in einer Tabellenform zusammenfasst.

  1. Erstellen Sie der Einfachheit halber einen Parameter, der den Pfad zu dem Ordner enthält, aus dem wir den Inhalt aller .access.php extrahieren

    Bild
  2. Wir wählen eine Anfrage vom Typ "Ordner" aus und wählen unseren Parameter als Pfad:

    Bild
  3. Erweitern Sie das Feld Inhalt:

    Bild

    XXXXXXX ist ein Spaltentrennzeichen. Nach dem Importieren von Daten aus allen Dateien benötigen Sie eine Spalte.
  4. Danach löscht Power BI die benötigte Spalte mit dem Pfad zu .access.php. Daher müssen wir den Schritt "Andere Spalten entfernen1" bearbeiten und darin "Ordnerpfad" auswählen:

    Bild
  5. Verlassen Sie die Spalten: Ordnerpfad und Spalte1.
  6. Verwenden Sie die Ersetzung, um den absoluten Pfad zur lokalen Datei aus dem Ordnerpfad zu entfernen:

    Bild
  7. Die .access.php-Dateien enthalten Zugriffseinstellungen im folgenden Format:

     $PERM[""]["ID "] = "< >"; 

    Unsere Aufgabe ist es, die Spalten zu verteilen: Pfad, Gruppen-ID, Zugriffsebene. Dies erfolgt mithilfe von Filtern, Spaltentrennung (Spalte teilen) und benutzerdefinierten Spalten (benutzerdefinierte Spalte).
  8. Das Ergebnis sollte die folgende Tabelle sein:

    Bild

    Wie Sie im Feld Gruppen-ID sehen können, gibt es "*" (Zugriff für alle). Um eine Verbindung mit anderen Anforderungen angeben zu können, müssen wir dieses Feld ganzzahlig machen, ohne Informationen über "*" zu verlieren (was für alle Gruppen bedeutet). Lassen Sie uns zwei Anfragen stellen, z. B. einen „Link“ zur ursprünglichen DotAccessPhp-Anfrage:

    • Die ersten DotAccessPhpForRels enthalten nur ganzzahlige Gruppen-IDs (wir verwenden den Filter, indem wir * in der Gruppen-ID-Spalte entfernen) - wir verbinden ihn mit den restlichen Anforderungen:
      Bild
    • Die zweite - DotAccessPhpForAll - nur * (verwenden Sie den Filter).

Anschlussplan:

Bild

Um nur verwandte Daten anzuzeigen, wenn Sie eine Datei aus DotAccessForRels in anderen Ansichten auswählen, ändern Sie den Parameter "Cross Filter Direction" in Both:

Bild

Für andere Anforderungen, die unten hinzugefügt werden, muss dies ebenfalls durchgeführt werden.

Infoblöcke


Sie müssen die Liste der Infoblöcke und die Tabelle der Verknüpfungen der Infoblöcke mit Gruppen entladen.

Wir werden nur Informationen über aktive Infoblöcke hochladen.

  1. Wir erstellen die Anfrage "Infoblocks". SQL-Abfrage:

     SELECT i.id, i.NAME '', i.TIMESTAMP_X ' ', GROUP_CONCAT(ist.SITE_ID SEPARATOR ', ') '' FROM b_iblock i JOIN b_iblock_site ist ON ist.IBLOCK_ID = i.id GROUP BY 1,2,3;   “-”: SELECT ig.iblock_id, ig.group_id, ig.permission FROM b_iblock_group ig JOIN b_group g ON g.id = ig.group_id JOIN b_iblock i ON i.ID = ig.IBLOCK_ID WHERE g.ACTIVE = 'Y' AND i.ACTIVE = 'Y'; 
  2. Wir aktualisieren das Kommunikationsschema und vergessen nicht, den Parameter "Cross Filter Direction" in Both zu ändern:

    Bild

Formulare


Bei Formularen werden Rechte für Benutzergruppen sowohl für die Formulare selbst als auch für die Status gewährt, in denen sich das Ergebnis des Ausfüllens des Formulars befindet.

  1. Erstellen Sie eine Anfrage für "Formulare":

     SELECT f.ID, f.name '', GROUP_CONCAT(f2s.SITE_ID SEPARATOR ', ') '' FROM b_form f JOIN b_form_2_site f2s ON f2s.FORM_ID = f.ID GROUP BY 1, 2 ORDER BY 2; 
  2. Erstellen Sie eine Anfrage "Formulargruppe":

     SELECT DISTINCT f2g.group_id, f2g.form_id, f2g.PERMISSION ' ' FROM b_form_2_site f2s JOIN b_form_2_group f2g ON f2g.FORM_ID = f2s.FORM_ID JOIN b_group g ON g.ID = f2g.group_ID WHERE g.ACTIVE = 'Y' ORDER BY 1, 2, 3; 
  3. Wir erstellen die Anfrage "Formularstatus".

     SELECT fs.ID, fs.TITLE '', fs.form_id FROM b_form_status fs JOIN b_form f ON f.ID = fs.FORM_ID WHERE fs.ACTIVE = 'Y' AND EXISTS (SELECT f2s.FORM_ID FROM b_form_2_site f2s WHERE f2s.FORM_ID = f.ID LIMIT 1) ORDER BY 3, 2; 
  4. Erstellen Sie eine Anfrage "Formulargruppenstatus"

     SELECT fs2g.status_id, fs2g.group_id, fs2g.PERMISSION '' FROM b_form_status_2_group fs2g JOIN b_form_status fs ON fs.ID = fs2g.STATUS_ID JOIN b_group g ON g.ID = fs2g.group_ID JOIN b_form f ON f.ID = fs2g.GROUP_ID JOIN b_form_2_site f2s ON f2s.FORM_ID = f.ID WHERE fs.ACTIVE = 'Y' AND (g.ACTIVE = 'Y') ORDER BY 1, 2, 3; 
  5. Aktualisieren des Verbindungsschemas:

    Bild

Module


  1. Wir erstellen eine Anfrage "Modulgruppe".

     SELECT mg.MODULE_ID '', mg.group_id, mg.G_ACCESS '', t.LETTER, t.NAME FROM b_module_group mg JOIN b_group g ON g.id = mg.GROUP_ID LEFT JOIN b_task t ON t.MODULE_ID = mg.MODULE_ID AND t.BINDING = 'module' WHERE g.active = 'Y' AND mg.G_ACCESS = t.LETTER; 
  2. Aktualisierung der Kommunikation:

    Bild

Anzeigetafel


Wir passen die Stile von Tabellen an und nutzen den nutzbaren Platz maximal.

Das Ergebnis sollte ungefähr so ​​aussehen:

Bild

Eine kleine modifizierte Anzeigetafel (Anzahl der Elemente in den Tabellen):

Bild

Übrigens ist es praktisch, zuerst das Erscheinungsbild einer Tabelle zu konfigurieren und dann die Ansicht einfach mit Home → Format Painter auf andere Tabellen anzuwenden. Diese Funktion verhält sich wie in Word und Excel (Format nach Beispiel).

Admin-Links


Damit Sie schnell zur Site in gelangen und Einstellungen im Admin-Bereich vornehmen können, können Sie eine benutzerdefinierte Spalte in der DAX-Sprache hinzufügen und sie zu einer Art „Web-URL“ machen. Wählen Sie dazu die erstellte Spalte aus und weisen Sie den entsprechenden Typ zu (Modellierung → Eigenschaften → Datenkategorie → Web-URL).

Beispiel für eine Gruppenanfrage:

Bild

Fügen Sie der Ansicht eine Spalte hinzu:

Bild
Jetzt können Sie einfach auf die Tabellenzelle klicken und zur Gruppenkarte im Bitrix Admin-Bereich wechseln.

Dateibericht


Der Einfachheit halber können Sie einen separaten Bericht erstellen, indem Sie Tabellen zum Zugriff auf Dateien und Abschnitte der Internetressource darauf platzieren:

Bild

Dieser Bericht fügte auch Links hinzu, um alle .access.php direkt über das Bitrix Admin-Panel zu bearbeiten.

Zusammenfassung


Bitrix ist ein Champion unter den CMS-Monstern mit offensichtlichen Vor- und Nachteilen, außen schön und innen schrecklich. Es verfügt nicht über praktische Tools zur Zugriffsverwaltung. Dieses Problem wurde jedoch mithilfe kostenloser Tools gelöst, ohne wertvolle Programmierer für diesen Prozess zu gewinnen.

Zu den Vorteilen dieses Ansatzes gehört auch die Möglichkeit, das Modell in Power BI schnell durch zusätzliche Informationen von Bitrix zu ergänzen. Beispielsweise möchte jemand wissen, wann .access.php und andere erstellt oder geändert wurden.

Nachdem Sie das Zugriffsrechtsmodell erstellt und in Power BI visualisiert haben, reicht es aus:

  1. Klicken Sie konsequent auf Benutzer, Gruppen, Formulare, Dateien und sehen Sie in Echtzeit alle Verbindungen zum Zugriff.
  2. Gehen Sie schnell zu den erforderlichen Administrationsseiten, um Änderungen vorzunehmen.
  3. Aktualisieren Sie das Datenmodell mit den neuesten Bitrix-Daten direkt in Power BI.

Infolgedessen wurde ein Audit durchgeführt und der Benutzerzugriff angepasst.

PS Auf dem Markt gibt es ein kostenloses Modul „Access Control Center“, das jedoch sehr begrenzt ist und dessen letzter Kommentar älter als 5 Jahre ist. Vielleicht wird jemandem die Idee gefallen, ein solches Dashboard direkt in Bitrix zu erstellen, und er wird es als Modul implementieren ...

PS2. Wenn sich jemand für das Thema der Verwendung von Power BI zur Lösung des Problems der Suche nach versteckten Abhängigkeiten in verschiedenen Buchhaltungssystemen interessiert, schreiben Sie in die Kommentare. Ich werde dann noch ein paar Artikel zu diesem Thema schreiben.

PS3 Vielen Dank an meine Kollegen, die mir bei der Vorbereitung dieses Artikels geholfen haben: Alexander Voronkov, Evgeny Shapochkin, Alexei Titov.

Source: https://habr.com/ru/post/de457626/


All Articles