Erste Schritte
Drupal-Modul
Verbinden Sie Drupal mit DocID®, stellen Sie native Benutzer bereit, ordnen Sie verifizierte Merkmale Rollen zu und schützen Sie Inhalte.
Das offizielle DocID®-Modul verbindet Drupal mit einem der größten Online-Netzwerke medizinischer Fachkreise. Es nutzt Drupals native Benutzer, Rollen, Berechtigungen, Sessions, Nodes, Medien und Blöcke, damit Fachinhalte über vertraute Drupal-Abläufe einem breiten Publikum zugänglich gemacht werden können.
DocID®-Modul auf Drupal.org öffnen
Voraussetzungen
- Eine Drupal-Website mit HTTPS und Berechtigung zum Installieren und Konfigurieren von Modulen
- Ein DocID®-Konto mit einem konfigurierten Website-Asset und OAuth-Zugangsdaten
- Die Drupal-Core-Module File, Filter, Node, Options und User; Media ist für geschützte Medien optional
Modul installieren
Über die Administrationsoberfläche
Laden Sie das aktuelle Paket vom DocID®-Projekt auf Drupal.org herunter. Öffnen Sie in der Drupal-Administration Erweitern → Neues Modul hinzufügen, laden Sie das Archiv hoch und schließen Sie die Installation ab.
Mit Composer
Führen Sie im Stammverzeichnis des Drupal-Projekts folgenden Befehl aus:
composer require drupal/docidModul aktivieren
Aktivieren Sie DocID® in der Drupal-Administration unter Erweitern. Alternativ aktivieren Sie das Modul mit Drush und bauen den Cache neu auf:
drush en docid -ydrush crOAuth und angeforderte Kundendaten konfigurieren
- Öffnen Sie Konfiguration → Personen → DocID® → OAuth-Zugangsdaten.
- Übertragen Sie die angezeigte Callback-URL in die erlaubten Redirect-URIs des entsprechenden Website-Assets im DocID® Business-Dashboard.
- Geben Sie Client-ID und Client-Secret des Assets ein.
- Lassen Sie unter Angeforderte Kundendaten openid und professional aktiviert und aktivieren Sie nur die optionalen Profil-, E-Mail- oder Telefondaten, die die Website benötigt.
Verfügbare Scopes
| Scope | Status | Claims |
|---|---|---|
| openid | Erforderlich | sub |
| professional | Erforderlich | profession_id, discipline_id, profession_verified |
| profile | Optional | name, title, given_name, family_name, gender |
| Optional | ||
| phone | Optional | phone_number |
Native Benutzer und Rollenzuordnung
Eine erfolgreiche DocID®-Anmeldung stellt anhand des stabilen sub-Claims einen verknüpften nativen Drupal-Benutzer bereit oder aktualisiert ihn. Konten werden nicht über die E-Mail-Adresse verknüpft. Rollenzuordnungen können alle DocID®-Nutzer oder exakte Berufs-, Fachgebiets-, Institutions- oder Themenkennungen verwenden. Alle passenden nicht administrativen Rollen werden kombiniert; unabhängig in Drupal vergebene Rollen bleiben unverändert.
Inhalte und Medien schützen
Redakteure können in den DocID®-Zugriffseinstellungen unterstützter Inhalte zwischen Öffentlich, Nur DocID®-Nutzer und Nur ausgewählte Rollen wählen. Rollenspezifische Regeln nutzen den Drupal-Node-Access. Geschützte lokale Medien müssen Drupals privates Dateisystem verwenden, damit die Auslieferung weiterhin durch die Drupal-Autorisierung erfolgt.
Login-Ziele
Konfigurieren Sie interne Drupal-Ziele nach Beruf oder Fachgebiet unter Login-Ziele. Bei mehreren Treffern gewinnt die niedrigere Prioritätszahl. Eine vor der Anmeldung angeforderte geschützte Seite hat Vorrang vor einem profilbasierten Ziel.
Verfügbare Smart Tags
Das Modul stellt die Blöcke DocID® Account Navigation, DocID®-Anmeldung und DocID®-Konto bereit. Aktivieren Sie für Smart Tags in redaktionellen Inhalten den DocID®-Smart-Tags-Filter für das betreffende vertrauenswürdige Textformat.
Authentifizierung und Navigation
Der Login-Link reagiert auf den Status: Für Besucher zeigt er die Anmeldung, für authentifizierte DocID®-Nutzer die Abmeldung. Mit login_text und logout_text lassen sich beide Beschriftungen anpassen. Der Nutzername verwendet den besten verfügbaren Wert in dieser Reihenfolge: Titel, Vor- und Nachname; Titel und Nachname; autorisierte E-Mail-Adresse; stabile DocID®-Nutzer-ID.
| Shortcode | Beschreibung |
|---|---|
| [docid-loggedin-content]Content[/docid-loggedin-content] | Zeigt den eingeschlossenen Inhalt nur authentifizierten DocID®-Nutzern. |
| [docid-loggedout-content]Content[/docid-loggedout-content] | Zeigt den eingeschlossenen Inhalt nur Besuchern ohne authentifizierte DocID®-Session. |
| [docid-login-link] | Zeigt Besuchern Anmelden und authentifizierten DocID®-Nutzern Abmelden. |
| [docid-login-link login_text="Access" logout_text="Leave"] | Verwendet individuelle Klartext-Beschriftungen für beide Authentifizierungszustände. |
| [docid-username] | Zeigt den besten verfügbaren Nutzernamen: Titel, Vor- und Nachname; danach Titel und Nachname; danach die autorisierte E-Mail-Adresse; zuletzt die stabile DocID®-Nutzer-ID. |
Profildaten
| Smart Tag | Scope | Beschreibung |
|---|---|---|
| [docid-profile-id] | openid (erforderlich) | Die stabile, eindeutige DocID®-Kontokennung. |
| [docid-profile-name] | profile (optional; Autorisierung erforderlich) | Titel, Vor- und Nachname kombiniert. |
| [docid-profile-title] | profile (optional; Autorisierung erforderlich) | Titel oder Anrede. |
| [docid-profile-given-name] | profile (optional; Autorisierung erforderlich) | Der Vorname. |
| [docid-profile-family-name] | profile (optional; Autorisierung erforderlich) | Der Nachname. |
| [docid-profile-gender] | profile (optional; Autorisierung erforderlich) | Die Geschlechtsangabe. |
| [docid-profile-email] | email (optional; Autorisierung erforderlich) | Die übermittelte E-Mail-Adresse, sofern verfügbar. |
| [docid-profile-phone-number] | phone (optional; Autorisierung erforderlich) | Die übermittelte Telefonnummer, sofern verfügbar. |
Authentifizierungsstatus und Claims in PHP abrufen
Laden Sie im Anwendungscode die mit dem aktuellen Drupal-Benutzer verknüpfte Identität über den IdentityRepository-Service. Injizieren Sie in produktivem Code current_user und den Repository-Service in Ihre Klasse, statt den statischen Service-Container zu verwenden.
use Drupal\docid\Identity\IdentityRepository; $current_user = \Drupal::currentUser();$identity = $current_user->isAuthenticated() ? \Drupal::service(IdentityRepository::class) ->findByUserId((int) $current_user->id()) : NULL; $is_docid_authenticated = $identity !== NULL;$docid_subject = $identity?->subject;$claims = $identity?->claims ?? []; $profession_id = is_string($claims['profession_id'] ?? NULL) ? $claims['profession_id'] : NULL;$discipline_id = is_string($claims['discipline_id'] ?? NULL) ? $claims['discipline_id'] : NULL;$institution_id = is_string($claims['institution_id'] ?? NULL) ? $claims['institution_id'] : NULL;$subject_id = is_string($claims['subject_id'] ?? NULL) ? $claims['subject_id'] : NULL;$profession_verified = ($claims['profession_verified'] ?? FALSE) === TRUE; // Optional claims exist only when their scope was authorized.$name = is_string($claims['name'] ?? NULL) ? $claims['name'] : NULL;$email = is_string($claims['email'] ?? NULL) ? $claims['email'] : NULL;$phone = is_string($claims['phone_number'] ?? NULL) ? $claims['phone_number'] : NULL;Vor dem Launch testen
- Öffnen Sie öffentliche und geschützte Inhalte im abgemeldeten Zustand.
- Schließen Sie die Anmeldung mit einem berechtigten Testkonto ab und prüfen Sie die Rückleitung zum ursprünglich angeforderten Inhalt.
- Fahren Sie ohne optionale Profildaten fort und prüfen Sie, dass die Authentifizierung mit den erforderlichen Scopes weiterhin funktioniert.
- Testen Sie jede konfigurierte Rollenzuordnung und jedes Login-Ziel, einschließlich eines nicht passenden Kontos.
- Melden Sie sich ab und prüfen Sie, dass geschützte Inhalte nicht mehr zugänglich sind.
Die Integration stellt technische Funktionen für Authentifizierung und Zugriffskontrolle bereit. Website-Betreiber bleiben dafür verantwortlich, geeignete Scopes, Berechtigungen, Hinweise und Rechtsgrundlagen für ihre Implementierung festzulegen.