BHOLD fejlesztői referencia Microsoft Identity Manager 2016-hoz
A BHOLD-core modul képes szkriptparancsok feldolgozására. Ezt közvetlenül a bscript.dll használatával teheti meg egy .NET-projektben. A b1scriptservice.asmx webszolgáltatás felületének használata is.
A szkript végrehajtása előtt a szkripten belüli összes információt össze kell gyűjteni a szkript létrehozásához. Ezek az információk a következő forrásokból gyűjthetők:
- Felhasználói bevitel
- BHOLD-adatok
- Alkalmazások
- Egyéb
A BHOLD-adatok a szkriptobjektum GetInfo függvényével kérhetők le. A parancsok teljes listája tartalmazza a BHOLD-adatbázisban tárolt összes adatot. A bemutatott adatokra azonban a bejelentkezett felhasználó megtekintési engedélyei vonatkoznak. Az eredmény egy elemezhető XML-dokumentum formájában jelenik meg.
Egy másik információforrás lehet a BHOLD által ellenőrzött alkalmazások egyike. Az alkalmazás beépülő modulja egy speciális függvénnyel, a FunctionDispatch függvénnyel rendelkezik, amely alkalmazásspecifikus információk megjelenítésére használható. Ez XML-dokumentumként is megjelenik.
Végül, ha nincs más módszer, a szkript közvetlenül más alkalmazásokhoz vagy rendszerekhez is tartalmazhat parancsokat. NoThenstallation extra szoftver a BHOLD-kiszolgálón is alááshatja a biztonságot az egész rendszer.
Ezek az információk egyetlen XML-dokumentumba kerülnek, és a BHOLD-szkriptobjektumhoz vannak rendelve. Az objektum ezt a dokumentumot egy előre definiált függvénnyel egyesíti. Az előre definiált függvény egy XSL-dokumentum, amely lefordítja a szkriptbemeneti dokumentumot egy BHOLD-parancsdokumentumba.
A parancsok végrehajtása ugyanolyan sorrendben történik, mint a dokumentumban. Ha egy függvény meghibásodik, a rendszer az összes végrehajtott parancsot visszaállítja.
Szkriptobjektum
Ez a szakasz a szkriptobjektum használatát ismerteti.
BHOLD-adatok lekérése
A GetInfo függvény a BHOLD engedélyezési rendszerben elérhető adatokból való lekérésére szolgál. A függvényhez szükség van egy függvénynévre és végül egy vagy több paraméterre. Ha ez a függvény sikeres, a BHOLD objektum vagy gyűjtemény XML-dokumentum formájában jelenik meg.
Ha a függvény nem sikerül, a GetInfo függvény üres sztringet vagy hibát ad vissza. A hiba leírásával és számával további információkat kaphat a hibáról.
A "FunctionDispatch" GetInfo függvénnyel információkat kérhet le a BHOLD rendszer által vezérelt alkalmazásokból. Ez a függvény három paramétert igényel: az alkalmazás azonosítóját, az ASI-ben definiált dispatch függvényt, valamint egy XML-dokumentumot, amely az ASI segédinformációit tartalmazza. Ha a függvény sikeres, az eredmény XML formátumban érhető el az eredményobjektumban.
Az alábbi kódrészlet egy egyszerű C#-példa a GetInfo-ra:
ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");
Hasonlóképpen, a BScript objektum a webszolgáltatáson b1scriptservice
keresztül is elérhető. Ezt úgy végezheti el, hogy hozzáad egy webes hivatkozást a projekthez a http://< server>:5151/BHOLD/Core/b1scriptservice.asmx használatával, ahol <a kiszolgáló az a kiszolgáló> , amelyen telepítve vannak a BHOLD bináris fájljai. További információ: Webszolgáltatás-referencia hozzáadása Visual Studio-projekthez.
Az alábbi példa bemutatja, hogyan használhatja a GetInfo függvényt egy webszolgáltatásból. Ez a kód lekéri az 1 szervezeti azonosítóval rendelkező szervezeti egységet, majd megjeleníti annak a szervezeti egységnek a nevét a képernyőn.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace bhold_console
{
class Program
{
static void Main(string[] args)
{
var bholdService = new BHOLDCORE.B1ScriptService();
bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
string orgname= "";
if (args.Length == 3)
{
//Use explicit credentials from command line
bholdService.UseDefaultCredentials = false;
bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
bholdService.PreAuthenticate = true;
}
else
{
bholdService.UseDefaultCredentials = true;
bholdService.PreAuthenticate = true;
}
//Load BHOLD information into an xml document and loop through document to find the bholdDescription value
var myOrgUnit = new System.Xml.XmlDocument();
myOrgUnit.LoadXml(bholdService.GetInfo("OrgUnit","1","","");
XmlNodeList myList = myOrgUnit.SelectNodes(("//item");
foreach (XmlNode myNode in myList)
{
for (int i = 0; i < myNode.ChildNodes.Count; i++)
{
if (myNode.ChildNodes[i].InnerText.ToString() == "bholdDescription")
{
orgname = myNode.ChildNodes[i + 1].InnerText.ToString();
}
}
}
System.Console.WriteLine("The Organizational Unit Name is: " + orgname);
}
}
}
Az alábbi VBScript-példa a webszolgáltatást HASZNÁLJA SOAP-on keresztül és a GetInfo használatával. A SOAP 1.1, a SOAP 1.2 és a HTTP POST további példáiért tekintse meg a BHOLD felügyelt referencia szakaszát, vagy közvetlenül a böngészőből navigálhat a webszolgáltatáshoz, és ott tekintheti meg őket.
Dim SOAPRequest
Dim SOAPParameters
Dim SOAPResponse
Dim xmlhttp
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "POST", "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx", False, "CORP\Administrator", "abc123*2k"
xmlhttp.setRequestHeader "Content-type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "SOAPAction", "http://B1/B1ScriptService/GetInfo"
SOAPRequest = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsi=""http://" & vbCRLF
SOAPRequest = SOAPRequest & " www.w3.org/2001/XMLSchema-instance""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsd=""http://www.w3.org/2001/XMLSchema""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCRLF
SOAPRequest = SOAPRequest & " <soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " <GetInfo xmlns=""http://B1/B1ScriptService"">" & vbCRLF
SOAPRequest = SOAPRequest & " <functionName>OrgUnit</functionName>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter1>1</parameter1>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter2></parameter2>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter3></parameter3>" & vbCRLF
SOAPRequest = SOAPRequest & " </GetInfo>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Envelope>"
MsgBox SOAPRequest
xmlhttp.send SOAPRequest
SOAPResponse = xmlhttp.responseText
MsgBox SOAPResponse
Szkriptek végrehajtása
A BScript objektum ExecuteScript függvénye szkriptek végrehajtására használható. Ehhez a függvényhez két paraméter szükséges. Az első paraméter az XML-dokumentum, amely a szkript által használandó egyéni információkat tartalmazza. A második paraméter a használni kívánt előre definiált szkript neve. A BHOLD előre definiált szkriptkönyvtárában itt egy olyan XSL-dokumentumnak kell lennie, amelynek a neve megegyezik a függvény nevével, de az .xsl kiterjesztéssel.
Ha a függvény nem sikerül, az ExecuteScript függvény a False értéket adja vissza. A hiba leírásával és számával megtudhatja, hogy mi történt. Az alábbiakban egy példa látható az ExecuteXML webes metódus használatára. Ez a metódus meghívja az ExecuteScriptet.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
var bholdService = new BHOLDCORE.B1ScriptService();
bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
if (args.Length == 3)
{
//Use explicit credentials from command line
bholdService.UseDefaultCredentials = false;
bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
bholdService.PreAuthenticate = true;
}
else
{
bholdService.UseDefaultCredentials = true;
bholdService.PreAuthenticate = true;
}
System.Console.WriteLine( "Add user #3 to role #44, result: {0}", bholdService.ExecuteXml(roleAddUser("44", "3")) );
System.Console.WriteLine("Add user D1 to role 'MR-OU2 No Users', result: {0}", bholdService.ExecuteXml(roleAddUser("MR-OU2 No Users", "D1")));
}
private static System.Xml.XmlNode roleAddUser(string roleId, string userId)
{
var script = new System.Xml.XmlDocument();
script.LoadXml(string.Format("<functions>"
+" <function name='roleadduser' roleid='{0}' userid='{1}' />"
+"</functions>",
roleId,
userId)
);
return script.DocumentElement;
BholdScriptResult
Ez a GetInfo függvény az executescript függvény végrehajtása után érhető el. A függvény egy XML formátumú sztringet ad vissza, amely tartalmazza a teljes végrehajtási jelentést. A Szkript csomópont tartalmazza a végrehajtott szkript XML-struktúráját.
Minden olyan függvény esetében, amely a szkript végrehajtása során meghiúsul, egy Node-függvény lesz hozzáadva a csomópontok nevével. Az ExecuteXML és a Error a dokumentum végéhez hozzáadja az összes létrehozott azonosítót.
Figyelje meg, hogy csak a hibát tartalmazó függvények lesznek hozzáadva. A "0" hibaszám azt jelenti, hogy a függvény nem lesz végrehajtva.
<Bhold>
<Script>
<functions>
<function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
<function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
</functions>
</Script>
<Function>
<Name>OrgUnitadd</Name>
<ExecutedXML>
<function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
</ExecutedXML>
<Error Number="5" Description="Violation of UNIQUE KEY constraint 'IX_OrgUnits'. Cannot insert duplicate key in object 'dbo.OrgUnits'.
The statement has been terminated."/>
</Function>
<Function>
<Name>roleaddOrgUnit</Name>
<ExecutedXML>
<function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
</ExecutedXML>
<Error Number="0" Description=""/>
</Function>
<IDS>
<ID name="@ID@">35</ID>
</IDS>
</Bhold>
Azonosítóparaméterek
Az azonosító paraméterek speciális kezelést kapnak. A nem numerikus értékeket a rendszer keresési értékként használja a BHOLD-adattárban található megfelelő entitások megkereséséhez. Ha a keresési érték nem egyedi, a keresési értéknek megfelelő első entitás lesz visszaadva.
Ha meg szeretné különböztetni a numerikus keresési értékeket az azonosítóktól, használhat előtagot. Ha a keresési érték első hat karaktere "no_id:" lesz, akkor a rendszer eltávolítja ezeket a karaktereket, mielőtt az értéket a kereséshez használták. A(z) "%" SQL helyettesítő karakter használható.
A keresési érték a következő mezőket használja:
Azonosító típusa | Keresőmező |
---|---|
OrgUnitID | Description |
roleID | Description |
taskID | Description |
userID | DefaultAlias |
Szkripthozzáférés és engedélyek
Az Active Server Pages kiszolgálóoldali kódja a szkriptek végrehajtására szolgál. Ezért a szkripthez való hozzáférés hozzáférést jelent ezekhez az oldalakhoz. A BHOLD rendszer információkat tart fenn az egyéni lapok belépési pontjairól. Ez az információ tartalmazza a kezdőlapot és a függvény leírását (több nyelvet kell támogatni).
A felhasználó jogosult az egyéni lapok megadására és egy szkript végrehajtására. Minden belépési pont feladatként jelenik meg. Minden felhasználó, aki ezt a feladatot egy szerepkör vagy egység segítségével szerezte meg, képes végrehajtani a megfelelő függvényt.
A menü egy új függvénye megjeleníti a felhasználó által végrehajtható összes egyéni függvényt. Mivel a szkriptek műveleteket hajthatnak végre a BHOLD rendszerben a bejelentkezett felhasználótól eltérő identitással. Engedélyt adhat egy adott művelet végrehajtására anélkül, hogy felügyeletet kellene végeznie egy objektum felett. Ez hasznos lehet például egy olyan alkalmazott számára, aki csak új ügyfeleket adhat be a vállalatba. Ezekkel a szkriptekkel önregisztrátó oldalakat is létrehozhat.
Parancsszkript
A parancsszkript a BHOLD rendszer által végrehajtott függvények listáját tartalmazza. A lista olyan XML-dokumentumban van megírva, amely megfelel a következő definícióknak:
Parancsszkript | <functions>functions</functions> |
---|---|
Funkciók | függvény {function} |
Funkció | <function name="functionName" functionParameters [return] (/> | > parameterList </ function>) |
functionName | Érvényes függvénynév az alábbi szakaszokban leírtak szerint. |
functionParameters | { functionParameter } |
functionParameter | parameterName = "parameterValue" |
parameterName | Érvényes paraméternév. |
parameterValue | @variable@ | Érték |
érték | Érvényes paraméterérték. |
parameterList | <> paraméterek {parameterItem} </parameters> |
parameterItem | <parameter name="parameterName"> parameterValue </parameter> |
Vissza | return="@variable@" |
Változó | Egyéni változó neve. |
Az XML a következő speciális karakterek fordításával rendelkezik:
XML | Karakter |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Ezek az XML-karakterek használhatók az azonosítókban, de nem ajánlottak.
Az alábbi kód egy érvényes, három függvényt tartalmazó parancsdokumentumot mutat be:
<functions>
<functionname="OrgUnitAdd" parentID="34" description="Acme Inc." orgtypeID="5" return="@UnitID@" />
<function name="UserAdd" description="John Doe" alias="jdoe" languageID="1" OrgUnitID="@UnitID@" />
<function name="TaskAddFile" taskID="93" path="/customers/purchase">
<parameters>
<parameter name="history"> True</parameter>
</parameters>
</function>
</functions>
Az OrgUnitAdd függvény a létrehozott egység azonosítóját egy UnitID nevű változóban tárolja. Ez a változó a UserAdd függvény bemeneteként használatos. A függvény visszatérési értéke nem használatos. Az alábbi szakaszok az összes elérhető függvényt, a szükséges paramétereket és azok visszatérési értékeit ismertetik.
Függvények végrehajtása
Ez a szakasz a végrehajtási függvények használatát ismerteti.
ABAAttributeRuleAdd
Hozzon létre egy új attribútumszabályt egy adott attribútumtípuson. Az attribútumszabályok csak egy attribútumtípushoz csatolhatók.
A megadott attribútumszabály az összes lehetséges attribútumtípushoz csatolható.
A RuleType nem módosítható az "ABAattributeruletypeupdate" paranccsal. Az attribútum egyedi leírásának megkövetelése.
Argumentumok | Típus |
---|---|
Description | Szöveg |
Szabálytípus | Adja meg az attribútumszabály fajtáját. Az attribútumszabály típusától függően más argumentumokat is tartalmaznia kell. A következő szabálytípus-értékek érvényesek:
|
InvertResult | ["0"|"1"|"N"|"Y"] |
AttributeTypeID | Szöveg |
Választható argumentumok | Típus |
---|---|
Operátor | Szöveg Megjegyzés: Ez az argumentum kötelező, ha a RuleType értéke 1 vagy 4. A lehetséges értékek a következők: '=', ''< vagy ''>. Az XML-címkéknek a ">"> és a "<" elemet< kell használniuk. |
RangeMin | Szám Megjegyzés: Ez az argumentum kötelező, ha a RuleType értéke 3. |
Rangemax | Szám Megjegyzés: Ez az argumentum kötelező, ha a RuleType értéke 3. |
Érték | Szöveg Megjegyzés: Ez az argumentum kötelező, ha a RuleType értéke 0, 1 vagy 4. Az argumentumnak numerikus vagy alfanumerikus értéknek kell lennie. |
AttribútumruleID visszatérési típusa | Szöveg |
applicationadd
Létrehoz egy új alkalmazást, és visszaadja az új alkalmazás azonosítóját.
Argumentumok | Típus |
---|---|
leírás | |
Gép | |
modul | |
parameter | |
Protokoll | |
username | |
jelszó | |
svroleID (nem kötelező) | Ha ez az argumentum nincs jelen, a rendszer az aktuális felhasználó felügyelői szerepkörét használja. |
Applicationaliasformula (nem kötelező) | Az aliasképlet használatával aliast hozhat létre egy felhasználó számára, ha az alkalmazás engedélyéhez van rendelve. Az alias akkor jön létre, ha a felhasználó még nem rendelkezik az alkalmazás aliasával. Ha nincs megadva érték, a rendszer a felhasználó alapértelmezett aliasát használja az alkalmazás aliasaként. A képlet formátuma : [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)] . Az eltolás nem kötelező. Csak felhasználói és alkalmazásattribútumok használhatók. Szabad szöveg használható. A fenntartott karakterek bal oldali szögletes zárójelek ([) és jobb oldali szögletes zárójelek (]). Példa: [Application.bholdDescription]\[User.bholdDefAlias(1,5)] . |
Visszatérési típus | Az új alkalmazás azonosítója. |
AttributeSetValue
Beállítja az objektumtípushoz csatlakoztatott attribútumtípus értékét. Az objektumtípus és az attribútumtípus leírásának egyedinek kell lennie.
Argumentumok | Típus |
---|---|
ObjectTypeID | Szöveg |
ObjectID | Szöveg |
AttributeTypeID | Szöveg |
Érték | Szöveg |
Visszatérési típus | Típus |
AttributeTypeAdd
Új attribútumtípust/tulajdonságtípust szúr be.
Argumentumok | Típus |
---|---|
DataTypeID | Szöveg |
Leírás (=Identitás) | Szöveg Megjegyzés: Fenntartott szavak nem használhatók, beleértve az "a", "frm", "id", "usr" és "bhold" szavakat. |
Maxlength | Szám a következőben: [1,..,255] |
ListOfValues (logikai) | ["0"|"1"|"N"|"Y"] |
DefaultValue | Szöveg |
Visszatérési típus | Típus |
AttributeTypeID | Szöveg |
AttributeTypeSetAdd
Új attribútumtípus-készlet beszúrása. Az attribútumtípus-készlet leírásának egyedinek kell lennie.
Argumentumok | Típus |
---|---|
Leírás (=Identitás) | Szöveg |
Visszatérési típus | Típus |
AttributeTypeSetID | Szöveg |
AttributeTypeSetAddAttributeType
Új attribútumtípus beszúrása meglévő attribútumtípus-készletbe. Az attribútumtípuskészlet és az attribútumtípus leírásának egyedinek kell lennie.
Argumentumok | Típus |
---|---|
AttributeTypeSetID | Szöveg |
AttributeTypeID | Szöveg |
Sorrend | Szám |
LocationID | Szöveg Megjegyzés: A hely "csoport" vagy "önálló". |
Kötelező | ["0"|"1"|"N"|"Y"] |
Visszatérési típus | Típus |
ObjectTypeAddAttributeTypeSet
Egy objektumtípushoz beállított attribútumtípust ad hozzá. Az objektumtípus és az attribútumtípus-készlet leírásának egyedinek kell lennie. Az objektumtípusok a következők: Rendszer, OrgUnit, Felhasználó, Feladat.
Argumentumok | Típus |
---|---|
ObjectTypeID | Szöveg |
AttributeTypeSetID | Szöveg |
Sorrend | Szám |
Látható |
|
Visszatérési típus | Típus |
OrgUnitadd
Létrehoz egy új szervezeti egységet, és visszaadja az új szervezeti egység azonosítóját.
Argumentumok | Típus |
---|---|
leírás | |
orgtypeID | |
parentID | |
OrgUnitinheritedroles (nem kötelező) | |
Visszatérési típus | Típus |
Az új egység azonosítója | Az OrgUnitinheritedroles paraméter az igen vagy a nem értéket adja meg. |
OrgUnitaddsupervisor
A felhasználót szervezeti egység felügyelővé teheti.
Argumentumok | Típus |
---|---|
svroleID | A userID argumentum is használható. Ebben az esetben az alapértelmezett felügyelői szerepkör van kiválasztva. Az alapértelmezett felügyelői szerepkör neve __svrole után egy szám. A userID argumentum használható a visszamenőleges kompatibilitás érdekében. |
OrgUnitID |
OrgUnitadduser
A felhasználót szervezeti egység taggá teheti.
Argumentumok | Típus |
---|---|
userID | |
OrgUnitID |
OrgUnitdelete
Eltávolít egy szervezeti egységet.
Argumentumok | Típus |
---|---|
OrgUnitID |
OrgUnitdeleteuser
Eltávolít egy felhasználót egy szervezeti egység tagjaként.
Argumentumok | Típus |
---|---|
userID | |
OrgUnitID |
roleadd
Új szerepkört hoz létre.
Argumentumok | Típus |
---|---|
Description | |
svrole | |
svroleID (nem kötelező) | Ha ez az argumentum nincs jelen, akkor a rendszer az aktuális felhasználó felügyelői szerepkörét használja. |
ContextAdaptable (nem kötelező) | ["0","1","N","Y"] |
MaxPermissions (nem kötelező) | Egész szám |
MaxRoles (nem kötelező) | Egész szám |
MaxUsers (nem kötelező) | Egész szám |
Visszatérési típus | Típus |
Az új szerepkör azonosítója |
roleaddOrgUnit
Szerepkör hozzárendelése egy szervezeti egységhez.
Argumentumok | Típus |
---|---|
OrgUnitID | roleID |
inheritThisRole | A "true" vagy a "false" azt jelzi, hogy a szerepkört a mögöttes egységeknek javasolják-e. |
roleaddrole
Hozzárendel egy szerepkört egy másik szerepkör alszerepköreként.
Argumentumok | Típus |
---|---|
roleID | |
subRoleID |
roleaddsupervisor
A felhasználó szerepkör-felügyelővé alakítása.
Argumentumok | Típus |
---|---|
svroleID | A userID argumentum is használható. Ebben az esetben az alapértelmezett felügyelői szerepkör van kiválasztva. Az alapértelmezett felügyelői szerepkör neve __svrole után egy szám. A userID argumentum használható a visszamenőleges kompatibilitás érdekében. |
roleID |
roleadduser
Szerepkör hozzárendelése egy felhasználóhoz. A szerepkör nem lehet környezeti adaptálható szerepkör, ha nincs megadva contextID.
Argumentumok | Típus |
---|---|
userID | |
roleID | |
durationType (nem kötelező) | Tartalmazza a "free", "hours" és "days" értékeket. |
durationLength (nem kötelező) | Kötelező, ha az durationType értéke "óra" vagy "nap". A függvénynek tartalmaznia kell a szerepkör felhasználóhoz rendelt órák vagy napok számának egész számát. |
start (nem kötelező) | A szerepkör hozzárendelésének dátuma és időpontja. Ha ezt az attribútumot nem adja meg, a szerepkör azonnal hozzá lesz rendelve. A dátumformátum "ÉÉÉÉÉ-HH-NNThh:nn:ss", ahol csak év, hónap és nap szükséges. például a "2004-12-11" és a "2004-11-28T08:00" érvényes értékek. |
vége (nem kötelező) | A szerepkör visszavonásának dátuma és időpontja. Az durationType és durationLength megadásakor a rendszer figyelmen kívül hagyja ezt az értéket. A dátumformátum "ÉÉÉÉÉ-HH-NNThh:nn:ss", ahol csak év, hónap és nap szükséges. például a "2004-12-11" és a "2004-11-28T08:00" érvényes értékek. |
linkreason | Kezdés, befejezés vagy időtartam megadásakor kötelező, egyébként figyelmen kívül hagyva. |
contextId (nem kötelező) | A szervezeti egység azonosítója, csak a környezethez adaptálható szerepkörökhöz szükséges. |
roledelete
Töröl egy szerepkört.
Argumentumok | Típus |
---|---|
roleID |
roledeleteuser
Eltávolítja a szerepkör-hozzárendelést egy felhasználónak. Ez a parancs visszavonja a felhasználó által örökölt szerepköröket.
Argumentumok | Típus |
---|---|
userID | |
roleID | |
contextID (nem kötelező) |
roleproposeOrgUnit
Javaslatot tesz egy szerepkör hozzárendelésére egy OrgUnit tagjaihoz és alegységeihez.
Argumentumok | Típus |
---|---|
OrgUnitID | |
roleID | |
durationType (nem kötelező) | Tartalmazhat "free", "hours" és "days" értékeket. |
durationLength | Akkor szükséges, ha az durationType értéke "óra" vagy "nap", a szerepkör felhasználóhoz rendelt órák vagy napok számának egész számértékét kell tartalmaznia. |
durationFixed | A "true" vagy a "false" azt jelzi, hogy a szerepkör felhasználóhoz való hozzárendelésének egyenlőnek kell-e lennie az durationLength értékkel. |
inheritThisRole | A "true" vagy a "false" azt jelzi, hogy a szerepkört a mögöttes egységeknek javasolják-e. |
taskadd
Létrehoz egy új tevékenységet, és visszaadja az új tevékenység azonosítóját.
Argumentumok | Típus |
---|---|
applicationID | |
leírás | Legfeljebb 254 karakter hosszúságú szöveg. |
taskname | Legfeljebb 254 karakter hosszúságú szöveg. |
tokenGroupID | |
svroleID (nem kötelező) | Ha ez az argumentum nincs jelen, akkor a rendszer az aktuális felhasználó felügyelői szerepkörét használja. |
contextAdaptable (nem kötelező) | ["0","1","N","Y"] |
alulszerkezet (nem kötelező) | ["0","1","N","Y"] |
auditaction (nem kötelező) |
|
auditalertmail (nem kötelező) | Az e-mail-címet, amelyet az engedélyre vonatkozó riasztásokként szeretne megadni, a auditor küldi el. Ha ez az argumentum nincs jelen, akkor a rendszer a könyvvizsgáló riasztási e-mail-címét használja. |
MaxRoles (nem kötelező) | Egész szám |
MaxUsers (nem kötelező) | Egész szám |
Visszatérési típus | Az új tevékenység azonosítója. |
taskadditask
Jelezze, hogy két tevékenység nem kompatibilis.
Argumentumok | Típus |
---|---|
taskID | |
taskID2 |
taskaddrole
Feladat hozzárendelése szerepkörhöz.
Argumentumok | Típus |
---|---|
roleID | |
taskID |
taskaddsupervisor
A felhasználót feladatfelügyelővé teheti.
Argumentumok | Típus |
---|---|
svroleID | A userID argumentum is használható. Ebben az esetben az alapértelmezett felügyelői szerepkör van kiválasztva. Az alapértelmezett felügyelői szerepkör neve __svrole, amelyet egy szám követ. A userID argumentum használható a visszamenőleges kompatibilitáshoz. |
taskID |
useradd
Létrehoz egy új felhasználót, és visszaadja az új felhasználó azonosítóját.
Argumentumok | Típus |
---|---|
leírás | |
alias | |
languageID |
|
OrgUnitID | |
enddate (nem kötelező) | A dátum formátuma "ÉÉÉÉÉÉ-HH-NNThh:nn:ss", ahol csak év, hónap és nap szükséges. például a "2004-12-11" és a "2004-11-28T08:00" érvényes értékek. |
letiltva (nem kötelező) |
|
MaxPermissions (nem kötelező) | Egész szám |
MaxRoles (nem kötelező) | Egész szám |
Visszatérési típus | Az új felhasználó azonosítója. |
UserAddRole
Hozzáad egy felhasználói szerepkört.
Argumentumok | Típus |
---|---|
UserDeleteRole
Töröl egy felhasználói szerepkört.
Argumentumok | Típus |
---|---|
Felhasználói frissítés
felhasználó Frissítések.
Argumentumok | Típus |
---|---|
UserID | |
leírás (nem kötelező) | |
language |
|
userDisabled (nem kötelező) |
|
UserEndDate (nem kötelező) | A dátumformátum "ÉÉÉÉÉ-HH-NNThh:nn:ss", ahol csak év, hónap és nap szükséges. például a "2004-12-11" és a "2004-11-28T08:00" érvényes értékek. |
firstName (nem kötelező) | |
middleName (nem kötelező) | |
lastName (nem kötelező) | |
maxPermissions (nem kötelező) | Egész szám |
maxRoles (nem kötelező) | Egész szám |
GetInfo-függvények
Az ebben a szakaszban ismertetett függvénykészlet a BHOLD rendszerben tárolt információk lekérésére használható. Minden függvény meghívható a BScript objektum GetInfo függvényével. Egyes objektumokhoz paraméterek szükségesek. A visszaadott adatokra a felhasználó megtekintési engedélyei és felügyelt objektumai vonatkoznak.
GetInfo argumentumok
Név | Leírás |
---|---|
alkalmazások | Az alkalmazások listáját adja vissza. |
attribútumtípusok | Az attribútumtípusok listáját adja vissza. |
szervezeti típusok | A szervezeti egységtípusok listáját adja vissza. |
OrgUnits | A szervezeti egységek listáját adja vissza a szervezeti egységek attribútumai nélkül. |
OrgUnitproposedroles | A szervezeti egységhez társított javasolt szerepkörök listáját adja vissza. |
OrgUnitroles | Az adott szervezeti egység közvetlenül összekapcsolt szerepköreinek listáját adja vissza |
Objecttypeattributetypes | |
engedélyek | |
engedélyfelhasználók | |
szerepkörök | A szerepkörök listáját adja vissza. |
roletasks | Az adott szerepkör feladatainak listáját adja vissza. |
feladatok | A BHOLD által ismert összes tevékenységet visszaadja. |
felhasználók | A felhasználók listáját adja vissza. |
usersroles | Az adott felhasználó társított felügyelői szerepköreinek listáját adja vissza. |
userpermissions | Az adott felhasználó engedélyeinek listáját adja vissza. |
OrgUnit-információ
Name | Paraméterek | Visszatérési típus |
---|---|---|
OrgUnit | OrgUnitID | OrgUnit |
OrgUnitasiattributes | OrgUnitID | Gyűjtemény |
OrgUnits | filter (nem kötelező), proptypeid (nem kötelező) Olyan egységeket keres, amelyek a proptypeid paraméterben leírt proptype-ban a szűrőben leírt sztringet tartalmazzák. Ha ezt az azonosítót nem adja meg, a szűrő az egység leírására vonatkozik. Ha nincs megadva szűrő, a rendszer minden látható egységet visszaad. |
Gyűjtemény |
OrgUnitOrgUnits | OrgUnitID | Gyűjtemény |
OrgUnitparents | OrgUnitID | Gyűjtemény |
OrgUnitpropertyvalues | OrgUnitID | Gyűjtemény |
OrgUnitproptypes | Gyűjtemény | |
OrgUnitusers | OrgUnitID | Gyűjtemény |
OrgUnitproposedroles | OrgUnitID | Gyűjtemény |
OrgUnitroles | OrgUnitID | Gyűjtemény |
OrgUnitinheritedroles | OrgUnitID | Gyűjtemény |
OrgUnitsupervisors | OrgUnitID | Gyűjtemény |
OrgUnitinheritedsupervisors | OrgUnitID | Gyűjtemény |
OrgUnitsupervisorroles | OrgUnitID | Gyűjtemény |
Szerepkör adatai
Name | Paraméterek | Visszatérési típus |
---|---|---|
Szerepet | roleID | Objektum |
szerepkörök | szűrő (nem kötelező) | Gyűjtemény |
roleasiattributes | roleID | Gyűjtemény |
roleOrgUnits | roleID | Gyűjtemény |
roleparentroles | roleID | Gyűjtemény |
rolesubroles | roleID | Gyűjtemény |
rolesupervisors | roleID | Gyűjtemény |
rolesupervisorroles | roleID | Gyűjtemény |
roletasks | roleID | Gyűjtemény |
szerepkörfelhasználók | roleID | Gyűjtemény |
rolesupervisorroles | roleID | Gyűjtemény |
proposedroleOrgUnits | roleID | Gyűjtemény |
javasolt roleusok | roleID | Gyűjtemény |
Engedély – Tevékenység adatai
Name | Paraméterek | Visszatérési típus |
---|---|---|
Engedély | TaskID | Engedély |
engedélyek | szűrő (nem kötelező) | Gyűjtemény |
permissionasiattributes | TaskID | Gyűjtemény |
permissionattachments | TaskID | Gyűjtemény |
permissionattributetypes | - | Gyűjtemény |
engedélyparamok | TaskID | Gyűjtemény |
permissionroles | TaskID | Gyűjtemény |
permissionsupervisors | TaskID | Gyűjtemény |
permissionsupervisorroles | TaskID | Gyűjtemény |
engedélyfelhasználók | TaskID | Gyűjtemény |
feladat | TaskID | Feladat |
feladatok | szűrő (nem kötelező) | Gyűjtemény |
taskattachments | TaskID | Gyűjtemény |
taskparams | TaskID | Gyűjtemény |
taskroles | TaskID | Gyűjtemény |
tasksupervisors | TaskID | Gyűjtemény |
tasksupervisorroles | TaskID | Gyűjtemény |
feladatfelhasználók | TaskID | Gyűjtemény |
Felhasználói adatok
Name | Paraméterek | Visszatérési típus |
---|---|---|
felhasználó! | UserID | Felhasználó |
felhasználók | filter (nem kötelező), attributetypeid (nem kötelező) Olyan felhasználókat keres, amelyek a szűrő által megadott sztring attribútumtípusa által megadott attribútumtípusban találhatók. Ha ezt az azonosítót nem adja meg, a szűrő a felhasználó alapértelmezett aliasára vonatkozik. Ha nincs megadva szűrő, a rendszer minden látható felhasználót visszaad. Például:
|
UserCollection |
usersapplications | UserID | Gyűjtemény |
Felhasználói jogosultságok | UserID | Gyűjtemény |
userroles | UserID | Gyűjtemény |
usersroles | UserID | Gyűjtemény |
userstasks | UserID | Gyűjtemény |
usersunits | UserID | Gyűjtemény |
usertasks | UserID | Gyűjtemény |
userunits | UserID | Gyűjtemény |
Visszatérési típusok
Ebben a szakaszban a GetInfo függvény visszatérési típusait ismertetjük.
Name | Visszatérési típus |
---|---|
Gyűjtemény | =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS> |
Objektum | =<ITEM type="…" description="..." /> |
OrgUnit | = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Engedély | = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Szerepkörök | = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS> |
Szerepkör | = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Feladat | Lásd: Engedély |
Felhasználók | = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS> |
Felhasználó | = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Példaszkript
A vállalat rendelkezik BHOLD-kiszolgálóval, és szeretne egy automatizált szkriptet, amely új ügyfeleket hoz létre. A vállalatra és a vásárláskezelőre vonatkozó információk egy testre szabott weblapon adhatók meg. A modellben minden ügyfél egységként jelenik meg az egység ügyfelei alatt. A vásárláskezelő egyben az egység felügyelője is. Létrejön egy szerepkör, amely jogot biztosít a tulajdonosoknak arra, hogy az új ügyfél nevében vásároljanak.
Ez az ügyfél azonban nem létezik az alkalmazásban. Az ASI FunctionDispatch egy speciális függvényt implementál, amely egy új ügyfélfiókot hoz létre a vásárlási alkalmazásban. Minden ügyfél rendelkezik ügyféltípussal.
A lehetséges típusokat a FunctionDispatch függvény is bemutatja. Az AA a megfelelő típust választja ki az új ügyfél számára.
Hozzon létre egy szerepkört és feladatot a vásárlási jogosultságok bemutatásához. A valódi vásárlási jogosultságot az ASI fájlként /customers/customer id/purchase
jeleníti meg. Ezt a fájlt az új tevékenységhez kell csatolni.
Az adatokat összegyűjtő Active Server-oldal a következőképpen néz ki:
<%@ Language=VBScript %>
<% Option Explicit %>
<html>
<body>
<form action="MySubmit.asp" method=post>
<input type="hidden" name="OrgUnitID"
value="<% = Request("ID") %>">
Company <input type="text" name="Description"> <br>
Type <select name="OrgType">
<%Dim oOrgType
For Each oOrgType on bscript.getinfo("Orgtypes") %>
<option value="<% = oOrgType.OrgTypeID %>">
<% = oOrgType.Description %>
</option> <%
Next %>
</select> <br>
Manager <input type="text" name=" manager"> <br>
Alias <input type=" text" name=" alias"> <br>
e-mail <input type=" text" name=" email"> <br>
<input type="submit">
</form>
</body>
</html>
A testre szabott lapoknak csak a megfelelő információk megadását kell elvégezniük, és létre kell hozniuk egy XML-dokumentumot a kért információkkal. Ebben a példában a MySubmit oldal átalakítja az XML-dokumentumban lévő adatokat, és hozzárendeli azokat a b1scripthez. Paraméterek objektum, és végül meghívja a függvényt b1script.ExecuteScript("MyScript")
.
Az alábbi bemeneti szkript ezt a példát mutatja be:
<customer>
<description>ACME inc.</description>
<orgtype>5<orgtype>
<name>John Doe</name>
<alias>jdoe</alias>
<email>jdoe@acme.com</email>
</customer>
Ez a bemeneti szkript nem tartalmaz parancsokat a BHOLD-hoz. Ennek az az oka, hogy ezt a szkriptet nem közvetlenül a BHOLD hajtja végre; helyett ez egy előre definiált függvény bemenete. Ez az előre definiált függvény lefordítja ezt az objektumot egy BHOLD-parancsokat tartalmazó XML-dokumentumra. Ez a mechanizmus visszatartja a felhasználót attól, hogy szkripteket küldjön a BHOLD rendszernek, amelyek olyan függvényeket tartalmaznak, amelyeket a felhasználó nem hajthat végre, például a setUser és a függvény elküld egy ASI-nek.
<?xml version="1.0" encoding="utf-8" ?>
- <functions xmlns="http://tempuri.org/BscriptFunctions.xsd">
<function name="roleadduser" roleid="" userid="" />
<function name="roledeleteuser" roleid="" userid="" />
</functions>