Referenční informace pro vývojáře BHOLD pro Microsoft Identity Manager 2016
Modul BHOLD-core dokáže zpracovat příkazy skriptu. Můžete to provést přímo pomocí bscript.dll v projektu .NET. Také interakce s rozhraním webové služby b1scriptservice.asmx.
Před spuštěním skriptu by se měly shromáždit všechny informace uvnitř skriptu pro vytvoření tohoto skriptu. Tyto informace lze shromáždit z následujících zdrojů:
- Vstup uživatele
- Data BHOLD
- Aplikace
- Jiné
Data BHOLD lze načíst pomocí funkce GetInfo objektu skriptu. K dispozici je úplný seznam příkazů, které mohou prezentovat všechna data uložená v databázi BHOLD. Prezentovaná data ale podléhají oprávněním k zobrazení přihlášeného uživatele. Výsledek je ve formě dokumentu XML, který lze analyzovat.
Dalším zdrojem informací může být jedna z aplikací, které řídí BHOLD. Modul snap-in aplikace má speciální funkci FunctionDispatch, která se dá použít k prezentaci informací specifických pro aplikaci. Tento dokument je také prezentován jako dokument XML.
Pokud neexistuje žádný jiný způsob, skript může obsahovat příkazy přímo do jiných aplikací nebo systémů. NoThenstalace dodatečného softwaru na serveru BHOLD může podkopat zabezpečení celého systému.
Všechny tyto informace jsou vloženy do jednoho dokumentu XML a přiřazeny objektu skriptu BHOLD. Objekt kombinuje tento dokument s předdefinované funkce. Předdefinovaná funkce je dokument XSL, který přeloží vstupní dokument skriptu na dokument příkazu BHOLD.
Příkazy se spouštějí ve stejném pořadí jako v dokumentu. Pokud jedna funkce selže, vrátí se zpět všechny spuštěné příkazy.
Objekt script
Tato část popisuje, jak používat objekt script.
Načtení informací BHOLD
Funkce GetInfo slouží k načtení informací z dostupných dat v autorizačním systému BHOLD. Funkce vyžaduje název funkce a nakonec jeden nebo více parametrů. Pokud je tato funkce úspěšná, vrátí se objekt nebo kolekce BHOLD ve formě dokumentu XML.
Pokud funkce neuspěje, vrátí funkce GetInfo prázdný řetězec nebo chybu. Popis a číslo chyby můžete použít k získání dalších informací o selhání.
Funkci GetInfo FunctionDispatch lze použít k načtení informací z aplikace řízené systémem BHOLD. Tato funkce vyžaduje tři parametry: ID aplikace, funkci dispatch definovanou v asi a dokument XML s podpůrnými informacemi pro ASI. Pokud je funkce úspěšná, je výsledek v objektu výsledku k dispozici ve formátu XML.
Následující fragment kódu je jednoduchým příkladem funkce GetInfo v jazyce C#:
ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");
Podobně lze k objektu BScript přistupovat také prostřednictvím webové služby b1scriptservice
. To se provádí přidáním webového odkazu na projekt pomocí http://< server>:5151/BHOLD/Core/b1scriptservice.asmx, kde <server> je server s nainstalovanými binárními soubory BHOLD. Další informace najdete v tématu Přidání odkazu na webovou službu do projektu sady Visual Studio.
Následující příklad ukazuje, jak použít funkci GetInfo z webové služby. Tento kód načte organizační jednotku, která má ID organizace 1, a pak na obrazovce zobrazí název této organizační jednotky.
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);
}
}
}
Následující příklad jazyka VBScript používá webovou službu přes SOAP a metodu GetInfo. Další příklady pro PROTOKOL SOAP 1.1, SOAP 1.2 a HTTP POST najdete v části Spravované referenční informace BHOLD nebo můžete přejít na webovou službu přímo z prohlížeče a zobrazit je tam.
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
Spouštění skriptů
Funkci ExecuteScript objektu BScript lze použít ke spouštění skriptů. Tato funkce vyžaduje dva parametry. Prvním parametrem je dokument XML, který obsahuje vlastní informace, které má skript použít. Druhý parametr je název předdefinovaného skriptu, který se má použít. V adresáři předdefinovaných skriptů BHOLD by zde měl být dokument XSL se stejným názvem jako funkce, ale s příponou .xsl.
Pokud funkce neuspěje, vrátí funkce ExecuteScript hodnotu False. Pomocí popisu a čísla chyby můžete zjistit, co se nepovedlo. Následuje příklad použití webové metody ExecuteXML. Tato metoda vyvolá ExecuteScript.
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
Tato funkce GetInfo je k dispozici po provedení funkce executescript . Funkce vrátí řetězec ve formátu XML, který obsahuje kompletní sestavu spuštění. Uzel Script obsahuje strukturu XML spuštěného skriptu.
Pro každou funkci, která selže během provádění skriptu, se přidá funkce uzlu s názvem uzlů. Na konec dokumentu se přidají všechna vygenerovaná ID ExecuteXML a Error.
Všimněte si, že se přidají jenom funkce, které obsahují chybu. Číslo chyby 0 znamená, že se funkce nespustí.
<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>
Parametry ID
Parametry ID mají zvláštní zacházení. Nečíselné hodnoty se používají jako vyhledávací hodnota pro vyhledání odpovídajících entit v úložišti dat BHOLD. Pokud vyhledávací hodnota není jedinečná, vrátí se první entita, která vyhovuje hodnotě hledání.
K odlišení číselných hodnot hledání od ID je možné použít předponu. Pokud se prvních šest znaků hledané hodnoty rovná "no_id:", jsou tyto znaky odstraněny předtím, než se hodnota použije k hledání. Je možné použít zástupné znaky SQL %.
S hledanou hodnotou se použijí následující pole:
Typ ID | Vyhledávací pole |
---|---|
ORGUnitID | Description |
ID role | Description |
Taskid | Description |
ID uživatele | Výchozíalias |
Přístup ke skriptům a oprávnění
Kód na straně serveru v active serverových stránkách se používá ke spouštění skriptů. Přístup ke skriptu proto znamená přístup k těmto stránkám. Systém BHOLD udržuje informace o vstupních bodech vlastních stránek. Tyto informace zahrnují úvodní stránku a popis funkce (mělo by být podporováno více jazyků).
Uživatel má oprávnění k tomu, aby mohl vstoupit na vlastní stránky a spustit skript. Každý vstupní bod je prezentován jako úkol. Každý uživatel, který získal tento úkol prostřednictvím role nebo jednotky, může provést odpovídající funkci.
Nová funkce v nabídce představuje všechny vlastní funkce, které může uživatel spustit. Protože skript může provádět akce v systému BHOLD pod jinou identitou, než je přihlášený uživatel. Je možné udělit oprávnění k provedení jedné konkrétní akce bez dohledu nad jakýmkoli objektem. Může to být například užitečné pro zaměstnance, který může do společnosti zadávat jenom nové zákazníky. Tyto skripty lze také použít k vytvoření stránek s vlastní registrací.
Skript příkazu
Příkazový skript obsahuje seznam funkcí, které jsou spouštěné systémem BHOLD. Seznam je zapsán v dokumentu XML, který odpovídá následujícím definicím:
Skript příkazu | <functions>functions</functions> |
---|---|
– funkce | funkce {function} |
– funkce | <function name="functionName" functionParameters [return] (/> | > parameterList </ function>) |
název_funkce | Platný název funkce, jak je popsáno v následujících částech. |
functionParameters | { functionParameter } |
Functionparameter | parameterName = "parameterValue" |
Parametername | Platný název parametru. |
hodnota parametru | @variable@ | Hodnotu |
hodnota | Platná hodnota parametru. |
parameterList | <parameters> {parameterItem} </parameters> |
parametrItem | <název parametru="název_parametru"> parameterValue </parameter> |
return | return="@variable@" |
proměnná | Název vlastní proměnné. |
XML obsahuje následující překlady speciálních znaků:
XML | Znak |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Tyto znaky XML se dají použít v identifikátorech, ale nedoporučují se.
Následující kód ukazuje příklad platného dokumentu příkazu se třemi funkcemi:
<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>
Funkce OrgUnitAdd ukládá ID vytvořené jednotky do proměnné s názvem UnitID. Tato proměnná se používá jako vstup pro funkci UserAdd. Návratová hodnota této funkce se nepoužije. Následující části popisují všechny dostupné funkce, požadované parametry a jejich návratové hodnoty.
Spouštění funkcí
Tato část popisuje, jak používat funkce spouštění.
ABAAttributeRuleAdd
Vytvořte nové pravidlo atributu pro konkrétní typ atributu. Pravidla atributů lze propojit pouze s jedním typem atributu.
Zadané pravidlo atributu lze propojit se všemi možnými typy atributů.
Typ pravidla nelze změnit pomocí příkazu ABAattributeruletypeupdate. Vyžaduje, aby popis atributu jedinečný.
Argumenty | Typ |
---|---|
Description | Text |
Typ pravidla | Zadejte druh pravidla atributu. V závislosti na druhu typu pravidla atributu musí být zahrnuty další argumenty. Následující hodnoty typu pravidla jsou platné:
|
InvertResult | ["0"|"1"|"N"|"Y"] |
ID atributu | Text |
Volitelné argumenty | Typ |
---|---|
Operátor | Text Poznámka: Tento argument je povinný, pokud je RuleType 1 nebo 4. Možné hodnoty jsou =, nebo< .> Značky XML musí používat ">" pro '>' a "<" pro '<'. |
RangeMin | Číslo Poznámka: Tento argument je povinný, pokud je RuleType 3. |
Rangemax | Číslo Poznámka: Tento argument je povinný, pokud je RuleType 3. |
Hodnota | Text Poznámka: Tento argument je povinný, pokud je RuleType 0, 1 nebo 4. Argument musí být číselná nebo alfanumerická hodnota. |
Návratový typ AttributeRuleID | Text |
applicationadd
Vytvoří novou aplikaci a vrátí ID nové aplikace.
Argumenty | Typ |
---|---|
description | |
Stroj | |
modul | |
parameter | |
Protokol | |
username | |
heslo | |
svroleID (volitelné) | Pokud tento argument neexistuje, použije se role správce aktuálního uživatele. |
Applicationaliasformula (volitelné) | Vzorec aliasu se používá k vytvoření aliasu pro uživatele, když je přiřazený k oprávnění aplikace. Alias se vytvoří, pokud uživatel ještě nemá alias pro tuto aplikaci. Pokud není zadána žádná hodnota, použije se výchozí alias uživatele jako alias pro aplikaci. Vzorec je formátovaný jako [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)] . Posun je volitelný. Je možné použít pouze atributy Uživatel a Aplikace. Je možné použít volný text. Vyhrazené znaky jsou levá hranatá závorka ([) a pravá hranatá závorka (]). Příklad: [Application.bholdDescription]\[User.bholdDefAlias(1,5)] . |
Návratový typ | ID nové aplikace. |
AttributeSetValue
Nastaví hodnotu typu atributu připojeného k typu objektu. Vyžaduje, aby popisy typu objektu a typu atributu byly jedinečné.
Argumenty | Typ |
---|---|
ObjectTypeID | Text |
ObjectId | Text |
AttributeTypeID | Text |
Hodnota | Text |
Návratový typ | Typ |
AttributeTypeAdd
Vloží nový typ atributu nebo typ vlastnosti.
Argumenty | Typ |
---|---|
ID datového typu | Text |
Popis (=Identita) | Text Poznámka: Rezervovaná slova nelze použít, včetně slov "a", "frm", "id", "usr" a "bhold". |
Maxlength | Číslo v [1,..,255] |
ListOfValues (logická hodnota) | ["0"|"1"|"N"|"Y"] |
Defaultvalue | Text |
Návratový typ | Typ |
AttributeTypeID | Text |
AttributeTypeSetAdd
Vloží novou sadu typů atributů. Vyžaduje, aby popis sady typů atributů byl jedinečný.
Argumenty | Typ |
---|---|
Popis (=Identita) | Text |
Návratový typ | Typ |
AttributeTypeSetID | Text |
AttributeTypeSetAddAttributeType
Vloží nový typ atributu do existující sady typů atributů. Vyžaduje, aby popisy sady typů atributů a typu atributu byly jedinečné.
Argumenty | Typ |
---|---|
AttributeTypeSetID | Text |
AttributeTypeID | Text |
Objednávka | Číslo |
Locationid | Text Poznámka: Umístění je buď "skupina", nebo "jedno". |
Povinné | ["0"|"1"|"N"|"Y"] |
Návratový typ | Typ |
ObjectTypeAddAttributeTypeSet
Přidá sadu typu atributu k typu objektu. Vyžaduje, aby popis typu objektu a sady typů atributů byly jedinečné. Typy objektů jsou: System, OrgUnit, User, Task.
Argumenty | Typ |
---|---|
ObjectTypeID | Text |
AttributeTypeSetID | Text |
Objednávka | Číslo |
Viditelné |
|
Návratový typ | Typ |
OrgUnitadd
Vytvoří novou organizační jednotku a vrátí ID nové organizační jednotky.
Argumenty | Typ |
---|---|
description | |
orgtypeID | |
Parentid | |
OrgUnitinheritedroles (volitelné) | |
Návratový typ | Typ |
ID nové jednotky | Parametr OrgUnitinheritedroles má buď hodnotu ano, nebo ne. |
OrgUnitaddsupervisor
Nastavte uživatele jako nadřízeného organizační jednotky.
Argumenty | Typ |
---|---|
svroleID | Můžete také použít argument userID. V tomto případě je vybraná výchozí role správce. Výchozí role nadřízeného má název __svrole následovaný číslem. Argument userID lze použít pro zpětnou kompatibilitu. |
OrgUnitID |
OrgUnitadduser
Nastavte uživatele jako člena organizační jednotky.
Argumenty | Typ |
---|---|
ID uživatele | |
OrgUnitID |
OrgUnitdelete
Odebere organizační jednotku.
Argumenty | Typ |
---|---|
OrgUnitID |
OrgUnitdeleteuser
Odebere uživatele jako člena organizační jednotky.
Argumenty | Typ |
---|---|
ID uživatele | |
OrgUnitID |
roleadd
Vytvoří novou roli.
Argumenty | Typ |
---|---|
Description | |
svrole | |
svroleID (volitelné) | Pokud tento argument neexistuje, použije se role správce aktuálního uživatele. |
ContextAdaptable (volitelné) | ["0","1","N","Y"] |
MaxPermissions (volitelné) | Integer |
MaxRoles (volitelné) | Integer |
MaxUsers (volitelné) | Integer |
Návratový typ | Typ |
ID nové role |
roleaddOrgUnit
Přiřadí roli organizační jednotce.
Argumenty | Typ |
---|---|
OrgUnitID | roleID |
inheritThisRole | "true" nebo "false" označuje, zda je role navržena pro základní jednotky. |
roleaddrole
Přiřadí roli jako podroli jiné role.
Argumenty | Typ |
---|---|
roleID | |
subRoleID |
roleaddsupervisor
Nastavte uživatele jako nadřízeného role.
Argumenty | Typ |
---|---|
svroleID | Můžete také použít argument userID. V tomto případě je vybraná výchozí role správce. Výchozí role nadřízeného má název __svrole následovaný číslem. Argument userID lze použít pro zpětnou kompatibilitu. |
roleID |
roleadduser
Přiřadí roli uživateli. Role nemůže být kontextově přizpůsobitelná role, pokud není zadané žádné ID kontextu.
Argumenty | Typ |
---|---|
ID uživatele | |
roleID | |
durationType (volitelné) | Může obsahovat hodnoty "free", "hours" a "days". |
durationLength (volitelné) | Vyžaduje se, pokud je durationType "hours" nebo "days". by mělo obsahovat celočíselnou hodnotu pro počet hodin nebo dnů, kdy je role přiřazena uživateli. |
start (volitelné) | Datum a čas přiřazení role Pokud je tento atribut vynechán, role se přiřadí okamžitě. Formát data je RRRR-MM-DDThh:nn:ss, kde se vyžaduje jenom rok, měsíc a den. Například "2004-12-11" a "2004-11-28T08:00" jsou platné hodnoty. |
end (volitelné) | Datum a čas odvolání role Při zadání durationType a durationLength je tato hodnota ignorována. Formát data je RRRR-MM-DDThh:nn:ss, kde se vyžaduje jenom rok, měsíc a den. Například "2004-12-11" a "2004-11-28T08:00" jsou platné hodnoty. |
linkreason | Vyžaduje se při zadání začátku, konce nebo doby trvání, jinak se ignoruje. |
contextId (volitelné) | ID organizační jednotky, které se vyžaduje jenom pro kontextově přizpůsobitelné role. |
roledelete
Odstraní roli.
Argumenty | Typ |
---|---|
roleID |
roledeleteuser
Odebere uživateli přiřazení role. Tento příkaz odvolá zděděné role uživatelem.
Argumenty | Typ |
---|---|
ID uživatele | |
roleID | |
contextID (volitelné) |
roleproposeOrgUnit
Navrhuje roli, která ji přiřadí členům a dílčím organizačním jednotce OrgUnit.
Argumenty | Typ |
---|---|
OrgUnitID | |
roleID | |
durationType (volitelné) | Může obsahovat hodnoty "free", "hours" a "days". |
durationLength | Vyžaduje se, pokud je durationType "hours" nebo "days", měl by obsahovat celočíselnou hodnotu pro počet hodin nebo dnů, kdy je role přiřazena uživateli. |
durationFixed | Hodnota true nebo false označuje, jestli se přiřazení této role uživateli má rovnat durationLength. |
inheritThisRole | "true" nebo "false" označuje, zda je role navržena pro základní jednotky. |
taskadd
Vytvoří nový úkol a vrátí ID nového úkolu.
Argumenty | Typ |
---|---|
applicationID | |
description | Text s maximálně 254 znaky. |
název_úkolu | Text s maximálně 254 znaky. |
tokenGroupID | |
svroleID (volitelné) | Pokud tento argument neexistuje, použije se role správce aktuálního uživatele. |
contextAdaptable (volitelné) | ["0","1","N","Y"] |
podkonstrukce (volitelné) | ["0","1","N","Y"] |
auditaction (volitelné) |
|
auditalertmail (volitelné) | Auditor odešle e-mailovou adresu, na kterou má být upozornění na toto oprávnění. Pokud tento argument neexistuje, použije se e-mailová adresa pro upozornění auditora. |
MaxRoles (volitelné) | Integer |
MaxUsers (volitelné) | Integer |
Návratový typ | ID nového úkolu. |
taskadditask
Označuje, že dva úkoly nejsou kompatibilní.
Argumenty | Typ |
---|---|
Taskid | |
taskID2 |
taskaddrole
Přiřadí úkol roli.
Argumenty | Typ |
---|---|
roleID | |
Taskid |
taskaddsupervisor
Nastavte uživatele jako nadřízeného úkolu.
Argumenty | Typ |
---|---|
svroleID | Můžete také použít argument userID. V tomto případě je vybraná výchozí role správce. Výchozí role nadřízeného má název __svrole následovaný číslem. Argument userID lze použít pro zpětnou kompatibilitu. |
Taskid |
useradd
Vytvoří nového uživatele a vrátí ID nového uživatele.
Argumenty | Typ |
---|---|
description | |
alias | |
languageID |
|
OrgUnitID | |
enddate (volitelné) | Formát data je RRRR-MM-DDThh:nn:ss, kde se vyžaduje jenom rok, měsíc a den. Například "2004-12-11" a "2004-11-28T08:00" jsou platné hodnoty. |
zakázáno (volitelné) |
|
MaxPermissions (volitelné) | Integer |
MaxRoles (volitelné) | Integer |
Návratový typ | ID nového uživatele. |
UserAddRole
Přidá roli uživatele.
Argumenty | Typ |
---|---|
UserDeleteRole
Odstraní roli uživatele.
Argumenty | Typ |
---|---|
Aktualizace uživatele
Aktualizace uživatele.
Argumenty | Typ |
---|---|
UserID | |
popis (volitelné) | |
language |
|
userDisabled (volitelné) |
|
UserEndDate (volitelné) | Formát data je "RRRR-MM-DDThh:nn:ss", kde se vyžaduje pouze rok, měsíc a den. Například "2004-12-11" a "2004-11-28T08:00" jsou platné hodnoty. |
firstName (volitelné) | |
middleName (volitelné) | |
lastName (volitelné) | |
maxPermissions (volitelné) | Integer |
maxRoles (volitelné) | Integer |
Funkce GetInfo
Sadu funkcí popsaných v této části lze použít k načtení informací uložených v systému BHOLD. Každou funkci lze volat pomocí funkce GetInfo z objektu BScript. Některé objekty vyžadují parametry. Vrácená data podléhají oprávněním k zobrazení a objektům pod dohledem přihlášeného uživatele.
Argumenty GetInfo
Název | Description |
---|---|
aplikace | Vrátí seznam aplikací. |
attributetypes | Vrátí seznam typů atributů. |
typy organizací | Vrátí seznam typů organizačních jednotek. |
OrgUnits | Vrátí seznam organizačních jednotek bez atributů organizačních jednotek. |
OrgUnitproposedroles | Vrátí seznam navrhovaných rolí propojených s organizační jednotkou. |
OrganizaceUnitroles | Vrátí seznam přímo propojených rolí dané organizační jednotky. |
Objecttypeattributetypes | |
oprávnění | |
oprávněníuuživatelé | |
Role | Vrátí seznam rolí. |
roletasks | Vrátí seznam úkolů dané role. |
úlohy | Vrátí všechny úkoly známé podle BHOLD. |
uživatelé | Vrátí seznam uživatelů. |
role uživatelů | Vrátí seznam propojených rolí správce daného uživatele. |
oprávnění uživatele | Vrátí seznam oprávnění daného uživatele. |
Informace o organizační jednotce
Name | Parametry | Návratový typ |
---|---|---|
Organizační jednotka | ORGUnitID | Organizační jednotka |
OrgUnitasiattributes | ORGUnitID | Kolekce |
OrgUnits | filter (volitelné), proptypeid (volitelné) Vyhledá jednotky, které obsahují řetězec popsaný ve filtru v proptype popsaném v části proptypeid. Pokud toto ID vynecháte, použije se filtr na popis jednotky. Pokud není zadán žádný filtr, vrátí se všechny viditelné jednotky. |
Kolekce |
OrgUnitOrgUnits | ORGUnitID | Kolekce |
OrgUnitparents | ORGUnitID | Kolekce |
OrgUnitpropertyvalues | ORGUnitID | Kolekce |
OrgUnitproptypes | Kolekce | |
OrganizaceUnitusers | ORGUnitID | Kolekce |
OrgUnitproposedroles | ORGUnitID | Kolekce |
OrganizaceUnitroles | ORGUnitID | Kolekce |
OrganizaceUnitinheritedroles | ORGUnitID | Kolekce |
OrgUnitsupervisors | ORGUnitID | Kolekce |
OrganizaceUnitinheritedsupervisors | ORGUnitID | Kolekce |
OrgUnitsupervisorroles | ORGUnitID | Kolekce |
Informace o rolích
Name | Parametry | Návratový typ |
---|---|---|
role | ID role | Objekt |
Role | filtr (volitelné) | Kolekce |
roleasiattributes | ID role | Kolekce |
roleOrgUnits | ID role | Kolekce |
roleparentroles | ID role | Kolekce |
rolesubroles | ID role | Kolekce |
roleupervisors | ID role | Kolekce |
roleupervisorroles | ID role | Kolekce |
roletasks | ID role | Kolekce |
roleusers | ID role | Kolekce |
roleupervisorroles | ID role | Kolekce |
navrhovanároleOrgUnits | ID role | Kolekce |
navrhovanýchroleuášů | ID role | Kolekce |
Oprávnění – informace o úkolu
Name | Parametry | Návratový typ |
---|---|---|
Oprávnění | TaskID | Oprávnění |
oprávnění | filtr (volitelné) | Kolekce |
zdroje oprávnění | TaskID | Kolekce |
oprávněnípřipojené | TaskID | Kolekce |
permissionattributetypes | - | Kolekce |
permissionparams | TaskID | Kolekce |
role oprávnění | TaskID | Kolekce |
permissionsupervisors | TaskID | Kolekce |
permissionsupervisorroles | TaskID | Kolekce |
oprávněníuuživatelé | TaskID | Kolekce |
úkol | TaskID | Úkol |
úlohy | filtr (volitelné) | Kolekce |
připojení k úkolům | TaskID | Kolekce |
taskparams | TaskID | Kolekce |
role úloh | TaskID | Kolekce |
tasksupervisors | TaskID | Kolekce |
tasksupervisorroles | TaskID | Kolekce |
taskusers | TaskID | Kolekce |
Údaje uživatele
Name | Parametry | Návratový typ |
---|---|---|
uživatel | UserID | Uživatel |
uživatelé | filter (volitelné), attributetypeid (volitelné) Vyhledá uživatele, kteří obsahují v atributu attributetype zadaném atributem attributetypeid řetězec zadaný filtrem. Pokud je toto ID vynecháno, použije se filtr na výchozí alias uživatele. Pokud není zadán žádný filtr, vrátí se všichni viditelní uživatelé. Příklad:
|
UserCollection |
uživateléaplikace | UserID | Kolekce |
Uživatelské oprávnění | UserID | Kolekce |
uživatelské role | UserID | Kolekce |
uživatelské role | UserID | Kolekce |
userstasks | UserID | Kolekce |
usersunits | UserID | Kolekce |
uživatelské úkoly | UserID | Kolekce |
userunits | UserID | Kolekce |
Návratové typy
V této části jsou popsány návratové typy funkce GetInfo.
Name | Návratový typ |
---|---|
Kolekce | =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS> |
Objekt | =<ITEM type="…" description="..." /> |
OrgUnit | = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Oprávnění | = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Role | = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS> |
Role | = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Úkol | Zobrazit oprávnění |
Uživatelé | = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS> |
Uživatel | = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Ukázka skriptu
Společnost má server BHOLD a chce automatizovaný skript, který vytvoří nové zákazníky. Informace o společnosti a jejím manažeru nákupu se zadají na přizpůsobenou webovou stránku. Každý zákazník se v modelu prezentuje jako jednotka pod zákazníky jednotek. Manažer nákupu je také členem jako nadřízený této jednotky. Vytvoří se role, která dává vlastníkům právo nakupovat jménem nového zákazníka.
Tento zákazník však v aplikaci neexistuje. V rozhraní ASI FunctionDispatch je implementovaná speciální funkce, která v nákupní aplikaci vytvoří nový zákaznický účet. Každý zákazník má typ zákazníka.
Funkce FunctionDispatch může také prezentovat možné typy. AA zvolí správný typ pro nového zákazníka.
Vytvořte roli a úkol pro prezentaci oprávnění k nákupu. Skutečná oprávnění k nákupu je prezentována asi jako soubor /customers/customer id/purchase
. Tento soubor by měl být propojený s novým úkolem.
Stránka Active Server, která shromažďuje informace, vypadá takto:
<%@ 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>
Všechny přizpůsobené stránky by musely požádat o správné informace a vytvořit dokument XML s požadovanými informacemi. V tomto příkladu stránka MySubmit transformuje data v dokumentu XML a přiřadí je k b1scriptu. Parameters objekt a nakonec zavolá b1script.ExecuteScript("MyScript")
funkci.
Následující vstupní skript ukazuje tento příklad:
<customer>
<description>ACME inc.</description>
<orgtype>5<orgtype>
<name>John Doe</name>
<alias>jdoe</alias>
<email>jdoe@acme.com</email>
</customer>
Tento vstupní skript neobsahuje žádné příkazy pro BHOLD. Je to proto, že tento skript není spuštěn přímo BHOLD; místo toho se jedná o vstup pro předdefinované funkce. Tato předdefinovaná funkce přeloží tento objekt do dokumentu XML pomocí příkazů BHOLD. Tento mechanismus brání uživateli v odesílání skriptů do systému BHOLD, které obsahují funkce, které uživatel nesmí spouštět, například setUser a funkce odesílá do ASI.
<?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>