Share via


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.

BHOLD-szkriptfeldolgozás

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 b1scriptservicekeresztü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
&amp; &
&lt; <
&gt; >
&quot; "
&apos; '

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:
  • 0: Reguláris kifejezés (adja hozzá az "érték" argumentumot).
  • 1: Érték (adja hozzá az "operátor" és az "érték" argumentumot).
  • 2: Értékek listája.
  • 3: Tartomány (adja hozzá a "rangemin" és a "rangemax" argumentumokat).
  • 4: Életkor (adja hozzá az "operátor" és az "érték" argumentumot).
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ó
  • 0: Az attribútumtípus-készlet látható.
  • 2: Az attribútumtípus-készlet akkor jelenik meg, ha a További információ gomb van kiválasztva.
  • 1: Az attribútumtípus-készlet láthatatlan.
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ő)
  • 0: Ismeretlen (alapértelmezett)
  • 1: ReportOnly
  • 2: AlertAppAll
  • 3: AlertAppObsolete
  • 4: AlertAppMissing
  • 5: EnforceAppAll
  • 6: EnforceAppObsolete
  • 7: EnforceAppMissing
  • 8: AlertEnforceAppAll
  • 9: AlertEnforceAppObsolete
  • 10: AlertEnforceAppMissing
  • 11: ImportálásMinden
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
  • 1: angol
  • 2: holland
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ő)
  • 0: Engedélyezve
  • 1: Letiltva
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
  • 1: angol
  • 2: holland
userDisabled (nem kötelező)
  • 0: Engedélyezve
  • 1: Letiltva
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:
  • GetInfo("users") az összes felhasználót visszaadja.
  • GetInfo("users", "%dmin%") Az alapértelmezett aliasban a "dmin" sztringgel rendelkező összes felhasználót visszaadja.
  • Tegyük fel, hogy a felhasználók rendelkeznek egy nevű extra attribútummal "City".GetInfo("users", "%msterda%", "City"). Ez a hívás visszaadja az összes olyan felhasználót, akinél az "msterda" sztring szerepel a City attribútumban.
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/purchasejelení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>

Következő lépések