OpenID Connect-Anforderungszuordnung für Berechtigungskontext
Basierend auf der Konfiguration können von OAuth- oder OpenID Connect-Abläufen in IBM® Verify Autorisierungsaktionen ausgeführt werden.
Die Abläufe können diese Aktionen enthalten.
- Werten Sie die Zugriffsrichtlinie aus.
- Berechnen Sie die Anforderungswerte, die in der Berechtigungserteilung gespeichert und zum Erstellen von ID-Tokens und der Introspektionsantwort verwendet werden.
Die Zuordnungsregel für Kontextanforderungen stellt einen Mechanismus zur Erweiterung des Kontextes bereit, der in der Berechtigungsanforderung erfasst wird. Die Berechtigungsanforderung kann beispielsweise einen angepassten Anforderungsparameter namens contextID enthalten. Die angepasste Regel kann contextID in einer HTTP-Anforderung für einen externen Endpunkt enthalten. Das Ergebnis dieser HTTP-Anforderung ist ein Objekt, das entpackt und zu requestContext hinzugefügt werden kann (wird während der Auswertung der Zugriffsrichtlinie und der Aufbereitung der Erteilung verwendet). Siehe r_attr_functions.html
Die Regel kann mit einer einfachen einzeiligen Ausdruckssprache oder als erweitertes mehrzeiliges YAML-basiertes Dokument geschrieben werden. Siehe „Multi-Line Rule Executor “.
Verfügbare Eingabeobjekte
- HTTP-Anforderungskontext
- Wenn sich ein Benutzer an Verify anmeldet, kann auf den Kontext der eingehenden HTTP-Anforderung in der Regel der Anforderungszuordnung zugegriffen werden. Alle OAuth-Anforderungsparameter, wie
claimsoderscope, sind in dieser Version vonrequestContextverfügbar. Der allgemeine Aufbau und die Verwendung vonrequestContextwerden im Abschnitt „ HTTP -Anforderungskontext“ unter r_attr_functions.html beschrieben.Für den Zugriff werden bestimmte Werte inrequestContextvorab berechnet. Der Anforderungsparameterclaimswird in der Regel als JSON-Datei wie im folgenden Beispiel dargestellt.{ "id_token": { "claim_name": { "essential": false, "value": "some_value" } }, "userinfo": { "claim_name": { "essential": false, "value": "some_value" } } }Der Zugriff auf dieses Format kann umständlich sein. Der in
requestContextverwendete Schlüssel weist das Formatclaims_claimType_claimNameauf.claimTypeist entwederuserinfooderidtoken(beachten Sie das fehlende Unterstreichungszeichen). Im vorherigen Beispiel kann der Wertclaim_namemithilfe vonrequestContext.getValue('claims_idtoken_claim_name')abgerufen werden.In ähnlicher Weise wird
scopedurch das Leerzeichen getrennt, um ein Zeichenfolgenarray zu erstellen. - Identitätsquellenberechtigungsnachweis
- Wenn sich ein Benutzer an Verify anmeldet, werden die Attribute des Identitätsquellenberechtigungsnachweises zur Anmeldesitzung hinzugefügt; auf sie kann mithilfe der Anforderungszuordnungsregel zugegriffen werden.Das Domänenobjekt
idsuserist als Zuordnung mit einem Zeichenfolgeschlüssel und einem Zeichenfolgearraywert verfügbar. Beispiel:
Siehe r_attr_functions.html.{ "realmName": ["cloudIdentityRealm"], "displayName": ["Jessica J. Hill"], "phone": ["+12324321234"] } - Weitere Funktionen und Operatoren
- Die Zuordnungsregel enthält Standardoperatoren und -funktionen. Der HTTP-Client ist auch für abgehende Anforderungen verfügbar. Weitere unterstützte Funktionen sind Hashing und Zeitmarken. Siehe die entsprechenden Abschnitte unter r_attr_functions.html.
Objekt zurückgeben
Von dieser angepassten Regel wird erwartet, dass sie ein JSON-Objekt zurückgibt, und es wird erwartet, dass der Wert jeder JSON-Eigenschaft ein Zeichenfolgearray ist.
{
"ageRange": ["toddler"],
"interests": ["sleeping", "other_misc_activities"]
}Dieser Rückgabewert wird verarbeitet und kann später in erweiterten Regelattributen über requestContext.ageRange und requestContext.interests aufgerufen werden. Erweiterte Regelattribute können in Zugriffsrichtlinien wie {{requestContext.ageRange[0]
!= 'toddler'}} oder zum Zuordnen von Attributen in der Berechtigungserteilung requestContext.interests verwendet werden.Beispiel - Hobbys zum ID-Token hinzufügen
hobbies zum ID-Token hinzugefügt wird.
statements:
- context: "contextData := hc.getAsJSON('https://jke.com/users/' + idsuser.getValue('uid'), { 'Authorization': 'apikey supersecretkey' })"
- return: >-
{
"hobbies": request.Context.interests.filter(x, x != 'other')
}In diesem Beispiel wird von der Regel ein Endpunkt für externe Benutzer aufgerufen, um zusätzliche Informationen zum Benutzer abzurufen. Dabei wird das Objekt idsuser verwendet, das die authentifizierte Sitzung des Benutzers in Verify darstellt. Schließlich wird von der Regel hobbies aus der Antwort extrahiert.hobbies kann mit den folgenden Methoden zugegriffen werden.- Erstellen eines erweiterten Regelattributs mit dem Namen
my_hobbiesmithilfe einer angepassten Regel, die alsrequestContext.hobbiesdefiniert ist. Der Datentyp für dieses Attribut ist eine Zeichenfolge mit mehreren Werten. - Hinzufügen einer Attributzuordnung für dieses Attribut. Siehe OpenID : Zuordnung von Connect-Introspect, ID-Token und Benutzerinformationen.