Logo faq-o-matic.net
Logo faq-o-matic.net

Cisco Meraki: Admin-Anmeldung per SAML und ADFS

von veröffentlicht am29. Juli 2020, 06:11 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: ADFS und SAML, Sicherheit   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Cisco Meraki bietet die Möglichkeit, Administratoren mittels SAML-Authentifizierung (Security Assertion Markup Language) anzumelden. Hierzu besteht seitens Cisco in der Tenant-Konfiguration die Möglichkeit, entsprechende Administratoren-Rollen zu definieren. Die von Cisco bereitgestellten Dokumentationen für die Konfiguration mit ADFS (Active Directory Federation Services) bieten leider nur eine sehr rudimentäre Umsetzung, da im dortigen Beispiel nur eine einzige SAML Role definiert wird. Allerdings ist üblicherweise eine Trennung der einzelnen administrativen Bereiche (Scopes) gewünscht, so dass eine passendere Form der Rollenzuweisung notwendig wird. Die nachfolgende Anleitung zeigt den Ansatz, eine Anmeldung basierend auf Sicherheitsgruppen im Active Directory umzusetzen und somit seitens Cisco Meraki ebenfalls eine Trennung der administrativen Zuständigkeiten zu erhalten.

Vielen Dank an Nils für seine Beispiele, die ich hierzu nutzen konnte.

Die verlinkte Anleitung bei Cisco diente als Vorlage für die Basiskonfiguration: https://documentation.meraki.com/zGeneral_Administration/Managing_Dashboard_Access/Configuring_SAML_Single_Sign-on_for_Dashboard

Zwei wichtige Punkte aus der obigen Dokumentation vorab:

When using SAML with Dashboard, the user must first authenticate with the IdP. This is referred to as IdP-initiated SAML. After the user has successfully authenticated and been directed to Dashboard, they will be granted access if they have a valid role and the IdP is correctly configured.

Das bedeutet, dass die Anmeldung nicht wie bei vielen Clouddiensten üblich über deren Service-Site möglich ist, sondern mittels Aufruf über die ADFS Services erfolgt.
https://sso.Testdomain.de/adfs/ls/idpinitiatedsignon.aspx
In den AD FS in Windows 2016 und 2019 ist dies standardmäßig allerdings nicht aktiviert, so dass auch dies aktiviert werden muss.
https://docs.microsoft.com/de-de/windows-server/identity/ad-fs/troubleshooting/ad-fs-tshoot-initiatedsignon

Set-AdfsProperties -EnableIdpInitiatedSignonPage $true

If an administrator with a SAML role is configured to have full control over the organization, they will be able to adjust and delete other administrators on the account. There must be at least one non-SAML Dashboard org admin remaining on the account, so a SAML admin will not be able to delete or demote the last remaining Dashboard org admin.

Das bedeutet, bereits vorab im Dashboard (lokale) definierte Administratoren können bis auf einen gelöscht werden. Mindestens ein Dashboard-Org-Admin ist immer notwendig, denn eine SAML-Fehlkonfiguration muss im Notfall behoben werden können. Es sollte also ein generischer Account dafür verwendet werden, dessen Passwort auch hohen Ansprüchen genügt.

Im Dashboard sind zwei Schritte notwendig, damit die SAML Authentifizierung funktioniert.

  1. SAML muss für die Organisation im Dashboard aktiviert werden (Anleitung im Cisco Meraki How To)
  2. Definition der SAML-Rollen.

Definition der SAML-Rollen im Service Provider (Cisco Meraki)

Die Konfiguration der SAML-Rollen erfolgt im Meraki-Dashboard. Hierzu nach der Anmeldung an der Meraki Service Seite auf Organisation/Administrators wechseln.

image

Abbildung 1

Unter dem Punkt „SAML administrator roles“ lassen sich die erwähnten neuen Rollen definieren.

image

Abbildung 2

Rechte lassen sich sowohl für die Organisation (tenant) als auch für einzelne Targets (networks) vergeben. Für die Organisation sin dies: Full, Read-only, None, für die Targets Full, Read-only, Monitor-only, Guest Ambassador. Eine entsprechende Definition der einzelnen Rollen ergibt sich aus den Anforderungen für die Administrationsmöglichkeiten, welche die Administratoren jeweils bekommen sollen. Werden zum Beispiel nur die Mobile Devices verwaltet werden, wird kein Zugriff (weder lesend noch schreibend) auf die Organization benötigt.

Die hier vergebenen Rollen-Namen sollten so gewählt werden, dass eine einfache Zuordnung erkennbar ist. Im obigen Beispiel also SSO-Test-Orgadmin. Untenstehend mal ein Beispiel solcher Rollen.

image

Abbildung 3

Konfiguration Active Directory (Identity Provider)

Die Konfiguration des Gegenstücks zur Rolle im Meraki Dashboard erfolgt im vorliegenden How To innerhalb eines Active Directory, entspricht also einer Sicherheitsgruppe. Die grundsätzlich funktionierende Konfiguration einer AD-FS Umgebung (Active Directory Federation Services) wird vorausgesetzt. Die notwendige Konfiguration für die Meraki Anmeldung wird in Kapitel 4 beschrieben.

Im Active Directory wird für jede Rollengruppe, welche im Cisco Meraki Dashboard definiert wurde, eine Sicherheitsgruppe angelegt. Mitglieder dieser Sicherheitsgruppen erhalten im Endeffekt dann die entsprechende Berechtigung in der Cisco Meraki Umgebung.

image

Abbildung 4

Die Zuordnung der SAML-Rolle zur AD Sicherheitsgruppe

Meraki SAML Roles

AD-Sicherheitsgruppe

SSO-Test-OrgAdmin

SSO-Meraki-Orgadmin

SSO-Test-MDMAdmin

SSO-Meraki-MDMAdmin

SSO-Test-OrgAuditor

SSO-Meraki-OrgAuditor

Konfiguration Relying Party Trust

In der ADFS Management Konsole wird die Vertrauensstellung der vertrauenden Seite konfiguriert. Nachfolgend stehen mit Absicht fast alle Screens, die man während der Konfiguration zu sehen bekommt. Da viele das nicht so häufig konfigurieren, ist es hilfreich, hier etwas ausführlicher zu sein.

image

Abbildung 5

image

Abbildung 6

image

Abbildung 7

Nachfolgend einen entsprechend aussagekräftigen Namen für die Vertrauensstellung vergeben. Im vorliegenden Fall also „Meraki Dashboard“.

image

Abbildung 8

image

Abbildung 9

Im folgenden Abschnitt wird die notwendige URL des SAML Dienstes von Meraki benötigt. Diese URL wird euch im Meraki Dashboard angezeigt und ist für jede Konfiguration individuell.

image

Abbildung 10

image

Abbildung 11

Der Bezeichner ist hingegen immer gleich und wird nur der Form halber benötigt (von Meraki aber nicht verwendet)

https://dashboard.meraki.com/

image

Abbildung 12

Der Einfachheit halber wird der Zugriff für jeden gewährt. Natürlich kann aber auch eine Einschränkung auf einzelne Gruppen oder falls vorhanden eine Multifaktor-Authentisierung konfiguriert werden.

image

Abbildung 13

image

Abbildung 14

image

Abbildung 15

Nach Abschluss öffnet sich der Wizard für die Konfiguration der Anspruchsausstellungsrichtlinie (Claim Rules). Zu den „Besonderheiten“ der ADFS Bezeichnungen hat Nils hier schon was geschrieben. Hilfreich, sich diese Tabelle regelmäßig vors Auge zu führen: https://www.faq-o-matic.net/2014/05/14/namensverwirrung-adfs-und-saml/

Der Nutzername kann bspw. per Attribut Email-Adressses oder per User-Principal-Name ermittelt werden. Ich nutze eher letzteres, da der eigentlich immer vorhanden ist im Gegensatz zum Mail-Attribut. Gerade bei Umgebungen, in denen UPN=Mailadresse ist, bietet sich das an.

image

Abbildung 16

image

Abbildung 17

Damit die Rolle in Abhängigkeit von Gruppenmitgliedschaften übermittelt werden kann, muss zuerst ermittelt werden, welche Mitgliedschaften ein Nutzer überhaupt besitzt.

Hierzu wird eine Regel erstellt, welche das Attribut „tokenGroups“ des Nutzers ausliest.

Hinweis: Wer sein Active Directory sicher konfiguriert hat, dessen Gruppe „Prä-Windows 2000 kompatibler Zugriff“ ist leer. Dadurch fehlt dann ggf. dem Service Account (auch group managed service account) des ADFS Services das Recht, das Attribut „tokenGroups“ der Nutzer überhaupt auslesen zu können. Mittels dsacls kann dieses Recht entsprechend an eine Gruppe delegiert werden, deren Mitglied das Servicekonto ist.

dsacls DC=domain,DC=tld /I:S /G domain\LDAP-TokenGroups:RP;TokenGroups;user

image

Abbildung 18

Alle folgenden Regeln sind vom Typ „Ansprüche mithilfe einer benutzerdefinierten Regel senden“.

Der Regel wird ein entsprechender Name bspw. „Retrieve Token Groups“ vergeben und als Regel folgender Block eingefügt:

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
 => add(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/role"), query = ";tokenGroups;{0}", param = c.Value);

image

Abbildung 19

Weitere Regeln für die SAML-Rollenzuweisung folgen. Da ein Nutzer nur eine Rolle besitzen kann, muss die entsprechende Logik von doppelten Gruppenmitgliedschaften innerhalb des Regelwerks abgebildet werden.

Als drittes wird also die SAML-Rolle übermittelt. Der Nutzer ist Mitglied der Active Directory Gruppe „SSO-Meraki-OrgAdmin“. Wurden die drei SAML Rollen „SSO-Test-OrgAdmin“, SSO-Test-MDMAdmin“ und SSO-Test-OrgAuditor“ angelegt, werden also drei weitere Regeln angelegt.

image

Abbildung 20

Der Inhalt dieser Regeln ist nachfolgend dargestellt.

Regel 3: Issue OrgAdmin role if user is member of Admin group

EXISTS([Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role", Value == "SSO-Meraki-Orgadmin"])
=> issue(Type = "https://dashboard.meraki.com/saml/attributes/role", Value = "SSO-Test-OrgAdmin");

Regel 4: Issue MDMAdmin role if user is member of MDMAdmin and not member of OrgAdmin group

EXISTS([Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role", Value == "SSO-Meraki-MDMAdmin"])
&& NOT EXISTS([Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role", Value == "SSO-Meraki-Orgadmin"])
=> issue(Type = "https://dashboard.meraki.com/saml/attributes/role", Value = "SSO-Test-MDMAdmin");

Regel 5: Issue OrgAuditor role if user is member of OrgAuditor and not member of OrgAdmin group

EXISTS([Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role", Value == "SSO-Meraki-OrgAuditor"])
&& NOT EXISTS([Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role", Value == "SSO-Meraki-Orgadmin"])
=> issue(Type = "https://dashboard.meraki.com/saml/attributes/role", Value = "SSO-Test-OrgAuditor");

Das Ergebnis sollte dann so aussehen.

image

Abbildung 21

© 2005-2020 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!